@@ -52,6 +52,8 @@ DECLARE_SOA_COLUMN(BQuarkId, bQuarkId, int);
5252DECLARE_SOA_COLUMN (CQuarkId, cQuarkId, int );
5353DECLARE_SOA_COLUMN (BQuarkOriginId, bQuarkOriginId, int );
5454DECLARE_SOA_COLUMN (CQuarkOriginId, cQuarkOriginId, int );
55+ DECLARE_SOA_COLUMN (BQuarkRap, bQuarkRap, float );
56+ DECLARE_SOA_COLUMN (CQuarkRap, cQuarkRap, float );
5557} // namespace hftable
5658DECLARE_SOA_TABLE (HfTable, " AOD" , " HFTABLE" ,
5759 hftable::IsHF,
@@ -60,20 +62,46 @@ DECLARE_SOA_TABLE(HfTable, "AOD", "HFTABLE",
6062 hftable::BQuarkId,
6163 hftable::CQuarkId,
6264 hftable::BQuarkOriginId,
63- hftable::CQuarkOriginId);
65+ hftable::CQuarkOriginId,
66+ hftable::BQuarkRap,
67+ hftable::CQuarkRap);
6468} // namespace o2::aod
6569
66- const char * stageNames[3 ] = {" gen" , " eff" , " eff_and_acc" };
70+ const int Nstages = 3 ;
71+ const char * stageNames[Nstages] = {" gen" , " meas" , " meas_and_acc" };
72+ // gen: normal weights applied. By default set to 1.
73+ // meas: normal and efficiency weights applied. By default set to 1.
74+ // meas_acc: normal, efficiency weights and acceptance cuts applied
75+
76+ template <typename T>
77+ void doQuark (T& p, std::vector<std::shared_ptr<TH1>> hRapQuark, float ptMin, float etaMax, int pdg)
78+ {
79+ float weight[Nstages] = {p.weight (), p.efficiency () * p.weight (), p.efficiency () * p.weight ()};
80+ float pt[Nstages] = {p.pt (), p.ptSmeared (), p.ptSmeared ()};
81+ float eta[Nstages] = {p.eta (), p.etaSmeared (), p.etaSmeared ()};
82+ float cut_pt[Nstages] = {0 ., 0 ., ptMin};
83+ float cut_eta[Nstages] = {9999 ., 99999 ., etaMax};
84+ for (int i = 0 ; i < Nstages; i++) {
85+ if (pt[i] > cut_pt[i] && fabs (eta[i]) < cut_eta[i]) {
86+ if (pdg == 4 )
87+ hRapQuark[i]->Fill (p.cQuarkRap (), weight[i]);
88+ else if (pdg == 5 )
89+ hRapQuark[i]->Fill (p.bQuarkRap (), weight[i]);
90+ else
91+ hRapQuark[i]->Fill (999 ., weight[i]);
92+ }
93+ }
94+ }
6795
6896template <typename T>
6997void doSingle (T& p, std::vector<std::shared_ptr<TH1>> hEta, std::vector<std::shared_ptr<TH1>> hPt, std::vector<std::shared_ptr<TH2>> hPtEta, float ptMin, float etaMax)
7098{
71- float weight[3 ] = {p.weight (), p.efficiency () * p.weight (), p.efficiency () * p.weight ()};
72- float pt[3 ] = {p.pt (), p.ptSmeared (), p.ptSmeared ()};
73- float eta[3 ] = {p.eta (), p.etaSmeared (), p.etaSmeared ()};
74- float cut_pt[3 ] = {0 ., 0 ., ptMin};
75- float cut_eta[3 ] = {9999 ., 99999 ., etaMax};
76- for (int i = 0 ; i < 3 ; i++) {
99+ float weight[Nstages ] = {p.weight (), p.efficiency () * p.weight (), p.efficiency () * p.weight ()};
100+ float pt[Nstages ] = {p.pt (), p.ptSmeared (), p.ptSmeared ()};
101+ float eta[Nstages ] = {p.eta (), p.etaSmeared (), p.etaSmeared ()};
102+ float cut_pt[Nstages ] = {0 ., 0 ., ptMin};
103+ float cut_eta[Nstages ] = {9999 ., 99999 ., etaMax};
104+ for (int i = 0 ; i < Nstages ; i++) {
77105 if (pt[i] > cut_pt[i] && fabs (eta[i]) < cut_eta[i]) {
78106 hEta[i]->Fill (eta[i], weight[i]);
79107 hPt[i]->Fill (pt[i], weight[i]);
@@ -93,15 +121,15 @@ void doPair(T& p1, T& p2, std::vector<std::shared_ptr<TH1>> hMee, std::vector<st
93121 ROOT::Math::PtEtaPhiMVector v2_gen (p2.pt (), p2.eta (), p2.phi (), o2::constants::physics::MassElectron);
94122 ROOT::Math::PtEtaPhiMVector v12_gen = v1_gen + v2_gen;
95123
96- double mass[3 ] = {v12_gen.M (), v12.M (), v12.M ()};
97- double pt[3 ] = {v12_gen.Pt (), v12.Pt (), v12.Pt ()};
98- float pt1[3 ] = {p1.pt (), p1.ptSmeared (), p1.ptSmeared ()};
99- float pt2[3 ] = {p2.pt (), p2.ptSmeared (), p2.ptSmeared ()};
100- float eta1[3 ] = {p1.eta (), p1.etaSmeared (), p1.etaSmeared ()};
101- float eta2[3 ] = {p2.eta (), p2.etaSmeared (), p2.etaSmeared ()};
102- float weight[3 ] = {p1.weight () * p2.weight (), p1.efficiency () * p2.efficiency () * p1.weight () * p2.weight (), p1.efficiency () * p2.efficiency () * p1.weight () * p2.weight ()};
103- float cut_pt[3 ] = {0 ., 0 ., ptMin};
104- float cut_eta[3 ] = {9999 ., 99999 ., etaMax};
124+ double mass[Nstages ] = {v12_gen.M (), v12.M (), v12.M ()};
125+ double pt[Nstages ] = {v12_gen.Pt (), v12.Pt (), v12.Pt ()};
126+ float pt1[Nstages ] = {p1.pt (), p1.ptSmeared (), p1.ptSmeared ()};
127+ float pt2[Nstages ] = {p2.pt (), p2.ptSmeared (), p2.ptSmeared ()};
128+ float eta1[Nstages ] = {p1.eta (), p1.etaSmeared (), p1.etaSmeared ()};
129+ float eta2[Nstages ] = {p2.eta (), p2.etaSmeared (), p2.etaSmeared ()};
130+ float weight[Nstages ] = {p1.weight () * p2.weight (), p1.efficiency () * p2.efficiency () * p1.weight () * p2.weight (), p1.efficiency () * p2.efficiency () * p1.weight () * p2.weight ()};
131+ float cut_pt[Nstages ] = {0 ., 0 ., ptMin};
132+ float cut_eta[Nstages ] = {9999 ., 99999 ., etaMax};
105133
106134 float deta = v1.Eta () - v2.Eta ();
107135 float dphi = v1.Phi () - v2.Phi ();
@@ -110,7 +138,7 @@ void doPair(T& p1, T& p2, std::vector<std::shared_ptr<TH1>> hMee, std::vector<st
110138 return ;
111139 }
112140
113- for (int i = 0 ; i < 3 ; i++) {
141+ for (int i = 0 ; i < Nstages ; i++) {
114142 if (pt1[i] > cut_pt[i] && pt2[i] > cut_pt[i] && fabs (eta1[i]) < cut_eta[i] && fabs (eta2[i]) < cut_eta[i]) {
115143 hMee[i]->Fill (mass[i], weight[i]);
116144 hMeePtee[i]->Fill (mass[i], pt[i], weight[i]);
@@ -119,10 +147,11 @@ void doPair(T& p1, T& p2, std::vector<std::shared_ptr<TH1>> hMee, std::vector<st
119147}
120148
121149struct MyConfigs : ConfigurableGroup {
122- Configurable<float > fConfigPtMin {" cfgPtMin" , 0.2 , " min. pT" };
123- Configurable<float > fConfigEtaMax {" cfgEtaMax" , 0.8 , " max. |eta|" };
124- ConfigurableAxis fConfigPtBins {" cfgPtBins" , {200 , 0 .f , 10 .f }, " pT binning" };
125- ConfigurableAxis fConfigEtaBins {" cfgEtaBins" , {200 , -10 .f , 10 .f }, " eta binning" };
150+ Configurable<float > fConfigPtMin {" cfgPtMin" , 0.2 , " min. pT of single electrons" };
151+ Configurable<float > fConfigEtaMax {" cfgEtaMax" , 0.8 , " max. |eta| of single electrons" };
152+ ConfigurableAxis fConfigPtBins {" cfgPtBins" , {200 , 0 .f , 10 .f }, " single electron pT binning" };
153+ ConfigurableAxis fConfigEtaBins {" cfgEtaBins" , {200 , -10 .f , 10 .f }, " single electron eta binning" };
154+ ConfigurableAxis fConfigRapBins {" cfgRapBins" , {200 , -10 .f , 10 .f }, " Quark rapidity binning" };
126155 ConfigurableAxis fConfigMeeBins {" cfgMeeBins" , {800 , 0 .f , 8 .f }, " Mee binning" };
127156 ConfigurableAxis fConfigPteeBins {" cfgPteeBins" , {400 , 0 .f , 10 .f }, " pTee binning" };
128157 Configurable<bool > fConfigApplyDEtaDPhi {" cfgApplyDEtaDPhi" , false , " flag to apply deta-phi cut" };
@@ -138,7 +167,7 @@ struct lmeehfcocktailprefilter {
138167 for (auto const & p : mcParticles) {
139168
140169 if (abs (p.pdgCode ()) != 11 || o2::mcgenstatus::getHepMCStatusCode (p.statusCode ()) != 1 || !p.has_mothers ()) {
141- hfTable (EFromHFType::kNoE , -1 , -1 , -1 , -1 , -1 , -1 );
170+ hfTable (EFromHFType::kNoE , -1 , -1 , -1 , -1 , -1 , -1 , - 999 ., - 999 . );
142171 continue ;
143172 }
144173
@@ -159,6 +188,9 @@ struct lmeehfcocktailprefilter {
159188 int cQuarkOriginId = -1 ;
160189 int bQuarkOriginId = -1 ;
161190
191+ float bQuarkRap = -999 .;
192+ float cQuarkRap = -999 .;
193+
162194 int isHF = EFromHFType::kNoHFE ;
163195
164196 if (direct_beauty_mother) { // b->e
@@ -168,6 +200,7 @@ struct lmeehfcocktailprefilter {
168200 if (bQuarkId > -1 ) {
169201 auto bQuark = mcParticles.iteratorAt (bQuarkId);
170202 bQuarkOriginId = searchMothers (bQuark, mcParticles, 5 , false );
203+ bQuarkRap = bQuark.y ();
171204 }
172205 } else if (bHadronId > -1 && direct_charm_mother) { // b->c->e
173206 isHF = EFromHFType::kBCE ;
@@ -176,12 +209,14 @@ struct lmeehfcocktailprefilter {
176209 if (bQuarkId > -1 ) {
177210 auto bQuark = mcParticles.iteratorAt (bQuarkId);
178211 bQuarkOriginId = searchMothers (bQuark, mcParticles, 5 , false );
212+ bQuarkRap = bQuark.y ();
179213 }
180214 auto cHadron = mcParticles.iteratorAt (cHadronId);
181215 cQuarkId = searchMothers (cHadron, mcParticles, 4 , true );
182216 if (cQuarkId > -1 ) {
183217 auto cQuark = mcParticles.iteratorAt (cQuarkId);
184218 cQuarkOriginId = searchMothers (cQuark, mcParticles, 4 , false );
219+ cQuarkRap = cQuark.y ();
185220 }
186221 } else if (bHadronId < 0 && direct_charm_mother) { // c->e
187222 isHF = EFromHFType::kCE ;
@@ -190,10 +225,11 @@ struct lmeehfcocktailprefilter {
190225 if (cQuarkId > -1 ) {
191226 auto cQuark = mcParticles.iteratorAt (cQuarkId);
192227 cQuarkOriginId = searchMothers (cQuark, mcParticles, 4 , false );
228+ cQuarkRap = cQuark.y ();
193229 }
194230 }
195231
196- hfTable (isHF, bHadronId, cHadronId, bQuarkId, cQuarkId, bQuarkOriginId, cQuarkOriginId);
232+ hfTable (isHF, bHadronId, cHadronId, bQuarkId, cQuarkId, bQuarkOriginId, cQuarkOriginId, bQuarkRap, cQuarkRap );
197233 }
198234 }
199235};
@@ -202,6 +238,7 @@ struct lmeehfcocktailbeauty {
202238
203239 HistogramRegistry registry{" registry" , {}};
204240
241+ std::vector<std::vector<std::shared_ptr<TH1>>> hRapQuark;
205242 std::vector<std::vector<std::shared_ptr<TH1>>> hEta, hPt;
206243 std::vector<std::vector<std::shared_ptr<TH2>>> hPtEta;
207244 std::vector<std::shared_ptr<TH1>> hLS_Mee, hULS_Mee;
@@ -224,22 +261,33 @@ struct lmeehfcocktailbeauty {
224261 {
225262 registry.add <TH1>(" NEvents" , " NEvents" , HistType::kTH1F , {{1 , 0 , 1 }}, false );
226263
227- const char * typeNamesSingle[2 ] = {" be" , " bce" };
228- const char * typeTitlesSingle[2 ] = {" b->e" , " b->c->e" };
264+ const int Nchannels = 2 ;
265+ const char * typeNamesSingle[Nchannels] = {" be" , " bce" };
266+ const char * typeTitlesSingle[Nchannels] = {" b->e" , " b->c->e" };
229267
230- AxisSpec eta_axis = {myConfigs.fConfigEtaBins , " #eta" };
231- AxisSpec pt_axis = {myConfigs.fConfigPtBins , " #it{p}_{T} (GeV/c)" };
268+ AxisSpec rap_axis = {myConfigs.fConfigRapBins , " y_{b}" };
269+ AxisSpec eta_axis = {myConfigs.fConfigEtaBins , " #eta_{e}" };
270+ AxisSpec pt_axis = {myConfigs.fConfigPtBins , " #it{p}_{T,e} (GeV/c)" };
232271 AxisSpec mass_axis = {myConfigs.fConfigMeeBins , " m_{ee} (GeV/c^{2})" };
233272 AxisSpec ptee_axis = {myConfigs.fConfigPteeBins , " #it{p}_{T,ee} (GeV/c)" };
234273
274+ // quark histograms
275+ for (int i = 0 ; i < Nchannels; i++) {
276+ std::vector<std::shared_ptr<TH1>> hRap_temp;
277+ for (int j = 0 ; j < Nstages; j++) {
278+ hRap_temp.push_back (registry.add <TH1>(Form (" BeautyQuark_Rap_%s_%s" , typeNamesSingle[i], stageNames[j]), Form (" Rap Beauty Quark %s %s" , typeTitlesSingle[i], stageNames[j]), HistType::kTH1F , {rap_axis}, true ));
279+ }
280+ hRapQuark.push_back (hRap_temp);
281+ }
282+
235283 // single histograms
236- for (int i = 0 ; i < 2 ; i++) {
284+ for (int i = 0 ; i < Nchannels ; i++) {
237285 std::vector<std::shared_ptr<TH1>> hEta_temp, hPt_temp;
238286 std::vector<std::shared_ptr<TH2>> hPtEta_temp;
239- for (int j = 0 ; j < 3 ; j++) {
240- hEta_temp.push_back (registry.add <TH1>(Form (" Eta_ %s_%s" , typeNamesSingle[i], stageNames[j]), Form (" Eta %s %s" , typeTitlesSingle[i], stageNames[j]), HistType::kTH1F , {eta_axis}, true ));
241- hPt_temp.push_back (registry.add <TH1>(Form (" Pt_ %s_%s" , typeNamesSingle[i], stageNames[j]), Form (" Pt %s %s" , typeTitlesSingle[i], stageNames[j]), HistType::kTH1F , {pt_axis}, true ));
242- hPtEta_temp.push_back (registry.add <TH2>(Form (" PtEta_ %s_%s" , typeNamesSingle[i], stageNames[j]), Form (" Pt vs. Eta %s %s" , typeTitlesSingle[i], stageNames[j]), HistType::kTH2F , {pt_axis, eta_axis}, true ));
287+ for (int j = 0 ; j < Nstages ; j++) {
288+ hEta_temp.push_back (registry.add <TH1>(Form (" Electron_Eta_ %s_%s" , typeNamesSingle[i], stageNames[j]), Form (" Single Electron Eta %s %s" , typeTitlesSingle[i], stageNames[j]), HistType::kTH1F , {eta_axis}, true ));
289+ hPt_temp.push_back (registry.add <TH1>(Form (" Electron_Pt_ %s_%s" , typeNamesSingle[i], stageNames[j]), Form (" Single Electron Pt %s %s" , typeTitlesSingle[i], stageNames[j]), HistType::kTH1F , {pt_axis}, true ));
290+ hPtEta_temp.push_back (registry.add <TH2>(Form (" Electron_PtEta_ %s_%s" , typeNamesSingle[i], stageNames[j]), Form (" Single Electron Pt vs. Eta %s %s" , typeTitlesSingle[i], stageNames[j]), HistType::kTH2F , {pt_axis, eta_axis}, true ));
243291 }
244292 hEta.push_back (hEta_temp);
245293 hPt.push_back (hPt_temp);
@@ -248,15 +296,15 @@ struct lmeehfcocktailbeauty {
248296
249297 // pair histograms
250298 // ULS
251- for (int j = 0 ; j < 3 ; j++) {
299+ for (int j = 0 ; j < Nstages ; j++) {
252300 hULS_Mee.push_back (registry.add <TH1>(Form (" ULS_Mee_%s" , stageNames[j]), Form (" ULS Mee %s" , stageNames[j]), HistType::kTH1F , {mass_axis}, true ));
253301 hULS_MeePtee.push_back (registry.add <TH2>(Form (" ULS_MeePtee_%s" , stageNames[j]), Form (" ULS Mee vs. Ptee %s" , stageNames[j]), HistType::kTH2F , {mass_axis, ptee_axis}, true ));
254302
255303 hULS_Mee_wPartonicCheck.push_back (registry.add <TH1>(Form (" ULS_Mee_wPartonicCheck_%s" , stageNames[j]), Form (" ULS Mee wPartonicCheck %s" , stageNames[j]), HistType::kTH1F , {mass_axis}, true ));
256304 hULS_MeePtee_wPartonicCheck.push_back (registry.add <TH2>(Form (" ULS_MeePtee_wPartonicCheck_%s" , stageNames[j]), Form (" ULS Mee vs. Ptee wPartonicCheck %s" , stageNames[j]), HistType::kTH2F , {mass_axis, ptee_axis}, true ));
257305 }
258306 // LS
259- for (int j = 0 ; j < 3 ; j++) {
307+ for (int j = 0 ; j < Nstages ; j++) {
260308 hLS_Mee.push_back (registry.add <TH1>(Form (" LS_Mee_%s" , stageNames[j]), Form (" LS Mee %s" , stageNames[j]), HistType::kTH1F , {mass_axis}, true ));
261309 hLS_MeePtee.push_back (registry.add <TH2>(Form (" LS_MeePtee_%s" , stageNames[j]), Form (" LS Mee vs. Ptee %s" , stageNames[j]), HistType::kTH2F , {mass_axis, ptee_axis}, true ));
262310
@@ -270,6 +318,7 @@ struct lmeehfcocktailbeauty {
270318 for (auto const & p : mcParticles) {
271319 int from_quark = p.isHF () - 2 ;
272320 doSingle (p, hEta[from_quark], hPt[from_quark], hPtEta[from_quark], myConfigs.fConfigPtMin , myConfigs.fConfigEtaMax );
321+ doQuark (p, hRapQuark[from_quark], myConfigs.fConfigPtMin , myConfigs.fConfigEtaMax , 5 );
273322 }
274323
275324 for (auto const & collision : collisions) {
@@ -332,6 +381,7 @@ struct lmeehfcocktailcharm {
332381
333382 HistogramRegistry registry{" registry" , {}};
334383
384+ std::vector<std::shared_ptr<TH1>> hRapQuark;
335385 std::vector<std::shared_ptr<TH1>> hEta, hPt, hULS_Mee, hLS_Mee;
336386 std::vector<std::shared_ptr<TH2>> hPtEta, hULS_MeePtee, hLS_MeePtee;
337387 std::vector<std::shared_ptr<TH1>> hULS_Mee_wPartonicCheck, hLS_Mee_wPartonicCheck;
@@ -354,29 +404,35 @@ struct lmeehfcocktailcharm {
354404 const char * typeNamesSingle = " ce" ;
355405 const char * typeTitlesSingle = " c->e" ;
356406
357- AxisSpec eta_axis = {myConfigs.fConfigEtaBins , " #eta" };
358- AxisSpec pt_axis = {myConfigs.fConfigPtBins , " #it{p}_{T} (GeV/c)" };
407+ AxisSpec rap_axis = {myConfigs.fConfigRapBins , " y_{c}" };
408+ AxisSpec eta_axis = {myConfigs.fConfigEtaBins , " #eta_{e}" };
409+ AxisSpec pt_axis = {myConfigs.fConfigPtBins , " #it{p}_{T,e} (GeV/c)" };
359410 AxisSpec mass_axis = {myConfigs.fConfigMeeBins , " m_{ee} (GeV/c^{2})" };
360411 AxisSpec ptee_axis = {myConfigs.fConfigPteeBins , " #it{p}_{T,ee} (GeV/c)" };
361412
413+ // quark histograms
414+ for (int j = 0 ; j < Nstages; j++) {
415+ hRapQuark.push_back (registry.add <TH1>(Form (" CharmQuark_Rap_%s_%s" , typeNamesSingle, stageNames[j]), Form (" Rapidity Charm Quark %s %s" , typeTitlesSingle, stageNames[j]), HistType::kTH1F , {rap_axis}, true ));
416+ }
417+
362418 // single histograms
363- for (int j = 0 ; j < 3 ; j++) {
364- hEta.push_back (registry.add <TH1>(Form (" Eta_ %s_%s" , typeNamesSingle, stageNames[j]), Form (" Eta %s %s" , typeTitlesSingle, stageNames[j]), HistType::kTH1F , {eta_axis}, true ));
365- hPt.push_back (registry.add <TH1>(Form (" Pt_ %s_%s" , typeNamesSingle, stageNames[j]), Form (" Pt %s %s" , typeTitlesSingle, stageNames[j]), HistType::kTH1F , {pt_axis}, true ));
366- hPtEta.push_back (registry.add <TH2>(Form (" PtEta_ %s_%s" , typeNamesSingle, stageNames[j]), Form (" Pt vs. Eta %s %s" , typeTitlesSingle, stageNames[j]), HistType::kTH2F , {pt_axis, eta_axis}, true ));
419+ for (int j = 0 ; j < Nstages ; j++) {
420+ hEta.push_back (registry.add <TH1>(Form (" Electron_Eta_ %s_%s" , typeNamesSingle, stageNames[j]), Form (" Single Electron Eta %s %s" , typeTitlesSingle, stageNames[j]), HistType::kTH1F , {eta_axis}, true ));
421+ hPt.push_back (registry.add <TH1>(Form (" Electron_Pt_ %s_%s" , typeNamesSingle, stageNames[j]), Form (" Single Electron Pt %s %s" , typeTitlesSingle, stageNames[j]), HistType::kTH1F , {pt_axis}, true ));
422+ hPtEta.push_back (registry.add <TH2>(Form (" Electron_PtEta_ %s_%s" , typeNamesSingle, stageNames[j]), Form (" Single Electron Pt vs. Eta %s %s" , typeTitlesSingle, stageNames[j]), HistType::kTH2F , {pt_axis, eta_axis}, true ));
367423 }
368424
369425 // pair histograms
370426 // ULS
371- for (int j = 0 ; j < 3 ; j++) {
427+ for (int j = 0 ; j < Nstages ; j++) {
372428 hULS_Mee.push_back (registry.add <TH1>(Form (" ULS_Mee_%s" , stageNames[j]), Form (" ULS Mee %s" , stageNames[j]), HistType::kTH1F , {mass_axis}, true ));
373429 hULS_MeePtee.push_back (registry.add <TH2>(Form (" ULS_MeePtee_%s" , stageNames[j]), Form (" ULS Mee vs Ptee %s" , stageNames[j]), HistType::kTH2F , {mass_axis, ptee_axis}, true ));
374430
375431 hULS_Mee_wPartonicCheck.push_back (registry.add <TH1>(Form (" ULS_Mee_wPartonicCheck_%s" , stageNames[j]), Form (" ULS Mee wPartonicCheck %s" , stageNames[j]), HistType::kTH1F , {mass_axis}, true ));
376432 hULS_MeePtee_wPartonicCheck.push_back (registry.add <TH2>(Form (" ULS_MeePtee_wPartonicCheck_%s" , stageNames[j]), Form (" ULS Mee vs Ptee wPartonicCheck %s" , stageNames[j]), HistType::kTH2F , {mass_axis, ptee_axis}, true ));
377433 }
378434 // LS
379- for (int j = 0 ; j < 3 ; j++) {
435+ for (int j = 0 ; j < Nstages ; j++) {
380436 hLS_Mee.push_back (registry.add <TH1>(Form (" LS_Mee_%s" , stageNames[j]), Form (" LS Mee %s" , stageNames[j]), HistType::kTH1F , {mass_axis}, true ));
381437 hLS_MeePtee.push_back (registry.add <TH2>(Form (" LS_MeePtee_%s" , stageNames[j]), Form (" LS Mee vs Ptee %s" , stageNames[j]), HistType::kTH2F , {mass_axis, ptee_axis}, true ));
382438
@@ -389,6 +445,7 @@ struct lmeehfcocktailcharm {
389445 {
390446 for (auto const & p : mcParticles) {
391447 doSingle (p, hEta, hPt, hPtEta, myConfigs.fConfigPtMin , myConfigs.fConfigEtaMax );
448+ doQuark (p, hRapQuark, myConfigs.fConfigPtMin , myConfigs.fConfigEtaMax , 4 );
392449 }
393450
394451 for (auto const & collision : collisions) {
0 commit comments