Skip to content

Commit f239406

Browse files
authored
[PWGHF] Add pT histogram in MC gen for efficiency calculation (#12955)
1 parent b4a3bdf commit f239406

File tree

2 files changed

+156
-56
lines changed

2 files changed

+156
-56
lines changed

PWGHF/HFC/TableProducer/correlatorHfeHadrons.cxx

Lines changed: 81 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
#include <Framework/InitContext.h>
3737
#include <Framework/runDataProcessing.h>
3838

39+
#include <TRandom3.h>
40+
3941
#include <cstdint>
4042
#include <vector>
4143

@@ -48,7 +50,7 @@ using namespace o2::aod::hf_sel_electron;
4850
std::vector<double> zBins{VARIABLE_WIDTH, -10.0, -2.5, 2.5, 10.0};
4951
std::vector<double> multBins{VARIABLE_WIDTH, 0., 200., 500.0, 5000.};
5052
std::vector<double> multBinsMcGen{VARIABLE_WIDTH, 0., 20., 50.0, 500.}; // In MCGen multiplicity is defined by counting primaries
51-
using BinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::mult::MultFV0M<aod::mult::MultFV0A, aod::mult::MultFV0C>>;
53+
using BinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::mult::MultFT0M<aod::mult::MultFT0A, aod::mult::MultFT0C>>;
5254
BinningType corrBinning{{zBins, multBins}, true};
5355
using BinningTypeMcGen = ColumnBinningPolicy<aod::mccollision::PosZ, o2::aod::mult::MultMCFT0A>;
5456

@@ -69,10 +71,20 @@ struct HfCorrelatorHfeHadrons {
6971
Configurable<float> etaTrackMin{"etaTrackMin", -0.8f, "Eta range for associated hadron tracks"};
7072
Configurable<float> dcaXYTrackMax{"dcaXYTrackMax", 0.5f, "DCA XY cut"};
7173
Configurable<float> dcaZTrackMax{"dcaZTrackMax", 1.0f, "DCA Z cut"};
74+
Configurable<bool> requireEmcal{"requireEmcal", true, "Require electron to be in EMCal"};
75+
76+
// Sigma cut for non-EMCal electrons
77+
Configurable<float> tofNSigmaEl{"tofNSigmaEl", 3.0, "Sigma cut for electrons not in EMCal"};
78+
Configurable<float> tpcNsigmaElectronMin{"tpcNsigmaElectronMin", -0.5f, "min Electron TPCnsigma"};
79+
Configurable<float> tpcNsigmaElectronMax{"tpcNsigmaElectronMax", 3.0f, "max Electron TPCnsigma"};
7280

7381
// Electron hadron correlation condition
7482
Configurable<bool> ptCondition{"ptCondition", true, "Electron pT should be greater than associate particle pT"};
7583

84+
Configurable<float> eventFractionToAnalyze{"eventFractionToAnalyze", -1, "Fraction of events to analyze (use only for ME offline on very large samples)"};
85+
86+
TRandom3 rnd{0};
87+
7688
SliceCache cache;
7789
using TableCollisions = o2::soa::Filtered<o2::soa::Join<aod::Collisions, aod::Mults, aod::EvSels>>;
7890
using TableCollision = TableCollisions::iterator;
@@ -87,28 +99,40 @@ struct HfCorrelatorHfeHadrons {
8799
Preslice<aod::Tracks> perCol = aod::track::collisionId;
88100
Preslice<aod::HfSelEl> perCollision = aod::hf_sel_electron::collisionId;
89101

102+
ConfigurableAxis binsPosZ{"binsPosZ", {100, -10., 10.}, "primary vertex z coordinate"};
90103
ConfigurableAxis binsDeltaEta{"binsDeltaEta", {30, -1.8, 1.8}, "#it{#Delta#eta}"};
91104
ConfigurableAxis binsDeltaPhi{"binsDeltaPhi", {32, -o2::constants::math::PIHalf, 3. * o2::constants::math::PIHalf}, "#it{#Delta#varphi}"};
92105
ConfigurableAxis binsPt{"binsPt", {50, 0.0, 50}, "#it{p_{T}}(GeV/#it{c})"};
93106
ConfigurableAxis binsPoolBin{"binsPoolBin", {9, 0., 9.}, "PoolBin"};
107+
ConfigurableAxis binsNSigma{"binsNSigma", {30, -15., 15.}, "#it{#sigma_{TPC}}"};
94108

95109
HistogramRegistry registry{
96110
"registry",
97111
{}};
98112

99113
void init(InitContext&)
100114
{
115+
AxisSpec axisPosZ = {binsPosZ, "Pos Z"};
101116
AxisSpec axisDeltaEta = {binsDeltaEta, "#Delta #eta = #eta_{Electron}- #eta_{Hadron}"};
102117
AxisSpec axisDeltaPhi = {binsDeltaPhi, "#Delta #varphi = #varphi_{Electron}- #varphi_{Hadron}"};
103118
AxisSpec axisPt = {binsPt, "#it{p_{T}}(GeV/#it{c})"};
104119
AxisSpec axisPoolBin = {binsPoolBin, "PoolBin"};
120+
AxisSpec axisNSigma = {binsNSigma, "it{#sigma_{TPC}}"};
105121

122+
registry.add("hZvertex", "z vertex", {HistType::kTH1D, {axisPosZ}});
123+
registry.add("hNevents", "No of events", {HistType::kTH1D, {{3, 1, 4}}});
106124
registry.add("hInclusiveEHCorrel", "Sparse for Delta phi and Delta eta Inclusive Electron with Hadron;p_{T}^{e} (GeV#it{/c});p_{T}^{h} (GeV#it{/c});#Delta#varphi;#Delta#eta;", {HistType::kTHnSparseF, {{axisPt}, {axisPt}, {axisDeltaPhi}, {axisDeltaEta}}});
107125
registry.add("hLSEHCorrel", "Sparse for Delta phi and Delta eta Like sign Electron pair with Hadron;p_{T}^{e} (GeV#it{/c});p_{T}^{h} (GeV#it{/c});#Delta#varphi;#Delta#eta;", {HistType::kTHnSparseF, {{axisPt}, {axisPt}, {axisDeltaPhi}, {axisDeltaEta}}});
108126
registry.add("hULSEHCorrel", "Sparse for Delta phi and Delta eta UnLike sign Electron pair with Hadron;p_{T}^{e} (GeV#it{/c});p_{T}^{h} (GeV#it{/c});#Delta#varphi;#Delta#eta;", {HistType::kTHnSparseF, {{axisPt}, {axisPt}, {axisDeltaPhi}, {axisDeltaEta}}});
127+
registry.add("hTofnSigmaVsP", " Tof nSigma info vs P; n#sigma;#it{p} (GeV#it{/c});passEMcal;", {HistType::kTH2F, {{axisNSigma}, {axisPt}}});
128+
registry.add("hTpcnSigmaVsP", " TPC nSigma info vs P; n#sigma;#it{p} (GeV#it{/c});passEMcal;", {HistType::kTH2F, {{axisNSigma}, {axisPt}}});
129+
109130
registry.add("hMCgenNonHfEHCorrel", "Sparse for Delta phi and Delta eta for McGen Non Hf Electron with Hadron;p_{T}^{e} (GeV#it{/c});p_{T}^{h} (GeV#it{/c});#Delta#varphi;#Delta#eta;", {HistType::kTHnSparseF, {{axisPt}, {axisPt}, {axisDeltaPhi}, {axisDeltaEta}}});
110131
registry.add("hMCgenInclusiveEHCorrl", "Sparse for Delta phi and Delta eta for McGen Electron pair with Hadron;p_{T}^{e} (GeV#it{/c});p_{T}^{h} (GeV#it{/c});#Delta#varphi;#Delta#eta;", {HistType::kTHnSparseF, {{axisPt}, {axisPt}, {axisDeltaPhi}, {axisDeltaEta}}});
111132
registry.add("hptElectron", "hptElectron", {HistType::kTH1D, {axisPt}});
133+
registry.add("hptHadron", "hptHadron", {HistType::kTH1D, {axisPt}});
134+
registry.add("hMCgenptHadron", "hMCgenptHadron", {HistType::kTH1D, {axisPt}});
135+
registry.add("hMCgenptHadronprimary", "hMCgenptHadronprimary", {HistType::kTH1D, {axisPt}});
112136

113137
registry.add("hMixEventInclusiveEHCorrl", "Sparse for mix event Delta phi and Delta eta Inclusive Electron with Hadron;p_{T}^{e} (GeV#it{/c});p_{T}^{h} (GeV#it{/c});#Delta#varphi;#Delta#eta;", {HistType::kTHnSparseF, {{axisPt}, {axisPt}, {axisDeltaPhi}, {axisDeltaEta}}});
114138
registry.add("hMixEventLSEHCorrel", "Sparse for mix event Delta phi and Delta eta Like sign Electron pair with Hadron;p_{T}^{e} (GeV#it{/c});p_{T}^{h} (GeV#it{/c});#Delta#varphi;#Delta#eta;", {HistType::kTHnSparseF, {{axisPt}, {axisPt}, {axisDeltaPhi}, {axisDeltaEta}}});
@@ -147,18 +171,30 @@ struct HfCorrelatorHfeHadrons {
147171
{
148172
if (!(isRun3 ? collision.sel8() : (collision.sel7() && collision.alias_bit(kINT7))))
149173
return;
150-
int poolBin = corrBinning.getBin(std::make_tuple(collision.posZ(), collision.multFV0M()));
174+
int poolBin = corrBinning.getBin(std::make_tuple(collision.posZ(), collision.multFT0M()));
151175
auto bc = collision.template bc_as<aod::BCsWithTimestamps>();
152176
int gCollisionId = collision.globalIndex();
153177
int64_t timeStamp = bc.timestamp();
154178

179+
bool skipEventTableFilling = false;
180+
if (eventFractionToAnalyze > 0) {
181+
if (rnd.Uniform(0, 1) > eventFractionToAnalyze) {
182+
skipEventTableFilling = true;
183+
}
184+
}
185+
186+
registry.fill(HIST("hNevents"), 1);
155187
// Add hadron Table For Mix Event Electron Hadron correlation
156-
for (const auto& hTrack : tracks) {
157-
if (!selAssoHadron(hTrack)) {
158-
continue;
188+
if (!skipEventTableFilling) {
189+
registry.fill(HIST("hZvertex"), collision.posZ());
190+
for (const auto& hTrack : tracks) {
191+
if (!selAssoHadron(hTrack)) {
192+
continue;
193+
}
194+
registry.fill(HIST("hTracksBin"), poolBin);
195+
registry.fill(HIST("hptHadron"), hTrack.pt());
196+
entryHadron(hTrack.phi(), hTrack.eta(), hTrack.pt(), poolBin, gCollisionId, timeStamp);
159197
}
160-
registry.fill(HIST("hTracksBin"), poolBin);
161-
entryHadron(hTrack.phi(), hTrack.eta(), hTrack.pt(), poolBin, gCollisionId, timeStamp);
162198
}
163199

164200
// Construct Deta Phi between electrons and hadrons
@@ -171,16 +207,31 @@ struct HfCorrelatorHfeHadrons {
171207
ptElectron = eTrack.ptTrack();
172208
phiElectron = eTrack.phiTrack();
173209
etaElectron = eTrack.etaTrack();
210+
bool acceptElectron = false;
174211

175212
double deltaPhi = -999;
176213
double deltaEta = -999;
177214
double ptHadron = -999;
178215
double etaHadron = -999;
179216
double phiHadron = -999;
217+
// EMCal electron
218+
if (eTrack.isEmcal() && requireEmcal) {
219+
acceptElectron = true;
220+
} else if (!eTrack.isEmcal() && !requireEmcal) {
221+
222+
// Apply sigma cut
223+
if (std::abs(eTrack.tofNSigmaElTrack()) < tofNSigmaEl && eTrack.tpcNSigmaElTrack() > tpcNsigmaElectronMin &&
224+
eTrack.tpcNSigmaElTrack() < tpcNsigmaElectronMax) {
225+
registry.fill(HIST("hTofnSigmaVsP"), eTrack.tofNSigmaElTrack(), eTrack.ptTrack());
226+
registry.fill(HIST("hTpcnSigmaVsP"), eTrack.tpcNSigmaElTrack(), eTrack.ptTrack());
227+
acceptElectron = true;
228+
}
229+
}
180230

181-
if (!eTrack.isEmcal()) {
182-
continue;
231+
if (!acceptElectron) {
232+
continue; // skip electron if not passing criteria
183233
}
234+
184235
registry.fill(HIST("hptElectron"), ptElectron);
185236
int nElectronLS = 0;
186237
int nElectronUS = 0;
@@ -199,8 +250,10 @@ struct HfCorrelatorHfeHadrons {
199250
}
200251
}
201252

202-
registry.fill(HIST("hElectronBin"), poolBin);
203-
entryElectron(phiElectron, etaElectron, ptElectron, nElectronLS, nElectronUS, poolBin, gCollisionId, timeStamp);
253+
if (!skipEventTableFilling) {
254+
registry.fill(HIST("hElectronBin"), poolBin);
255+
entryElectron(phiElectron, etaElectron, ptElectron, nElectronLS, nElectronUS, poolBin, gCollisionId, timeStamp);
256+
}
204257

205258
for (const auto& hTrack : tracks) {
206259
// Apply Hadron cut
@@ -260,7 +313,7 @@ struct HfCorrelatorHfeHadrons {
260313
double ptHadronMix = -999;
261314
double etaHadronMix = -999;
262315
double phiHadronMix = -999;
263-
int poolBin = corrBinning.getBin(std::make_tuple(c2.posZ(), c2.multFV0M()));
316+
int poolBin = corrBinning.getBin(std::make_tuple(c2.posZ(), c2.multFT0M()));
264317
for (const auto& [t1, t2] : combinations(CombinationsFullIndexPolicy(tracks1, tracks2))) {
265318
if (!t1.isEmcal()) {
266319
continue;
@@ -332,9 +385,25 @@ struct HfCorrelatorHfeHadrons {
332385
BinningTypeMcGen corrBinningMcGen{{zBins, multBinsMcGen}, true};
333386
int poolBin = corrBinningMcGen.getBin(std::make_tuple(mcCollision.posZ(), mcCollision.multMCFT0A()));
334387

388+
for (const auto& particleMc : mcParticles) {
389+
if (particleMc.eta() < etaTrackMin || particleMc.eta() > etaTrackMax) {
390+
continue;
391+
}
392+
if (particleMc.pt() < ptTrackMin) {
393+
continue;
394+
}
395+
396+
registry.fill(HIST("hMCgenptHadron"), particleMc.pt());
397+
if (particleMc.isPhysicalPrimary()) {
398+
399+
registry.fill(HIST("hMCgenptHadronprimary"), particleMc.pt());
400+
}
401+
}
402+
335403
double ptElectron = 0;
336404
double phiElectron = 0;
337405
double etaElectron = 0;
406+
338407
for (const auto& electronMc : electron) {
339408
double ptHadron = 0;
340409
double phiHadron = 0;

PWGHF/HFL/TableProducer/electronSelectionWithTpcEmcal.cxx

Lines changed: 75 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,10 @@ struct HfElectronSelectionWithTpcEmcal {
118118
Configurable<float> m20EmcClusterElectronMin{"m20EmcClusterElectronMin", 0.0f, "min Electron EMCal Cluster M20"};
119119
Configurable<float> tpcNsigmaElectronMin{"tpcNsigmaElectronMin", -0.5f, "min Electron TPCnsigma"};
120120
Configurable<float> tpcNsigmaElectronMax{"tpcNsigmaElectronMax", 3.0f, "max Electron TPCnsigma"};
121+
Configurable<int> pdgCodeCharmMin{"pdgCodeCharmMin", 400, "Min Charm Hadron PdgCode"};
122+
Configurable<int> pdgCodeCharmMax{"pdgCodeCharmMax", 600, "Max Charm Hadron PdgCode"};
123+
Configurable<int> pdgCodeBeautyMin{"pdgCodeBeautyMin", 4000, "Min beauty Hadron PdgCode"};
124+
Configurable<int> pdgCodeBeautyMax{"pdgCodeBeautyMax", 6000, "Max beauty Hadron PdgCode"};
121125

122126
using TableCollisions = o2::soa::Filtered<o2::soa::Join<aod::Collisions, aod::Mults, aod::EvSels>>;
123127
using TableCollision = TableCollisions::iterator;
@@ -550,12 +554,9 @@ struct HfElectronSelectionWithTpcEmcal {
550554
void processMcGen(McGenTableCollision const& mcCollision, aod::McParticles const& mcParticles)
551555
{
552556

553-
///// electron identification
554557
bool isNonHfe = false;
555558
for (const auto& particleMc : mcParticles) {
556559

557-
if (!particleMc.isPhysicalPrimary())
558-
continue;
559560
if (!mcGensel(particleMc)) {
560561
continue;
561562
}
@@ -565,71 +566,101 @@ struct HfElectronSelectionWithTpcEmcal {
565566
bool isEmbEta = false;
566567
bool isEmbPi0 = false;
567568

568-
if (particleMc.has_mothers()) {
569-
// Check first mother
570-
auto const& mother = particleMc.mothers_first_as<aod::McParticles>();
569+
// Check first mother
570+
auto const& mother = particleMc.mothers_first_as<aod::McParticles>();
571571

572-
if (std::abs(mother.pdgCode()) == kEta || std::abs(mother.pdgCode()) == kPi0 || std::abs(mother.pdgCode()) == kGamma) {
573-
registry.fill(HIST("hMcgenAllNonHfeElectron"), particleMc.pt());
574-
if (mother.has_mothers()) {
575-
auto const& gmother = mother.mothers_first_as<aod::McParticles>();
576-
if (gmother.has_mothers()) {
577-
auto const& ggmother = gmother.mothers_first_as<aod::McParticles>();
572+
if (std::abs(mother.pdgCode()) == kEta || std::abs(mother.pdgCode()) == kPi0 || std::abs(mother.pdgCode()) == kGamma) {
573+
registry.fill(HIST("hMcgenAllNonHfeElectron"), particleMc.pt());
574+
auto const& gmother = mother.mothers_first_as<aod::McParticles>();
575+
auto const& ggmother = gmother.mothers_first_as<aod::McParticles>();
576+
auto const& gggmother = ggmother.mothers_first_as<aod::McParticles>();
578577

579-
// cases to consider: eta->e, eta->pi0->e, eta->gamma->e, eta->pi0->gamma->e, pi0->e, pi0->gamma->e
578+
// cases to consider: eta->e, eta->pi0->e, eta->gamma->e, eta->pi0->gamma->e, pi0->e, pi0->gamma->e
580579

581-
//================= eta->e ======================================
582-
if (std::abs(mother.pdgCode()) == kEta) {
583-
isEmbEta = true;
584-
}
585-
//================= eta->pi0->e ======================================
580+
//================= eta->e ======================================
581+
if (std::abs(mother.pdgCode()) == kEta) {
582+
if (mother.isPhysicalPrimary()) {
583+
if ((std::abs(gmother.pdgCode()) >= pdgCodeCharmMin && std::abs(gmother.pdgCode()) < pdgCodeCharmMax) ||
584+
(std::abs(gmother.pdgCode()) >= pdgCodeBeautyMin && std::abs(gmother.pdgCode()) < pdgCodeBeautyMax)) {
585+
continue;
586+
}
587+
isEmbEta = true;
588+
}
589+
}
590+
//================= eta->pi0->e ======================================
586591

587-
if (std::abs(mother.pdgCode()) == kPi0) {
588-
isEmbPi0 = true; // pi0 -> e
592+
if (std::abs(mother.pdgCode()) == kPi0) {
593+
if (mother.isPhysicalPrimary()) {
594+
if ((std::abs(gmother.pdgCode()) >= pdgCodeCharmMin && std::abs(gmother.pdgCode()) < pdgCodeCharmMax) ||
595+
(std::abs(gmother.pdgCode()) >= pdgCodeBeautyMin && std::abs(gmother.pdgCode()) < pdgCodeBeautyMax)) {
596+
continue;
597+
}
598+
isEmbPi0 = true; // pi0 -> e
599+
}
589600

590-
if (std::abs(gmother.pdgCode()) == kEta) {
591-
isEmbEta = true; // eta->pi0-> e
592-
}
601+
if (std::abs(gmother.pdgCode()) == kEta) {
602+
if (gmother.isPhysicalPrimary()) {
603+
if ((std::abs(ggmother.pdgCode()) >= pdgCodeCharmMin && std::abs(ggmother.pdgCode()) < pdgCodeCharmMax) ||
604+
(std::abs(ggmother.pdgCode()) >= pdgCodeBeautyMin && std::abs(ggmother.pdgCode()) < pdgCodeBeautyMax)) {
605+
continue;
593606
}
607+
isEmbEta = true; // eta->pi0-> e
608+
}
609+
}
610+
}
594611

595-
/// ==================================== eta->gamma->e and eta->pi0->gamma->e============
596-
if (std::abs(mother.pdgCode()) == kGamma) {
597-
if (std::abs(gmother.pdgCode()) == kEta) {
598-
isEmbEta = true; // eta->gamma-> e
599-
}
600-
601-
if (std::abs(gmother.pdgCode()) == kPi0) {
602-
isEmbPi0 = true; // pi0-> gamma-> e
612+
/// ==================================== eta->gamma->e and eta->pi0->gamma->e============
613+
if (std::abs(mother.pdgCode()) == kGamma) {
614+
if (std::abs(gmother.pdgCode()) == kEta) {
615+
if (gmother.isPhysicalPrimary()) {
616+
if ((std::abs(ggmother.pdgCode()) >= pdgCodeCharmMin && std::abs(ggmother.pdgCode()) < pdgCodeCharmMax) ||
617+
(std::abs(ggmother.pdgCode()) >= pdgCodeBeautyMin && std::abs(ggmother.pdgCode()) < pdgCodeBeautyMax)) {
618+
continue;
619+
}
620+
isEmbEta = true; // eta->gamma-> e
621+
}
622+
}
603623

604-
if (std::abs(ggmother.pdgCode()) == kEta) {
624+
if (std::abs(gmother.pdgCode()) == kPi0) {
625+
if (gmother.isPhysicalPrimary()) {
626+
if ((std::abs(ggmother.pdgCode()) >= pdgCodeCharmMin && std::abs(ggmother.pdgCode()) < pdgCodeCharmMax) ||
627+
(std::abs(ggmother.pdgCode()) >= pdgCodeBeautyMin && std::abs(ggmother.pdgCode()) < pdgCodeBeautyMax)) {
628+
continue;
629+
}
630+
isEmbPi0 = true; // pi0-> gamma-> e
631+
}
605632

606-
isEmbEta = true; // eta->pi0->gamma-> e
607-
}
633+
if (std::abs(ggmother.pdgCode()) == kEta) {
634+
if (ggmother.isPhysicalPrimary()) {
635+
if ((std::abs(gggmother.pdgCode()) >= pdgCodeCharmMin && std::abs(gggmother.pdgCode()) < pdgCodeCharmMax) ||
636+
(std::abs(gggmother.pdgCode()) >= pdgCodeBeautyMin && std::abs(gggmother.pdgCode()) < pdgCodeBeautyMax)) {
637+
continue;
608638
}
639+
isEmbEta = true; // eta->pi0->gamma-> e
609640
}
610641
}
611642
}
612643
}
613-
}
614-
if (isEmbPi0 || isEmbEta) {
615-
registry.fill(HIST("hMcgenNonHfeElectron"), particleMc.pt());
616-
isNonHfe = true;
617-
if (isEmbPi0) {
644+
if (isEmbPi0 || isEmbEta) {
645+
registry.fill(HIST("hMcgenNonHfeElectron"), particleMc.pt());
646+
isNonHfe = true;
647+
if (isEmbPi0) {
618648

619-
registry.fill(HIST("hPi0eEmbTrkPt"), particleMc.pt());
620-
}
621-
if (isEmbEta) {
622-
registry.fill(HIST("hEtaeEmbTrkPt"), particleMc.pt());
649+
registry.fill(HIST("hPi0eEmbTrkPt"), particleMc.pt());
650+
}
651+
if (isEmbEta) {
652+
registry.fill(HIST("hEtaeEmbTrkPt"), particleMc.pt());
653+
}
623654
}
624655
}
656+
625657
hfGenElectronSel(mcCollision.globalIndex(), particleMc.globalIndex(), particleMc.eta(), particleMc.phi(), particleMc.pt(), isNonHfe);
626658
}
627659
}
628660
}
629661

630662
PROCESS_SWITCH(HfElectronSelectionWithTpcEmcal, processMcGen, "Process MC Gen mode", false);
631663
};
632-
633664
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
634665
{
635666
return WorkflowSpec{adaptAnalysisTask<HfElectronSelectionWithTpcEmcal>(cfgc)};

0 commit comments

Comments
 (0)