@@ -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