@@ -140,6 +140,12 @@ struct lambdaAnalysis_pb {
140140 Configurable<bool > cEvtMCVtxIn10{" cEvtMCVtxIn10" , false , " MC event sel: isVtxIn10" };
141141 Configurable<bool > cEvtMCTriggerTVX{" cEvtMCTriggerTVX" , false , " MC event sel: isTriggerTVX" };
142142 Configurable<bool > cEvtMCRecINELgt0{" cEvtMCRecINELgt0" , false , " MC event sel: isRecINELgt0" };
143+ const double mMassLambda1520 = 1.5195 ;
144+ const double mMassProton = 0.93827 ;
145+ const double mMassLambda0 = 1.11568 ;
146+ const double mMassXiMinus = 1.32171 ;
147+ const double mMassXi0 = 1.31486 ;
148+ const double mMassOmegaMinus = 1.67245 ;
143149 // Histogram Registry.
144150 HistogramRegistry histos{" histos" , {}, OutputObjHandlingPolicy::AnalysisObject};
145151
@@ -239,6 +245,24 @@ struct lambdaAnalysis_pb {
239245 histos.add (" Analysis/h3d_reso_lstar_PM" , " Resolution #Lambda(1520) p_{T}" , kTHnSparseF , {{200 , -0.05 , 0.05 }, axisPt, axisCent});
240246 histos.add (" Analysis/h3d_reso_lstar_MP" , " Resolution #bar{#Lambda}(1520) p_{T}" , kTHnSparseF , {{200 , -0.05 , 0.05 }, axisPt, axisCent});
241247 }
248+
249+ if (doprocessMCGen) {
250+ histos.add (" SignalLoss/hMCEventCutflow" , " MC Event Cutflow" , kTH1F , {{7 , 0 , 7 }});
251+ histos.add (" SignalLoss/hGen_mT_scaled_Proton" , " mT Scaled #Lambda(1520) from Proton" , kTHnSparseF , {axisPt, axisCent});
252+ histos.add (" SignalLoss/hGen_mT_scaled_AntiProton" , " mT Scaled #bar{#Lambda}(1520) from AntiProton" , kTHnSparseF , {axisPt, axisCent});
253+
254+ histos.add (" SignalLoss/hGen_mT_scaled_Lambda0" , " mT Scaled #Lambda(1520) from Lambda0" , kTHnSparseF , {axisPt, axisCent});
255+ histos.add (" SignalLoss/hGen_mT_scaled_AntiLambda0" , " mT Scaled #bar{#Lambda}(1520) from AntiLambda0" , kTHnSparseF , {axisPt, axisCent});
256+
257+ histos.add (" SignalLoss/hGen_mT_scaled_XiMinus" , " mT Scaled #Lambda(1520) from Xi-" , kTHnSparseF , {axisPt, axisCent});
258+ histos.add (" SignalLoss/hGen_mT_scaled_XiPlus" , " mT Scaled #bar{#Lambda}(1520) from Xi+" , kTHnSparseF , {axisPt, axisCent});
259+
260+ histos.add (" SignalLoss/hGen_mT_scaled_Xi0" , " mT Scaled #Lambda(1520) from Xi0" , kTHnSparseF , {axisPt, axisCent});
261+ histos.add (" SignalLoss/hGen_mT_scaled_AntiXi0" , " mT Scaled #bar{#Lambda}(1520) from AntiXi0" , kTHnSparseF , {axisPt, axisCent});
262+
263+ histos.add (" SignalLoss/hGen_mT_scaled_OmegaMinus" , " mT Scaled #Lambda(1520) from Omega-" , kTHnSparseF , {axisPt, axisCent});
264+ histos.add (" SignalLoss/hGen_mT_scaled_OmegaPlus" , " mT Scaled #bar{#Lambda}(1520) from Omega+" , kTHnSparseF , {axisPt, axisCent});
265+ }
242266 }
243267
244268 template <typename T>
@@ -771,10 +795,11 @@ struct lambdaAnalysis_pb {
771795 for (auto const & part : resoParents) {
772796 if (std::abs (part.pdgCode ()) != lambda1520id) // // L* pdg_code = 3124
773797 continue ;
774- // if (std::abs(part.y()) > 0.5) { // rapidity cut
775- // continue;
776- // }
777798
799+ float _yshift = std::abs (part.y ()) - cfgRapidityShift;
800+
801+ if (std::abs (_yshift) > cfgRapidityCut)
802+ continue ;
778803 bool pass1 = false ;
779804 bool pass2 = false ;
780805
@@ -797,6 +822,95 @@ struct lambdaAnalysis_pb {
797822 }
798823 PROCESS_SWITCH (lambdaAnalysis_pb, processMC, " Process Event for MC" , false );
799824
825+ void processMCGen (resoMCCols::iterator const & collision,
826+ aod::ResoMCParents const & resoParents)
827+ {
828+
829+ float centrality = collision.cent ();
830+
831+ histos.fill (HIST (" SignalLoss/hMCEventCutflow" ), 0 ); // All collisions
832+
833+ if (cEvtMCTriggerTVX && !collision.isTriggerTVX ())
834+ return ;
835+ histos.fill (HIST (" SignalLoss/hMCEventCutflow" ), 1 ); // After TriggerTVX
836+
837+ if (cEvtMCVtxIn10 && !collision.isVtxIn10 ())
838+ return ;
839+ histos.fill (HIST (" SignalLoss/hMCEventCutflow" ), 2 ); // After VtxIn10
840+
841+ if (cEvtMCINELgt0 && !collision.isINELgt0 ())
842+ return ;
843+ histos.fill (HIST (" SignalLoss/hMCEventCutflow" ), 3 ); // After INELgt0
844+
845+ if (cEvtMCSel8 && !collision.isInSel8 ())
846+ return ;
847+ histos.fill (HIST (" SignalLoss/hMCEventCutflow" ), 4 ); // After Sel8
848+
849+ if (cEvtMCRecINELgt0 && !collision.isRecINELgt0 ())
850+ return ;
851+ histos.fill (HIST (" SignalLoss/hMCEventCutflow" ), 5 ); // After RecINELgt0
852+
853+ if (cEvtMCAfterAllCuts && !collision.isInAfterAllCuts ())
854+ return ;
855+ histos.fill (HIST (" SignalLoss/hMCEventCutflow" ), 6 ); // After AfterAllCuts
856+
857+ for (auto const & part : resoParents) {
858+
859+ float _yshift = std::abs (part.y ()) - cfgRapidityShift;
860+
861+ if (std::abs (_yshift) > cfgRapidityCut)
862+ continue ;
863+
864+ int pdg = part.pdgCode ();
865+ float ptRef = part.pt ();
866+ double ptSq = -1.0 ;
867+
868+ if (pdg == 2212 ) {
869+ ptSq = (ptRef * ptRef) + (mMassProton * mMassProton ) - (mMassLambda1520 * mMassLambda1520 );
870+ if (ptSq > 0 )
871+ histos.fill (HIST (" SignalLoss/hGen_mT_scaled_Proton" ), std::sqrt (ptSq), centrality);
872+ } else if (pdg == -2212 ) {
873+ ptSq = (ptRef * ptRef) + (mMassProton * mMassProton ) - (mMassLambda1520 * mMassLambda1520 );
874+ if (ptSq > 0 )
875+ histos.fill (HIST (" SignalLoss/hGen_mT_scaled_AntiProton" ), std::sqrt (ptSq), centrality);
876+ } else if (pdg == 3122 ) {
877+ ptSq = (ptRef * ptRef) + (mMassLambda0 * mMassLambda0 ) - (mMassLambda1520 * mMassLambda1520 );
878+ if (ptSq > 0 )
879+ histos.fill (HIST (" SignalLoss/hGen_mT_scaled_Lambda0" ), std::sqrt (ptSq), centrality);
880+ } else if (pdg == -3122 ) {
881+ ptSq = (ptRef * ptRef) + (mMassLambda0 * mMassLambda0 ) - (mMassLambda1520 * mMassLambda1520 );
882+ if (ptSq > 0 )
883+ histos.fill (HIST (" SignalLoss/hGen_mT_scaled_AntiLambda0" ), std::sqrt (ptSq), centrality);
884+ } else if (pdg == 3312 ) {
885+ ptSq = (ptRef * ptRef) + (mMassXiMinus * mMassXiMinus ) - (mMassLambda1520 * mMassLambda1520 );
886+ if (ptSq > 0 )
887+ histos.fill (HIST (" SignalLoss/hGen_mT_scaled_XiMinus" ), std::sqrt (ptSq), centrality);
888+ } else if (pdg == -3312 ) {
889+ ptSq = (ptRef * ptRef) + (mMassXiMinus * mMassXiMinus ) - (mMassLambda1520 * mMassLambda1520 );
890+ if (ptSq > 0 )
891+ histos.fill (HIST (" SignalLoss/hGen_mT_scaled_XiPlus" ), std::sqrt (ptSq), centrality);
892+ } else if (pdg == 3322 ) {
893+ ptSq = (ptRef * ptRef) + (mMassXi0 * mMassXi0 ) - (mMassLambda1520 * mMassLambda1520 );
894+ if (ptSq > 0 )
895+ histos.fill (HIST (" SignalLoss/hGen_mT_scaled_Xi0" ), std::sqrt (ptSq), centrality);
896+ } else if (pdg == -3322 ) {
897+ ptSq = (ptRef * ptRef) + (mMassXi0 * mMassXi0 ) - (mMassLambda1520 * mMassLambda1520 );
898+ if (ptSq > 0 )
899+ histos.fill (HIST (" SignalLoss/hGen_mT_scaled_AntiXi0" ), std::sqrt (ptSq), centrality);
900+ } else if (pdg == 3334 ) {
901+ ptSq = (ptRef * ptRef) + (mMassOmegaMinus * mMassOmegaMinus ) - (mMassLambda1520 * mMassLambda1520 );
902+ if (ptSq > 0 )
903+ histos.fill (HIST (" SignalLoss/hGen_mT_scaled_OmegaMinus" ), std::sqrt (ptSq), centrality);
904+ } else if (pdg == -3334 ) {
905+ ptSq = (ptRef * ptRef) + (mMassOmegaMinus * mMassOmegaMinus ) - (mMassLambda1520 * mMassLambda1520 );
906+ if (ptSq > 0 )
907+ histos.fill (HIST (" SignalLoss/hGen_mT_scaled_OmegaPlus" ), std::sqrt (ptSq), centrality);
908+ }
909+ }
910+ }
911+
912+ PROCESS_SWITCH (lambdaAnalysis_pb, processMCGen, " Process Event for MC" , false );
913+
800914 using BinningType2 = ColumnBinningPolicy<aod::collision::PosZ, aod::resocollision::Cent>;
801915
802916 void processMix (resoCols& collisions, resoTracks const & tracks)
0 commit comments