Skip to content

Commit ab3803e

Browse files
authored
[PWGUD] Add generator ID check to MC (#18149)
1 parent 9f8d90f commit ab3803e

1 file changed

Lines changed: 70 additions & 32 deletions

File tree

‎PWGUD/TableProducer/tauThreeProngEventTableProducer.cxx‎

Lines changed: 70 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ struct TauThreeProngEventTableProducer {
171171
// ConfigurableAxis minvAxis{"minvAxis", {100, 0.5, 5.0}, "M_{inv} (GeV/#it{c}^{2})"};
172172
// ConfigurableAxis phiAxis{"phiAxis", {120, 0., 3.2}, "#phi"};
173173
Configurable<bool> verbose{"verbose", {}, "Additional print outs"};
174+
Configurable<std::vector<int>> generatorIds{"generatorIds", std::vector<int>{31}, "MC generatorIds to process"};
174175

175176
// cut selection configurables
176177
// Configurable<float> zvertexcut{"zvertexcut", 10., "Z vertex cut"};
@@ -262,21 +263,22 @@ struct TauThreeProngEventTableProducer {
262263
registrySkim.add("skim/nTof", ";N_{TOFtrk};events", {HistType::kTH1F, {{10, -1., 9.}}});
263264
}
264265
if (doprocessMonteCarlo) {
265-
registrySkim.add("skim/efficiencyMC", ";efficiency;events", {HistType::kTH1D, {{15, 0., 15.}}});
266-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(1, "1: All");
267-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(2, "2: N^{#tau}=2");
268-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(3, "3: |y^{#tau}| <= 0.9");
269-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(4, "4: |#eta^{ch}|<0.9");
270-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(5, "5: 4 or 6 trk");
271-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(6, "e+3#pi");
272-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(7, "#mu+3#pi");
273-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(8, "#pi+3#pi");
274-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(9, "6#pi");
275-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(10, "rec");
276-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(11, "rec e+3#pi");
277-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(12, "rec #mu+3#pi");
278-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(13, "rec #pi+3#pi");
279-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(14, "rec 6#pi");
266+
registrySkim.add("skim/efficiencyMC", ";efficiency;events", {HistType::kTH1D, {{16, -1., 15.}}});
267+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(1, "All");
268+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(2, "GenID");
269+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(3, "N^{#tau}=2");
270+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(4, "|y^{#tau}| <= 0.9");
271+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(5, "|#eta^{ch}|<0.9");
272+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(6, "4 or 6 trk");
273+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(7, "e+3#pi");
274+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(8, "#mu+3#pi");
275+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(9, "#pi+3#pi");
276+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(10, "6#pi");
277+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(11, "rec");
278+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(12, "rec e+3#pi");
279+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(13, "rec #mu+3#pi");
280+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(14, "rec #pi+3#pi");
281+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(15, "rec 6#pi");
280282

281283
registrySkim.add("skim/problemMC", ";problem;events", {HistType::kTH1D, {{10, 0., 10.}}});
282284

@@ -294,23 +296,24 @@ struct TauThreeProngEventTableProducer {
294296
registrySkim.add("skim/daughterPtMC", ";p_{T}^{daughter};events", {HistType::kTH1F, {{100, 0, 5.0}}});
295297
}
296298
if (doprocessGenerated) {
297-
registrySkim.add("gen/efficiencyMC", ";efficiency;events", {HistType::kTH1D, {{15, 0., 15.}}});
299+
registrySkim.add("gen/efficiencyMC", ";efficiency;events", {HistType::kTH1D, {{16, -1., 15.}}});
298300
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(1, "All");
299-
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(2, "N^{#tau}=2");
300-
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(3, "|y^{#tau}| <=0.9");
301-
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(4, "|#eta^{ch}|<=0.9");
302-
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(5, "4 or 6 trk");
301+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(2, "GenID");
302+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(3, "N^{#tau}=2");
303+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(4, "|y^{#tau}| <=0.9");
304+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(5, "|#eta^{ch}|<=0.9");
305+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(6, "4 or 6 trk");
303306
// registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(6, "6: 4 trk");
304307
// registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(7, "7: 6 trk");
305-
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(6, "e+3#pi");
306-
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(7, "#mu+3#pi");
307-
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(8, "#pi+3#pi");
308-
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(9, "6#pi");
309-
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(10, "rec");
310-
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(11, "rec e+3#pi");
311-
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(12, "rec #mu+3#pi");
312-
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(13, "rec #pi+3#pi");
313-
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(14, "rec 6#pi");
308+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(7, "e+3#pi");
309+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(8, "#mu+3#pi");
310+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(9, "#pi+3#pi");
311+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(10, "6#pi");
312+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(11, "rec");
313+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(12, "rec e+3#pi");
314+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(13, "rec #mu+3#pi");
315+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(14, "rec #pi+3#pi");
316+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(15, "rec 6#pi");
314317

315318
registrySkim.add("gen/problemMC", ";problem;events", {HistType::kTH1D, {{10, 0., 10.}}});
316319
registrySkim.get<TH1>(HIST("gen/problemMC"))->GetXaxis()->SetBinLabel(1, "1: NoProblem");
@@ -1149,9 +1152,27 @@ struct TauThreeProngEventTableProducer {
11491152

11501153
// start loop over generated collisions
11511154
for (const auto& mccoll : mcCollisions) {
1155+
// all collisions
11521156
if (verbose)
11531157
LOGF(info, "-- McColl GID %d", mccoll.globalIndex());
1154-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->Fill(0., 1.); // all MC collisions
1158+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->Fill(-1., 1.); // all MC collisions
1159+
1160+
// check Generator ID, for taus(1+3,3+3): GenID=31,32,33,34,35
1161+
if (verbose) {
1162+
LOGF(info, "generatorId desired (0) %d, in MC %d", generatorIds->at(0), mccoll.generatorsID());
1163+
}
1164+
1165+
if (std::find(generatorIds->begin(), generatorIds->end(), mccoll.generatorsID()) != generatorIds->end()) {
1166+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->Fill(0., 1.); // GenID
1167+
if (verbose) {
1168+
LOGF(info, "Event with good generatorID %d", mccoll.generatorsID());
1169+
}
1170+
} else {
1171+
if (verbose) {
1172+
LOGF(info, "Event with bad generatorID %d", mccoll.generatorsID());
1173+
}
1174+
continue;
1175+
}
11551176

11561177
// set up default values per colission
11571178
trueTauX[0] = -999.;
@@ -1719,7 +1740,6 @@ struct TauThreeProngEventTableProducer {
17191740
PROCESS_SWITCH(TauThreeProngEventTableProducer, processMonteCarlo, "Iterate UD tables with simulated data created by SG-Candidate-Producer.", false);
17201741

17211742
// only MC information and what events are reconstructed
1722-
17231743
void processGenerated(aod::UDMcCollisions const& mcCollisions,
17241744
aod::UDMcParticles const& mcParticles,
17251745
FullMCSGUDCollisions const& collisions)
@@ -1750,9 +1770,27 @@ struct TauThreeProngEventTableProducer {
17501770

17511771
// start loop over generated collisions
17521772
for (const auto& mccoll : mcCollisions) {
1773+
// all collisions
17531774
if (verbose)
17541775
LOGF(info, "-- McColl GID %d", mccoll.globalIndex());
1755-
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->Fill(0., 1.); // all MC collisions
1776+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->Fill(-1., 1.); // all MC collisions
1777+
1778+
// check Generator ID, for taus(1+3,3+3): GenID=31,32,33,34,35
1779+
if (verbose) {
1780+
LOGF(info, "generatorId desired (0) %d, in MC %d", generatorIds->at(0), mccoll.generatorsID());
1781+
}
1782+
1783+
if (std::find(generatorIds->begin(), generatorIds->end(), mccoll.generatorsID()) != generatorIds->end()) {
1784+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->Fill(0., 1.); // GenID
1785+
if (verbose) {
1786+
LOGF(info, "Event with good generatorID %d", mccoll.generatorsID());
1787+
}
1788+
} else {
1789+
if (verbose) {
1790+
LOGF(info, "Event with bad generatorID %d", mccoll.generatorsID());
1791+
}
1792+
continue;
1793+
}
17561794

17571795
// set up default values per colission
17581796
trueTauX[0] = -999.;

0 commit comments

Comments
 (0)