@@ -49,11 +49,7 @@ using namespace o2::framework::expressions;
4949using namespace o2 ::soa;
5050using namespace o2 ::aod::hf_sel_electron;
5151
52- const std::vector<double > zBins{VARIABLE_WIDTH, -10.0 , -2.5 , 2.5 , 10.0 };
53- const std::vector<double > multBins{VARIABLE_WIDTH, 0 ., 200 ., 500.0 , 5000 .};
54- const std::vector<double > multBinsMcGen{VARIABLE_WIDTH, 0 ., 20 ., 50.0 , 500 .}; // In MCGen multiplicity is defined by counting primaries
5552using BinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::mult::MultFT0M<aod::mult::MultFT0A, aod::mult::MultFT0C>>;
56- const BinningType corrBinning{{zBins, multBins}, true };
5753
5854using BinningTypeMcGen = ColumnBinningPolicy<aod::mccollision::PosZ, o2::aod::mult::MultMCFT0A>;
5955
@@ -75,6 +71,16 @@ struct HfCorrelatorHfeHadrons {
7571 Configurable<float > etaTrackMin{" etaTrackMin" , -0 .8f , " Eta range for associated hadron tracks" };
7672 Configurable<float > dcaXYTrackMax{" dcaXYTrackMax" , 0 .5f , " DCA XY cut" };
7773 Configurable<float > dcaZTrackMax{" dcaZTrackMax" , 1 .0f , " DCA Z cut" };
74+ Configurable<float > tpccrossCut{" tpccrossCut" , 70 , " TPC crossrows cut" };
75+ Configurable<float > itsChi2{" itsChi2" , 36 , " ITS chi2 cluster cut" };
76+ Configurable<float > tpcChi2NCl{" tpcChi2NCl" , 4 , " TPC chi2 cluster cut" };
77+ Configurable<float > tpccrOverFindableRatio{" tpccrOverFindableRatio" , 0 .8f , " TPC chi2 cluster cut" };
78+ Configurable<bool > isDefault{" isDefault" , true , " Default cut" };
79+ Configurable<bool > csyTPCcr{" csyTPCcr" , true , " tpc crossed rows" };
80+ Configurable<bool > csyTPCcrOverFindableRatio{" csyTPCcrOverFindableRatio" , true , " tpc crossed rows over findable cluster" };
81+ Configurable<bool > csyITSchi{" csyITSchi" , true , " ITS chi2" };
82+ Configurable<bool > csyTPCchi{" csyTPCchi" , true , " TPC chi2" };
83+
7884 Configurable<bool > requireEmcal{" requireEmcal" , true , " Require electron to be in EMCal" };
7985
8086 // Sigma cut for non-EMCal electrons
@@ -103,6 +109,10 @@ struct HfCorrelatorHfeHadrons {
103109 Preslice<aod::Tracks> perCol = aod::track::collisionId;
104110 Preslice<aod::HfSelEl> perCollision = aod::hf_sel_electron::collisionId;
105111
112+ ConfigurableAxis zPoolBins{" zPoolBins" , {VARIABLE_WIDTH, -10 .0f , -2 .5f , 2 .5f , 10 .0f }, " z vertex position pools" };
113+ ConfigurableAxis multPoolBins{" multPoolBins" , {VARIABLE_WIDTH, 0 .0f , 2000 .0f , 6000 .0f , 10000 .0f }, " event multiplicity pools (FT0M)" };
114+ ConfigurableAxis multPoolBinsMcGen{" multPoolBinsMcGen" , {VARIABLE_WIDTH, 0 .0f , 20 .0f , 50 .0f , 500 .0f }, " Mixing bins - MC multiplicity" }; // In MCGen multiplicity is defined by counting tracks
115+
106116 ConfigurableAxis binsPosZ{" binsPosZ" , {100 , -10 ., 10 .}, " primary vertex z coordinate" };
107117 ConfigurableAxis binsDeltaEta{" binsDeltaEta" , {30 , -1.8 , 1.8 }, " #it{#Delta#eta}" };
108118 ConfigurableAxis binsDeltaPhi{" binsDeltaPhi" , {32 , -o2::constants::math::PIHalf, 3 . * o2::constants::math::PIHalf}, " #it{#Delta#varphi}" };
@@ -111,6 +121,7 @@ struct HfCorrelatorHfeHadrons {
111121 ConfigurableAxis binsNSigma{" binsNSigma" , {30 , -15 ., 15 .}, " #it{#sigma_{TPC}}" };
112122 ConfigurableAxis binsMass{" binsMass" , {100 , 0.0 , 2.0 }, " Mass (GeV/#it{c}^{2}); entries" };
113123
124+ BinningType corrBinning{{zPoolBins, multPoolBins}, true };
114125 HistogramRegistry registry{
115126 " registry" ,
116127 {}};
@@ -171,7 +182,19 @@ struct HfCorrelatorHfeHadrons {
171182 template <typename T>
172183 bool selAssoHadron (T const & track)
173184 {
174- if (!track.isGlobalTrackWoDCA ()) {
185+ if (isDefault && !track.isGlobalTrackWoDCA ()) {
186+ return false ;
187+ }
188+ if (csyTPCcr && track.tpcNClsCrossedRows () < tpccrossCut) {
189+ return false ;
190+ }
191+ if (csyTPCcrOverFindableRatio && track.tpcCrossedRowsOverFindableCls () < tpccrOverFindableRatio) {
192+ return false ;
193+ }
194+ if (csyITSchi && track.itsChi2NCl () > itsChi2) {
195+ return false ;
196+ }
197+ if (csyTPCchi && track.tpcChi2NCl () > tpcChi2NCl) {
175198 return false ;
176199 }
177200
@@ -261,6 +284,7 @@ struct HfCorrelatorHfeHadrons {
261284 ptElectron = eTrack.ptTrack ();
262285 phiElectron = eTrack.phiTrack ();
263286 etaElectron = eTrack.etaTrack ();
287+
264288 bool acceptElectron = false ;
265289
266290 double deltaPhi = -999 ;
@@ -353,7 +377,7 @@ struct HfCorrelatorHfeHadrons {
353377 ++nElHadUSCorr;
354378 }
355379 }
356- entryElectronHadronPair (deltaPhi, deltaEta, ptElectron, ptHadron, poolBin, nElHadLSCorr, nElHadUSCorr);
380+ entryElectronHadronPair (deltaPhi, deltaEta, ptElectron, ptHadron, eTrack. eopEl (), eTrack. m02El (), eTrack. tpcNSigmaElTrack (), eTrack. tofNSigmaElTrack (), eTrack. tpcNClsCrRowsTrack (), eTrack. tpcCrRowsRatioTrack (), eTrack. itsChi2NClTrack (), eTrack. tpcChi2NClTrack (), eTrack. dcaXYTrack (), eTrack. dcaZTrack (), hTrack. tpcNClsCrossedRows (), hTrack. tpcCrossedRowsOverFindableCls (), hTrack. itsChi2NCl (), hTrack. tpcChi2NCl (), hTrack. dcaXY (), hTrack. dcaZ (), poolBin, nElHadLSCorr, nElHadUSCorr);
357381
358382 } // end Hadron Track loop
359383
@@ -416,7 +440,7 @@ struct HfCorrelatorHfeHadrons {
416440 ++nElHadUSCorr;
417441 }
418442 }
419- entryElectronHadronPair (deltaPhiMix, deltaEtaMix, ptElectronMix, ptHadronMix, poolBin, nElHadLSCorr, nElHadUSCorr);
443+ entryElectronHadronPair (deltaPhiMix, deltaEtaMix, ptElectronMix, ptHadronMix, t1. eopEl (), t1. m02El (), t1. tpcNSigmaElTrack (), t1. tofNSigmaElTrack (), t1. tpcNClsCrRowsTrack (), t1. tpcCrRowsRatioTrack (), t1. itsChi2NClTrack (), t1. tpcChi2NClTrack (), t1. dcaXYTrack (), t1. dcaZTrack (), t2. tpcNClsCrossedRows (), t2. tpcCrossedRowsOverFindableCls (), t2. itsChi2NCl (), t2. tpcChi2NCl (), t2. dcaXY (), t2. dcaZ (), poolBin, nElHadLSCorr, nElHadUSCorr);
420444 }
421445 }
422446
@@ -447,7 +471,7 @@ struct HfCorrelatorHfeHadrons {
447471 void processMcGen (McGenTableCollision const & mcCollision, aod::McParticles const & mcParticles, aod::HfMcGenSelEl const & electrons)
448472 {
449473
450- BinningTypeMcGen const corrBinningMcGen{{zBins, multBinsMcGen }, true };
474+ BinningTypeMcGen const corrBinningMcGen{{zPoolBins, multPoolBinsMcGen }, true };
451475 int poolBin = corrBinningMcGen.getBin (std::make_tuple (mcCollision.posZ (), mcCollision.multMCFT0A ()));
452476
453477 for (const auto & particleMc : mcParticles) {
@@ -566,7 +590,7 @@ struct HfCorrelatorHfeHadrons {
566590 void processMcGenMixedEvent (McGenTableCollisions const & mcCollision, aod::HfMcGenSelEl const & electrons, aod::McParticles const & mcParticles)
567591 {
568592
569- BinningTypeMcGen const corrBinningMcGen{{zBins, multBinsMcGen }, true };
593+ BinningTypeMcGen const corrBinningMcGen{{zPoolBins, multPoolBinsMcGen }, true };
570594
571595 auto tracksTuple = std::make_tuple (electrons, mcParticles);
572596 Pair<McGenTableCollisions, aod::HfMcGenSelEl, aod::McParticles, BinningTypeMcGen> const pairMcGen{corrBinningMcGen, 5 , -1 , mcCollision, tracksTuple, &cache};
0 commit comments