1212// / \brief Task to create derived data for cascade flow analyses
1313// / \authors: Chiara De Martin (chiara.de.martin@cern.ch), Maximiliano Puccio (maximiliano.puccio@cern.ch)
1414
15+ #include < vector>
16+ #include < string>
17+ #include < memory>
1518#include " Math/Vector3D.h"
1619#include " TRandom3.h"
1720#include " Common/DataModel/Centrality.h"
@@ -121,8 +124,6 @@ static const std::vector<std::string> labelsCutScore = {"Background score", "Sig
121124
122125struct cascadeFlow {
123126
124- PresliceUnsorted<soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraCollLabels>> perMcCollision = aod::v0data::straMCCollisionId;
125-
126127 // axes
127128 ConfigurableAxis axisQVs{" axisQVs" , {500 , -10 .f , 10 .f }, " axisQVs" };
128129 ConfigurableAxis axisQVsNorm{" axisQVsNorm" , {200 , -1 .f , 1 .f }, " axisQVsNorm" };
@@ -173,43 +174,50 @@ struct cascadeFlow {
173174 o2::analysis::MlResponse<float > mlResponseOmega;
174175
175176 template <typename TCollision>
176- bool AcceptEvent (TCollision const & collision)
177+ bool AcceptEvent (TCollision const & collision, bool isFillHisto )
177178 {
178- histos.fill (HIST (" hNEvents" ), 0.5 );
179- histos.fill (HIST (" hEventNchCorrelationBefCuts" ), collision.multNTracksPVeta1 (), collision.multNTracksGlobal ());
180- histos.fill (HIST (" hEventPVcontributorsVsCentralityBefCuts" ), collision.centFT0C (), collision.multNTracksPVeta1 ());
181- histos.fill (HIST (" hEventGlobalTracksVsCentralityBefCuts" ), collision.centFT0C (), collision.multNTracksGlobal ());
179+ if (isFillHisto) {
180+ histos.fill (HIST (" hNEvents" ), 0.5 );
181+ histos.fill (HIST (" hEventNchCorrelationBefCuts" ), collision.multNTracksPVeta1 (), collision.multNTracksGlobal ());
182+ histos.fill (HIST (" hEventPVcontributorsVsCentralityBefCuts" ), collision.centFT0C (), collision.multNTracksPVeta1 ());
183+ histos.fill (HIST (" hEventGlobalTracksVsCentralityBefCuts" ), collision.centFT0C (), collision.multNTracksGlobal ());
184+ }
182185
183186 // Event selection if required
184187 if (sel8 && !collision.sel8 ()) {
185188 return false ;
186189 }
187- histos.fill (HIST (" hNEvents" ), 1.5 );
190+ if (isFillHisto)
191+ histos.fill (HIST (" hNEvents" ), 1.5 );
188192
189193 // Z vertex selection
190194 if (TMath::Abs (collision.posZ ()) > cutzvertex) {
191195 return false ;
192196 }
193- histos.fill (HIST (" hNEvents" ), 2.5 );
197+ if (isFillHisto)
198+ histos.fill (HIST (" hNEvents" ), 2.5 );
194199
195200 // kNoSameBunchPileup selection
196201 if (isNoSameBunchPileupCut && !collision.selection_bit (aod::evsel::kNoSameBunchPileup )) {
197202 return false ;
198203 }
199- histos.fill (HIST (" hNEvents" ), 3.5 );
204+ if (isFillHisto)
205+ histos.fill (HIST (" hNEvents" ), 3.5 );
200206
201207 // kIsGoodZvtxFT0vsPV selection
202208 if (isGoodZvtxFT0vsPVCut && !collision.selection_bit (aod::evsel::kIsGoodZvtxFT0vsPV )) {
203209 return false ;
204210 }
205- histos.fill (HIST (" hNEvents" ), 4.5 );
211+ if (isFillHisto)
212+ histos.fill (HIST (" hNEvents" ), 4.5 );
206213
207214 // occupancy cut
208215 int occupancy = collision.trackOccupancyInTimeRange ();
209216 if (occupancy < MinOccupancy || occupancy > MaxOccupancy) {
210217 return false ;
211218 }
212- histos.fill (HIST (" hNEvents" ), 5.5 );
219+ if (isFillHisto)
220+ histos.fill (HIST (" hNEvents" ), 5.5 );
213221
214222 if (isCollInStandardTimeRange && !collision.selection_bit (o2::aod::evsel::kNoCollInTimeRangeStandard )) {
215223 return false ;
@@ -218,11 +226,14 @@ struct cascadeFlow {
218226 if (isCollInNarrowTimeRange && !collision.selection_bit (o2::aod::evsel::kNoCollInTimeRangeNarrow )) {
219227 return false ;
220228 }
221- histos.fill (HIST (" hNEvents" ), 6.5 );
229+ if (isFillHisto)
230+ histos.fill (HIST (" hNEvents" ), 6.5 );
222231
223- histos.fill (HIST (" hEventNchCorrelation" ), collision.multNTracksPVeta1 (), collision.multNTracksGlobal ());
224- histos.fill (HIST (" hEventPVcontributorsVsCentrality" ), collision.centFT0C (), collision.multNTracksPVeta1 ());
225- histos.fill (HIST (" hEventGlobalTracksVsCentrality" ), collision.centFT0C (), collision.multNTracksGlobal ());
232+ if (isFillHisto) {
233+ histos.fill (HIST (" hEventNchCorrelation" ), collision.multNTracksPVeta1 (), collision.multNTracksGlobal ());
234+ histos.fill (HIST (" hEventPVcontributorsVsCentrality" ), collision.centFT0C (), collision.multNTracksPVeta1 ());
235+ histos.fill (HIST (" hEventGlobalTracksVsCentrality" ), collision.centFT0C (), collision.multNTracksGlobal ());
236+ }
226237
227238 return true ;
228239 }
@@ -355,7 +366,8 @@ struct cascadeFlow {
355366 const AxisSpec v2Axis{200 , -1 ., 1 ., " #it{v}_{2}" };
356367 const AxisSpec CentAxis{18 , 0 ., 90 ., " FT0C centrality percentile" };
357368 TString hNEventsLabels[8 ] = {" All" , " sel8" , " z vrtx" , " kNoSameBunchPileup" , " kIsGoodZvtxFT0vsPV" , " trackOccupancyInTimeRange" , " kNoCollInTimeRange" , " kIsGoodEventEP" };
358- TString hNEventsLabelsMC[5 ] = {" All" , " z vtx" , " >=1RecoColl" , " 1Reco" , " 2Reco" };
369+ TString hNEventsLabelsMC[6 ] = {" All" , " z vtx" , " >=1RecoColl" , " 1Reco" , " 2Reco" , " EvSelected" };
370+ TString hNCascLabelsMC[8 ] = {" All Xi" , " all Omega" , " Xi: has MC coll" , " Om: has MC coll" , " Xi: isPrimary" , " Om: is Primary" , " Xi: |eta|<0.8" , " Om: |eta| < 0.8" };
359371
360372 resolution.add (" QVectorsT0CTPCA" , " QVectorsT0CTPCA" , HistType::kTH2F , {axisQVs, CentAxis});
361373 resolution.add (" QVectorsT0CTPCC" , " QVectorsT0CTPCC" , HistType::kTH2F , {axisQVs, CentAxis});
@@ -381,10 +393,13 @@ struct cascadeFlow {
381393 histos.add (" hEventNchCorrelationAfterEP" , " hEventNchCorrelationAfterEP" , kTH2F , {{5000 , 0 , 5000 }, {2500 , 0 , 2500 }});
382394 histos.add (" hEventPVcontributorsVsCentralityAfterEP" , " hEventPVcontributorsVsCentralityAfterEP" , kTH2F , {{100 , 0 , 100 }, {5000 , 0 , 5000 }});
383395 histos.add (" hEventGlobalTracksVsCentralityAfterEP" , " hEventGlobalTracksVsCentralityAfterEP" , kTH2F , {{100 , 0 , 100 }, {2500 , 0 , 2500 }});
396+ histos.add (" hMultNTracksITSTPCVsCentrality" , " hMultNTracksITSTPCVsCentrality" , kTH2F , {{100 , 0 , 100 }, {1000 , 0 , 5000 }});
384397
385398 histos.add (" hCandidate" , " hCandidate" , HistType::kTH1F , {{22 , -0.5 , 21.5 }});
386399 histos.add (" hCascadeSignal" , " hCascadeSignal" , HistType::kTH1F , {{6 , -0.5 , 5.5 }});
387400 histos.add (" hCascade" , " hCascade" , HistType::kTH1F , {{6 , -0.5 , 5.5 }});
401+ histos.add (" hXiPtvsCent" , " hXiPtvsCent" , HistType::kTH2F , {{100 , 0 , 100 }, {200 , 0 , 20 }});
402+ histos.add (" hOmegaPtvsCent" , " hOmegaPtvsCent" , HistType::kTH2F , {{100 , 0 , 100 }, {200 , 0 , 20 }});
388403 histos.add (" hCascadePhi" , " hCascadePhi" , HistType::kTH1F , {{100 , 0 , 2 * TMath::Pi ()}});
389404 histos.add (" hcascminuspsiT0C" , " hcascminuspsiT0C" , HistType::kTH1F , {{100 , 0 , TMath::Pi ()}});
390405 histos.add (" hv2CEPvsFT0C" , " hv2CEPvsFT0C" , HistType::kTH2F , {CentAxis, {100 , -1 , 1 }});
@@ -396,10 +411,15 @@ struct cascadeFlow {
396411 histosMCGen.add (" h2DGenOmegaY05" , " h2DGenOmegaY05" , HistType::kTH2F , {{100 , 0 , 100 }, {200 , 0 , 20 }});
397412 histosMCGen.add (" hGenXiY" , " hGenXiY" , HistType::kTH1F , {{100 , -1 , 1 }});
398413 histosMCGen.add (" hGenOmegaY" , " hGenOmegaY" , HistType::kTH1F , {{100 , -1 , 1 }});
399- histosMCGen.add (" hNEventsMC" , " hNEventsMC" , {HistType::kTH1F , {{5 , 0 .f , 5 .f }}});
414+ histosMCGen.add (" hZvertexGen" , " hZvertexGen" , HistType::kTH1F , {{100 , -20 , 20 }});
415+ histosMCGen.add (" hNEventsMC" , " hNEventsMC" , {HistType::kTH1F , {{6 , 0 .f , 6 .f }}});
400416 for (Int_t n = 1 ; n <= histosMCGen.get <TH1>(HIST (" hNEventsMC" ))->GetNbinsX (); n++) {
401417 histosMCGen.get <TH1>(HIST (" hNEventsMC" ))->GetXaxis ()->SetBinLabel (n, hNEventsLabelsMC[n - 1 ]);
402418 }
419+ histosMCGen.add (" hNCascGen" , " hNCascGen" , {HistType::kTH1F , {{8 , 0 .f , 8 .f }}});
420+ for (Int_t n = 1 ; n <= histosMCGen.get <TH1>(HIST (" hNCascGen" ))->GetNbinsX (); n++) {
421+ histosMCGen.get <TH1>(HIST (" hNCascGen" ))->GetXaxis ()->SetBinLabel (n, hNCascLabelsMC[n - 1 ]);
422+ }
403423
404424 for (int iS{0 }; iS < 2 ; ++iS) {
405425 cascadev2::hMassBeforeSelVsPt[iS] = histos.add <TH2>(Form (" hMassBeforeSelVsPt%s" , cascadev2::speciesNames[iS].data ()), " hMassBeforeSelVsPt" , HistType::kTH2F , {massCascAxis[iS], ptAxis});
@@ -433,7 +453,7 @@ struct cascadeFlow {
433453
434454 int counter = 0 ;
435455
436- if (!AcceptEvent (coll)) {
456+ if (!AcceptEvent (coll, 1 )) {
437457 return ;
438458 }
439459
@@ -484,7 +504,7 @@ struct cascadeFlow {
484504 void processTrainingSignal (soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels>::iterator const & coll, CascMCCandidates const & Cascades, DauTracks const &, soa::Join<aod::CascMCCores, aod::CascMCCollRefs> const &)
485505 {
486506
487- if (!AcceptEvent (coll)) {
507+ if (!AcceptEvent (coll, 1 )) {
488508 return ;
489509 }
490510 histos.fill (HIST (" hEventCentrality" ), coll.centFT0C ());
@@ -516,7 +536,7 @@ struct cascadeFlow {
516536 void processAnalyseData (CollEventPlane const & coll, CascCandidates const & Cascades, DauTracks const &)
517537 {
518538
519- if (!AcceptEvent (coll)) {
539+ if (!AcceptEvent (coll, 1 )) {
520540 return ;
521541 }
522542
@@ -638,7 +658,7 @@ struct cascadeFlow {
638658 void processAnalyseDataEPCentralFW (CollEventPlaneCentralFW const & coll, CascCandidates const & Cascades, DauTracks const &)
639659 {
640660
641- if (!AcceptEvent (coll)) {
661+ if (!AcceptEvent (coll, 1 )) {
642662 return ;
643663 }
644664
@@ -766,7 +786,7 @@ struct cascadeFlow {
766786 void processAnalyseMC (soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels>::iterator const & coll, CascMCCandidates const & Cascades, DauTracks const &, soa::Join<aod::CascMCCores, aod::CascMCCollRefs> const &)
767787 {
768788
769- if (!AcceptEvent (coll)) {
789+ if (!AcceptEvent (coll, 1 )) {
770790 return ;
771791 }
772792
@@ -776,6 +796,7 @@ struct cascadeFlow {
776796 histos.fill (HIST (" hEventGlobalTracksVsCentralityAfterEP" ), coll.centFT0C (), coll.multNTracksGlobal ());
777797 histos.fill (HIST (" hEventCentrality" ), coll.centFT0C ());
778798 histos.fill (HIST (" hEventVertexZ" ), coll.posZ ());
799+ histos.fill (HIST (" hMultNTracksITSTPCVsCentrality" ), coll.centFT0C (), coll.multNTracksITSTPC ());
779800
780801 std::vector<float > bdtScore[2 ];
781802 for (auto & casc : Cascades) {
@@ -792,6 +813,13 @@ struct cascadeFlow {
792813 pdgCode = 0 ;
793814 }
794815
816+ // true reco cascades before applying any selection
817+ if (std::abs (pdgCode) == 3312 && std::abs (cascMC.pdgCodeV0 ()) == 3122 && std::abs (cascMC.pdgCodeBachelor ()) == 211 ) {
818+ histos.fill (HIST (" hXiPtvsCent" ), coll.centFT0C (), casc.pt ());
819+ } else if (std::abs (pdgCode) == 3334 && std::abs (cascMC.pdgCodeV0 ()) == 3122 && std::abs (cascMC.pdgCodeBachelor ()) == 321 ) {
820+ histos.fill (HIST (" hOmegaPtvsCent" ), coll.centFT0C (), casc.pt ());
821+ }
822+
795823 // / Add some minimal cuts for single track variables (min number of TPC clusters)
796824 auto negExtra = casc.negTrackExtra_as <DauTracks>();
797825 auto posExtra = casc.posTrackExtra_as <DauTracks>();
@@ -819,7 +847,6 @@ struct cascadeFlow {
819847
820848 float massCasc[2 ]{casc.mXi (), casc.mOmega ()};
821849
822- // inv mass loose cut
823850 if (casc.pt () < MinPt || casc.pt () > MaxPt) {
824851 continue ;
825852 }
@@ -869,82 +896,98 @@ struct cascadeFlow {
869896 }
870897 }
871898
872- void processMCGen (MCCollisionsStra const & mcCollisions, soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraCollLabels> const & collisions, soa::Join<aod::CascMCCores, aod::CascMCCollRefs> const & CascMCCores )
899+ void processMCGen (MCCollisionsStra::iterator const & mcCollision, const soa::SmallGroups<soa:: Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraCollLabels>> & collisions, const soa::SmallGroups<soa:: Join<aod::CascMCCores, aod::CascMCCollRefs>>& cascMC )
873900 {
874901
875- for (auto const & mcCollision : mcCollisions) {
876- histosMCGen.fill (HIST (" hNEventsMC" ), 0.5 );
877- // Generated with accepted z vertex
878- if (TMath::Abs (mcCollision.posZ ()) > cutzvertex) {
879- return ;
902+ histosMCGen.fill (HIST (" hZvertexGen" ), mcCollision.posZ ());
903+ histosMCGen.fill (HIST (" hNEventsMC" ), 0.5 );
904+ // Generated with accepted z vertex
905+ if (TMath::Abs (mcCollision.posZ ()) > cutzvertex) {
906+ return ;
907+ }
908+ histosMCGen.fill (HIST (" hNEventsMC" ), 1.5 );
909+ // Check if there is at least one of the reconstructed collisions associated to this MC collision
910+ if (collisions.size () < 1 )
911+ return ;
912+ histosMCGen.fill (HIST (" hNEventsMC" ), 2.5 );
913+ if (collisions.size () == 1 )
914+ histosMCGen.fill (HIST (" hNEventsMC" ), 3.5 );
915+ else if (collisions.size () == 2 )
916+ histosMCGen.fill (HIST (" hNEventsMC" ), 4.5 );
917+
918+ int biggestNContribs = -1 ;
919+ int bestCollisionIndex = -1 ;
920+ float centrality = 100 .5f ;
921+ int nCollisions = 0 ;
922+ for (auto const & coll : collisions) {
923+ if (!AcceptEvent (coll, 0 )) {
924+ continue ;
880925 }
881- histosMCGen.fill (HIST (" hNEventsMC" ), 1.5 );
882- // Check if there is at least one of the reconstructed collisions associated to this MC collision
926+ if (biggestNContribs < coll.multPVTotalContributors ()) {
927+ biggestNContribs = coll.multPVTotalContributors ();
928+ bestCollisionIndex = coll.globalIndex ();
929+ centrality = coll.centFT0C ();
930+ }
931+ nCollisions++;
932+ }
933+ if (nCollisions < 1 ) {
934+ return ;
935+ }
883936
884- auto groupedCollisions = collisions. sliceBy (perMcCollision, mcCollision. globalIndex () );
937+ histosMCGen. fill ( HIST ( " hNEventsMC " ), 5.5 );
885938
886- int biggestNContribs = -1 ;
887- int bestCollisionIndex = -1 ;
888- float centrality = 100 .5f ;
889- int nCollisions = 0 ;
890- for (auto const & collision : groupedCollisions) {
939+ for (auto const & cascmc : cascMC) {
940+ if (TMath::Abs (cascmc.pdgCode ()) == 3312 )
941+ histosMCGen.fill (HIST (" hNCascGen" ), 0.5 );
942+ else if (TMath::Abs (cascmc.pdgCode ()) == 3334 )
943+ histosMCGen.fill (HIST (" hNCascGen" ), 1.5 );
944+ if (!cascmc.has_straMCCollision ())
945+ continue ;
946+ if (TMath::Abs (cascmc.pdgCode ()) == 3312 )
947+ histosMCGen.fill (HIST (" hNCascGen" ), 2.5 );
948+ else if (TMath::Abs (cascmc.pdgCode ()) == 3334 )
949+ histosMCGen.fill (HIST (" hNCascGen" ), 3.5 );
950+ if (!cascmc.isPhysicalPrimary ())
951+ continue ;
952+ if (TMath::Abs (cascmc.pdgCode ()) == 3312 )
953+ histosMCGen.fill (HIST (" hNCascGen" ), 4.5 );
954+ else if (TMath::Abs (cascmc.pdgCode ()) == 3334 )
955+ histosMCGen.fill (HIST (" hNCascGen" ), 5.5 );
891956
892- if (!AcceptEvent (collision)) {
893- continue ;
894- }
895- if (biggestNContribs < collision.multPVTotalContributors ()) {
896- biggestNContribs = collision.multPVTotalContributors ();
897- bestCollisionIndex = collision.globalIndex ();
898- centrality = collision.centFT0C ();
899- }
900- nCollisions++;
901- }
902- if (nCollisions < 1 ) {
903- return ;
904- }
905- histosMCGen.fill (HIST (" hNEventsMC" ), 2.5 );
906- if (nCollisions == 1 )
907- histosMCGen.fill (HIST (" hNEventsMC" ), 3.5 );
908- else if (nCollisions == 2 )
909- histosMCGen.fill (HIST (" hNEventsMC" ), 4.5 );
910- for (auto const & cascMC : CascMCCores) {
911- if (!cascMC.has_straMCCollision ())
912- continue ;
957+ float ptmc = RecoDecay::sqrtSumOfSquares (cascmc.pxMC (), cascmc.pyMC ());
913958
914- if (!cascMC.isPhysicalPrimary ())
915- continue ;
959+ float theta = std::atan (ptmc / cascmc.pzMC ()); // -pi/2 < theta < pi/2
960+
961+ float theta1 = 0 ;
916962
917- float ptmc = RecoDecay::sqrtSumOfSquares (cascMC.pxMC (), cascMC.pyMC ());
918-
919- float theta = std::atan (ptmc / cascMC.pzMC ()); // -pi/2 < theta < pi/2
920-
921- float theta1 = 0 ;
922-
923- // if pz is positive (i.e. positive rapidity): 0 < theta < pi/2
924- if (theta > 0 )
925- theta1 = theta; // 0 < theta1/2 < pi/4 --> 0 < tan (theta1/2) < 1 --> positive eta
926- // if pz is negative (i.e. negative rapidity): -pi/2 < theta < 0 --> we need 0 < theta1/2 < pi/2 for the ln to be defined
927- else
928- theta1 = TMath::Pi () + theta; // pi/2 < theta1 < pi --> pi/4 < theta1/2 < pi/2 --> 1 < tan (theta1/2) --> negative eta
929-
930- float cascMCeta = -log (std::tan (theta1 / 2 ));
931- float cascMCy = 0 ;
932-
933- if (TMath::Abs (cascMC.pdgCode ()) == 3312 ) {
934- cascMCy = RecoDecay::y (std::array{cascMC.pxMC (), cascMC.pyMC (), cascMC.pzMC ()}, constants::physics::MassXiMinus);
935- if (TMath::Abs (cascMCeta) < etaCascMCGen)
936- histosMCGen.fill (HIST (" h2DGenXiEta08" ), centrality, ptmc);
937- if (TMath::Abs (cascMCy) < yCascMCGen)
938- histosMCGen.fill (HIST (" h2DGenXiY05" ), centrality, ptmc);
939- histosMCGen.fill (HIST (" hGenXiY" ), cascMCy);
940- } else if (TMath::Abs (cascMC.pdgCode () == 3334 )) {
941- cascMCy = RecoDecay::y (std::array{cascMC.pxMC (), cascMC.pyMC (), cascMC.pzMC ()}, constants::physics::MassOmegaMinus);
942- if (TMath::Abs (cascMCeta) < etaCascMCGen)
943- histosMCGen.fill (HIST (" h2DGenOmegaEta08" ), centrality, ptmc);
944- if (TMath::Abs (cascMCy) < yCascMCGen)
945- histosMCGen.fill (HIST (" h2DGenOmegaY05" ), centrality, ptmc);
946- histosMCGen.fill (HIST (" hGenOmegaY" ), cascMCy);
963+ // if pz is positive (i.e. positive rapidity): 0 < theta < pi/2
964+ if (theta > 0 )
965+ theta1 = theta; // 0 < theta1/2 < pi/4 --> 0 < tan (theta1/2) < 1 --> positive eta
966+ // if pz is negative (i.e. negative rapidity): -pi/2 < theta < 0 --> we need 0 < theta1/2 < pi/2 for the ln to be defined
967+ else
968+ theta1 = TMath::Pi () + theta; // pi/2 < theta1 < pi --> pi/4 < theta1/2 < pi/2 --> 1 < tan (theta1/2) --> negative eta
969+
970+ float cascMCeta = -log (std::tan (theta1 / 2 ));
971+ float cascMCy = 0 ;
972+
973+ if (TMath::Abs (cascmc.pdgCode ()) == 3312 ) {
974+ cascMCy = RecoDecay::y (std::array{cascmc.pxMC (), cascmc.pyMC (), cascmc.pzMC ()}, constants::physics::MassXiMinus);
975+ if (TMath::Abs (cascMCeta) < etaCascMCGen) {
976+ histosMCGen.fill (HIST (" h2DGenXiEta08" ), centrality, ptmc);
977+ histosMCGen.fill (HIST (" hNCascGen" ), 6.5 );
978+ }
979+ if (TMath::Abs (cascMCy) < yCascMCGen)
980+ histosMCGen.fill (HIST (" h2DGenXiY05" ), centrality, ptmc);
981+ histosMCGen.fill (HIST (" hGenXiY" ), cascMCy);
982+ } else if (TMath::Abs (cascmc.pdgCode () == 3334 )) {
983+ cascMCy = RecoDecay::y (std::array{cascmc.pxMC (), cascmc.pyMC (), cascmc.pzMC ()}, constants::physics::MassOmegaMinus);
984+ if (TMath::Abs (cascMCeta) < etaCascMCGen) {
985+ histosMCGen.fill (HIST (" h2DGenOmegaEta08" ), centrality, ptmc);
986+ histosMCGen.fill (HIST (" hNCascGen" ), 7.5 );
947987 }
988+ if (TMath::Abs (cascMCy) < yCascMCGen)
989+ histosMCGen.fill (HIST (" h2DGenOmegaY05" ), centrality, ptmc);
990+ histosMCGen.fill (HIST (" hGenOmegaY" ), cascMCy);
948991 }
949992 }
950993 }
0 commit comments