12
12
// / \brief Task to create derived data for cascade flow analyses
13
13
// / \authors: Chiara De Martin ([email protected] ), Maximiliano Puccio ([email protected] )
14
14
15
+ #include < vector>
16
+ #include < string>
17
+ #include < memory>
15
18
#include " Math/Vector3D.h"
16
19
#include " TRandom3.h"
17
20
#include " Common/DataModel/Centrality.h"
@@ -121,8 +124,6 @@ static const std::vector<std::string> labelsCutScore = {"Background score", "Sig
121
124
122
125
struct cascadeFlow {
123
126
124
- PresliceUnsorted<soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraCollLabels>> perMcCollision = aod::v0data::straMCCollisionId;
125
-
126
127
// axes
127
128
ConfigurableAxis axisQVs{" axisQVs" , {500 , -10 .f , 10 .f }, " axisQVs" };
128
129
ConfigurableAxis axisQVsNorm{" axisQVsNorm" , {200 , -1 .f , 1 .f }, " axisQVsNorm" };
@@ -173,43 +174,50 @@ struct cascadeFlow {
173
174
o2::analysis::MlResponse<float > mlResponseOmega;
174
175
175
176
template <typename TCollision>
176
- bool AcceptEvent (TCollision const & collision)
177
+ bool AcceptEvent (TCollision const & collision, bool isFillHisto )
177
178
{
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
+ }
182
185
183
186
// Event selection if required
184
187
if (sel8 && !collision.sel8 ()) {
185
188
return false ;
186
189
}
187
- histos.fill (HIST (" hNEvents" ), 1.5 );
190
+ if (isFillHisto)
191
+ histos.fill (HIST (" hNEvents" ), 1.5 );
188
192
189
193
// Z vertex selection
190
194
if (TMath::Abs (collision.posZ ()) > cutzvertex) {
191
195
return false ;
192
196
}
193
- histos.fill (HIST (" hNEvents" ), 2.5 );
197
+ if (isFillHisto)
198
+ histos.fill (HIST (" hNEvents" ), 2.5 );
194
199
195
200
// kNoSameBunchPileup selection
196
201
if (isNoSameBunchPileupCut && !collision.selection_bit (aod::evsel::kNoSameBunchPileup )) {
197
202
return false ;
198
203
}
199
- histos.fill (HIST (" hNEvents" ), 3.5 );
204
+ if (isFillHisto)
205
+ histos.fill (HIST (" hNEvents" ), 3.5 );
200
206
201
207
// kIsGoodZvtxFT0vsPV selection
202
208
if (isGoodZvtxFT0vsPVCut && !collision.selection_bit (aod::evsel::kIsGoodZvtxFT0vsPV )) {
203
209
return false ;
204
210
}
205
- histos.fill (HIST (" hNEvents" ), 4.5 );
211
+ if (isFillHisto)
212
+ histos.fill (HIST (" hNEvents" ), 4.5 );
206
213
207
214
// occupancy cut
208
215
int occupancy = collision.trackOccupancyInTimeRange ();
209
216
if (occupancy < MinOccupancy || occupancy > MaxOccupancy) {
210
217
return false ;
211
218
}
212
- histos.fill (HIST (" hNEvents" ), 5.5 );
219
+ if (isFillHisto)
220
+ histos.fill (HIST (" hNEvents" ), 5.5 );
213
221
214
222
if (isCollInStandardTimeRange && !collision.selection_bit (o2::aod::evsel::kNoCollInTimeRangeStandard )) {
215
223
return false ;
@@ -218,11 +226,14 @@ struct cascadeFlow {
218
226
if (isCollInNarrowTimeRange && !collision.selection_bit (o2::aod::evsel::kNoCollInTimeRangeNarrow )) {
219
227
return false ;
220
228
}
221
- histos.fill (HIST (" hNEvents" ), 6.5 );
229
+ if (isFillHisto)
230
+ histos.fill (HIST (" hNEvents" ), 6.5 );
222
231
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
+ }
226
237
227
238
return true ;
228
239
}
@@ -355,7 +366,8 @@ struct cascadeFlow {
355
366
const AxisSpec v2Axis{200 , -1 ., 1 ., " #it{v}_{2}" };
356
367
const AxisSpec CentAxis{18 , 0 ., 90 ., " FT0C centrality percentile" };
357
368
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" };
359
371
360
372
resolution.add (" QVectorsT0CTPCA" , " QVectorsT0CTPCA" , HistType::kTH2F , {axisQVs, CentAxis});
361
373
resolution.add (" QVectorsT0CTPCC" , " QVectorsT0CTPCC" , HistType::kTH2F , {axisQVs, CentAxis});
@@ -381,10 +393,13 @@ struct cascadeFlow {
381
393
histos.add (" hEventNchCorrelationAfterEP" , " hEventNchCorrelationAfterEP" , kTH2F , {{5000 , 0 , 5000 }, {2500 , 0 , 2500 }});
382
394
histos.add (" hEventPVcontributorsVsCentralityAfterEP" , " hEventPVcontributorsVsCentralityAfterEP" , kTH2F , {{100 , 0 , 100 }, {5000 , 0 , 5000 }});
383
395
histos.add (" hEventGlobalTracksVsCentralityAfterEP" , " hEventGlobalTracksVsCentralityAfterEP" , kTH2F , {{100 , 0 , 100 }, {2500 , 0 , 2500 }});
396
+ histos.add (" hMultNTracksITSTPCVsCentrality" , " hMultNTracksITSTPCVsCentrality" , kTH2F , {{100 , 0 , 100 }, {1000 , 0 , 5000 }});
384
397
385
398
histos.add (" hCandidate" , " hCandidate" , HistType::kTH1F , {{22 , -0.5 , 21.5 }});
386
399
histos.add (" hCascadeSignal" , " hCascadeSignal" , HistType::kTH1F , {{6 , -0.5 , 5.5 }});
387
400
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 }});
388
403
histos.add (" hCascadePhi" , " hCascadePhi" , HistType::kTH1F , {{100 , 0 , 2 * TMath::Pi ()}});
389
404
histos.add (" hcascminuspsiT0C" , " hcascminuspsiT0C" , HistType::kTH1F , {{100 , 0 , TMath::Pi ()}});
390
405
histos.add (" hv2CEPvsFT0C" , " hv2CEPvsFT0C" , HistType::kTH2F , {CentAxis, {100 , -1 , 1 }});
@@ -396,10 +411,15 @@ struct cascadeFlow {
396
411
histosMCGen.add (" h2DGenOmegaY05" , " h2DGenOmegaY05" , HistType::kTH2F , {{100 , 0 , 100 }, {200 , 0 , 20 }});
397
412
histosMCGen.add (" hGenXiY" , " hGenXiY" , HistType::kTH1F , {{100 , -1 , 1 }});
398
413
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 }}});
400
416
for (Int_t n = 1 ; n <= histosMCGen.get <TH1>(HIST (" hNEventsMC" ))->GetNbinsX (); n++) {
401
417
histosMCGen.get <TH1>(HIST (" hNEventsMC" ))->GetXaxis ()->SetBinLabel (n, hNEventsLabelsMC[n - 1 ]);
402
418
}
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
+ }
403
423
404
424
for (int iS{0 }; iS < 2 ; ++iS) {
405
425
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 {
433
453
434
454
int counter = 0 ;
435
455
436
- if (!AcceptEvent (coll)) {
456
+ if (!AcceptEvent (coll, 1 )) {
437
457
return ;
438
458
}
439
459
@@ -484,7 +504,7 @@ struct cascadeFlow {
484
504
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 &)
485
505
{
486
506
487
- if (!AcceptEvent (coll)) {
507
+ if (!AcceptEvent (coll, 1 )) {
488
508
return ;
489
509
}
490
510
histos.fill (HIST (" hEventCentrality" ), coll.centFT0C ());
@@ -516,7 +536,7 @@ struct cascadeFlow {
516
536
void processAnalyseData (CollEventPlane const & coll, CascCandidates const & Cascades, DauTracks const &)
517
537
{
518
538
519
- if (!AcceptEvent (coll)) {
539
+ if (!AcceptEvent (coll, 1 )) {
520
540
return ;
521
541
}
522
542
@@ -638,7 +658,7 @@ struct cascadeFlow {
638
658
void processAnalyseDataEPCentralFW (CollEventPlaneCentralFW const & coll, CascCandidates const & Cascades, DauTracks const &)
639
659
{
640
660
641
- if (!AcceptEvent (coll)) {
661
+ if (!AcceptEvent (coll, 1 )) {
642
662
return ;
643
663
}
644
664
@@ -766,7 +786,7 @@ struct cascadeFlow {
766
786
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 &)
767
787
{
768
788
769
- if (!AcceptEvent (coll)) {
789
+ if (!AcceptEvent (coll, 1 )) {
770
790
return ;
771
791
}
772
792
@@ -776,6 +796,7 @@ struct cascadeFlow {
776
796
histos.fill (HIST (" hEventGlobalTracksVsCentralityAfterEP" ), coll.centFT0C (), coll.multNTracksGlobal ());
777
797
histos.fill (HIST (" hEventCentrality" ), coll.centFT0C ());
778
798
histos.fill (HIST (" hEventVertexZ" ), coll.posZ ());
799
+ histos.fill (HIST (" hMultNTracksITSTPCVsCentrality" ), coll.centFT0C (), coll.multNTracksITSTPC ());
779
800
780
801
std::vector<float > bdtScore[2 ];
781
802
for (auto & casc : Cascades) {
@@ -792,6 +813,13 @@ struct cascadeFlow {
792
813
pdgCode = 0 ;
793
814
}
794
815
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
+
795
823
// / Add some minimal cuts for single track variables (min number of TPC clusters)
796
824
auto negExtra = casc.negTrackExtra_as <DauTracks>();
797
825
auto posExtra = casc.posTrackExtra_as <DauTracks>();
@@ -819,7 +847,6 @@ struct cascadeFlow {
819
847
820
848
float massCasc[2 ]{casc.mXi (), casc.mOmega ()};
821
849
822
- // inv mass loose cut
823
850
if (casc.pt () < MinPt || casc.pt () > MaxPt) {
824
851
continue ;
825
852
}
@@ -869,82 +896,98 @@ struct cascadeFlow {
869
896
}
870
897
}
871
898
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 )
873
900
{
874
901
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 ;
880
925
}
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
+ }
883
936
884
- auto groupedCollisions = collisions. sliceBy (perMcCollision, mcCollision. globalIndex () );
937
+ histosMCGen. fill ( HIST ( " hNEventsMC " ), 5.5 );
885
938
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 );
891
956
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 ());
913
958
914
- if (!cascMC.isPhysicalPrimary ())
915
- continue ;
959
+ float theta = std::atan (ptmc / cascmc.pzMC ()); // -pi/2 < theta < pi/2
960
+
961
+ float theta1 = 0 ;
916
962
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 );
947
987
}
988
+ if (TMath::Abs (cascMCy) < yCascMCGen)
989
+ histosMCGen.fill (HIST (" h2DGenOmegaY05" ), centrality, ptmc);
990
+ histosMCGen.fill (HIST (" hGenOmegaY" ), cascMCy);
948
991
}
949
992
}
950
993
}
0 commit comments