Skip to content

Commit f4712f2

Browse files
authored
Adding variables to the electron–hadron correlation table.
1 parent 844c912 commit f4712f2

File tree

1 file changed

+33
-9
lines changed

1 file changed

+33
-9
lines changed

PWGHF/HFC/TableProducer/correlatorHfeHadrons.cxx

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,7 @@ using namespace o2::framework::expressions;
4949
using namespace o2::soa;
5050
using 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
5552
using BinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::mult::MultFT0M<aod::mult::MultFT0A, aod::mult::MultFT0C>>;
56-
const BinningType corrBinning{{zBins, multBins}, true};
5753

5854
using 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

Comments
 (0)