Skip to content

Commit 53666fa

Browse files
committed
fix bug in dqefficiency_withassoc, and redefined some signal
1 parent d985c30 commit 53666fa

File tree

5 files changed

+172
-69
lines changed

5 files changed

+172
-69
lines changed

PWGDQ/Core/CutsLibrary.cxx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4304,6 +4304,22 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
43044304
// -----------------------------------------------
43054305
// Barrel track quality cuts
43064306

4307+
// ---------------------------------------------------
4308+
// MC generated particle acceptance cuts
4309+
4310+
if (!nameStr.compare("rapidity08")) {
4311+
cut->AddCut(VarManager::kMCY, -0.8, 0.8);
4312+
return cut;
4313+
}
4314+
4315+
if (!nameStr.compare("rapidity09")) {
4316+
cut->AddCut(VarManager::kMCY, -0.9, 0.9);
4317+
return cut;
4318+
}
4319+
4320+
// ---------------------------------------------------
4321+
// MC generated particle acceptance cuts
4322+
43074323
// Run 2 only
43084324

43094325
if (!nameStr.compare("highPtHadron")) {

PWGDQ/Core/HistogramsLibrary.cxx

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -916,23 +916,22 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
916916
hm->AddHistogram(histClass, "Rapidity", "", false, 400, -4.0, 4.0, VarManager::kRap);
917917
}
918918
if (!groupStr.CompareTo("mctruth_pair")) {
919-
hm->AddHistogram(histClass, "Mass_Pt", "", false, 500, 0.0, 15.0, VarManager::kMass, 40, 0.0, 20.0, VarManager::kPt);
920-
hm->AddHistogram(histClass, "Pt", "", false, 200, 0.0, 20.0, VarManager::kPt);
919+
hm->AddHistogram(histClass, "Mass_Pt", "", false, 500, 0.0, 15.0, VarManager::kMCMass, 40, 0.0, 20.0, VarManager::kMCPt);
920+
hm->AddHistogram(histClass, "Pt", "", false, 200, 0.0, 20.0, VarManager::kMCPt);
921921
hm->AddHistogram(histClass, "Pt_Dilepton", "", false, 200, 0.0, 20.0, VarManager::kPairPtDau);
922-
hm->AddHistogram(histClass, "Eta_Pt_lepton1", "", false, 100, -2.0, 2.0, VarManager::kEta1, 200, 0.0, 20.0, VarManager::kPt1);
923-
hm->AddHistogram(histClass, "Eta_Pt_lepton2", "", false, 100, -2.0, 2.0, VarManager::kEta2, 200, 0.0, 20.0, VarManager::kPt2);
924-
hm->AddHistogram(histClass, "Mass", "", false, 500, 0.0, 15.0, VarManager::kMass);
925-
hm->AddHistogram(histClass, "Eta_Pt", "", false, 40, -2.0, 2.0, VarManager::kEta, 200, 0.0, 20.0, VarManager::kPt);
926-
hm->AddHistogram(histClass, "Phi_Eta", "#phi vs #eta distribution", false, 200, -5.0, 5.0, VarManager::kEta, 200, -2. * o2::constants::math::PI, 2. * o2::constants::math::PI, VarManager::kPhi);
927-
int varspTHE[3] = {VarManager::kMCPt, VarManager::kMCCosThetaHE, VarManager::kMCPhiHE};
928-
int varspTCS[3] = {VarManager::kMCPt, VarManager::kMCCosThetaCS, VarManager::kMCPhiCS};
929-
int varspTPP[3] = {VarManager::kMCPt, VarManager::kMCCosThetaPP, VarManager::kMCPhiPP};
930-
int binspT[3] = {40, 20, 20};
931-
double xminpT[3] = {0., -1., -3.14};
932-
double xmaxpT[3] = {20., 1., +3.14};
933-
hm->AddHistogram(histClass, "Pt_cosThetaHE_phiHE", "", 3, varspTHE, binspT, xminpT, xmaxpT, 0, -1, kFALSE);
934-
hm->AddHistogram(histClass, "Pt_cosThetaCS_phiCS", "", 3, varspTCS, binspT, xminpT, xmaxpT, 0, -1, kFALSE);
935-
hm->AddHistogram(histClass, "Pt_cosThetaPP_phiPP", "", 3, varspTPP, binspT, xminpT, xmaxpT, 0, -1, kFALSE);
922+
hm->AddHistogram(histClass, "Mass", "", false, 500, 0.0, 15.0, VarManager::kMCMass);
923+
hm->AddHistogram(histClass, "Rapidity", "", false, 100, -5.0, 5.0, VarManager::kMCY);
924+
hm->AddHistogram(histClass, "Eta_Pt", "", false, 40, -2.0, 2.0, VarManager::kMCEta, 200, 0.0, 20.0, VarManager::kMCPt);
925+
hm->AddHistogram(histClass, "Phi_Eta", "#phi vs #eta distribution", false, 200, -5.0, 5.0, VarManager::kMCEta, 200, -2. * o2::constants::math::PI, 2. * o2::constants::math::PI, VarManager::kMCPhi);
926+
if (subGroupStr.Contains("polarization")) {
927+
int varspTHE[4] = {VarManager::kMCPt, VarManager::kMCCosThetaHE, VarManager::kMCPhiHE, VarManager::kMCPhiTildeHE};
928+
int varspTCS[4] = {VarManager::kMCPt, VarManager::kMCCosThetaCS, VarManager::kMCPhiCS, VarManager::kMCPhiTildeCS};
929+
int bins[4] = {20, 20, 20, 20};
930+
double xmin[4] = {0., -1., 0., 0.};
931+
double xmax[4] = {20., 1., 2. * o2::constants::math::PI, 2. * o2::constants::math::PI};
932+
hm->AddHistogram(histClass, "Pt_cosThetaHE_phiHE_phiTildeHE", "", 4, varspTHE, bins, xmin, xmax, 0, -1, kFALSE);
933+
hm->AddHistogram(histClass, "Pt_cosThetaCS_phiCS_phiTildeCS", "", 4, varspTCS, bins, xmin, xmax, 0, -1, kFALSE);
934+
}
936935
}
937936
if (!groupStr.CompareTo("mctruth_quad")) {
938937
hm->AddHistogram(histClass, "hMass_defaultDileptonMass", "", false, 1000, 3.0, 5.0, VarManager::kQuadDefaultDileptonMass);
@@ -1027,31 +1026,21 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
10271026
}
10281027
if (subGroupStr.Contains("polarization")) {
10291028
if (subGroupStr.Contains("helicity")) {
1030-
hm->AddHistogram(histClass, "cosThetaHE", "", false, 100, -1., 1., VarManager::kCosThetaHE);
1031-
hm->AddHistogram(histClass, "phiHE", "", false, 100, 0, 2 * o2::constants::math::PI, VarManager::kPhiHE);
1032-
hm->AddHistogram(histClass, "phitildeHE", "", false, 100, 0, 2 * o2::constants::math::PI, VarManager::kPhiTildeHE);
10331029
hm->AddHistogram(histClass, "Mass_Pt_CosThetaHE", "", false, 100, 1.0, 5.0, VarManager::kMass, 40, 0.0, 20.0, VarManager::kPt, 20, -1., 1., VarManager::kCosThetaHE);
10341030
hm->AddHistogram(histClass, "Mass_Pt_PhiHE", "", false, 100, 1.0, 5.0, VarManager::kMass, 40, 0.0, 20.0, VarManager::kPt, 20, 0., 2 * o2::constants::math::PI, VarManager::kPhiHE);
10351031
hm->AddHistogram(histClass, "Mass_Pt_PhiTildeHE", "", false, 100, 1.0, 5.0, VarManager::kMass, 40, 0.0, 20.0, VarManager::kPt, 20, 0., 2 * o2::constants::math::PI, VarManager::kPhiTildeHE);
10361032
}
10371033
if (subGroupStr.Contains("collins-soper")) {
1038-
hm->AddHistogram(histClass, "cosThetaCS", "", false, 100, -1., 1., VarManager::kCosThetaCS);
1039-
hm->AddHistogram(histClass, "phiCS", "", false, 100, 0, 2 * o2::constants::math::PI, VarManager::kPhiCS);
1040-
hm->AddHistogram(histClass, "phitildeCS", "", false, 100, 0, 2 * o2::constants::math::PI, VarManager::kPhiTildeCS);
10411034
hm->AddHistogram(histClass, "Mass_Pt_CosThetaCS", "", false, 100, 1.0, 5.0, VarManager::kMass, 40, 0.0, 20.0, VarManager::kPt, 20, -1., 1., VarManager::kCosThetaCS);
10421035
hm->AddHistogram(histClass, "Mass_Pt_PhiCS", "", false, 100, 1.0, 5.0, VarManager::kMass, 40, 0.0, 20.0, VarManager::kPt, 20, 0., 2 * o2::constants::math::PI, VarManager::kPhiCS);
10431036
hm->AddHistogram(histClass, "Mass_Pt_PhiTildeCS", "", false, 100, 1.0, 5.0, VarManager::kMass, 40, 0.0, 20.0, VarManager::kPt, 20, 0., 2 * o2::constants::math::PI, VarManager::kPhiTildeCS);
10441037
}
10451038
if (subGroupStr.Contains("production")) {
1046-
hm->AddHistogram(histClass, "cosThetaPP", "", false, 100, -1., 1., VarManager::kCosThetaPP);
1047-
hm->AddHistogram(histClass, "phiPP", "", false, 100, 0, 2 * o2::constants::math::PI, VarManager::kPhiPP);
1048-
hm->AddHistogram(histClass, "phitildePP", "", false, 100, 0, 2 * o2::constants::math::PI, VarManager::kPhiTildePP);
10491039
hm->AddHistogram(histClass, "Mass_Pt_CosThetaPP", "", false, 100, 1.0, 5.0, VarManager::kMass, 40, 0.0, 20.0, VarManager::kPt, 20, -1., 1., VarManager::kCosThetaPP);
10501040
hm->AddHistogram(histClass, "Mass_Pt_PhiPP", "", false, 100, 1.0, 5.0, VarManager::kMass, 40, 0.0, 20.0, VarManager::kPt, 20, 0., 2 * o2::constants::math::PI, VarManager::kPhiPP);
10511041
hm->AddHistogram(histClass, "Mass_Pt_PhiTildePP", "", false, 100, 1.0, 5.0, VarManager::kMass, 40, 0.0, 20.0, VarManager::kPt, 20, 0., 2 * o2::constants::math::PI, VarManager::kPhiTildePP);
10521042
}
10531043
if (subGroupStr.Contains("random")) {
1054-
hm->AddHistogram(histClass, "cosThetaRM", "", false, 100, -1., 1., VarManager::kCosThetaRM);
10551044
hm->AddHistogram(histClass, "Mass_Pt_CosThetaRM", "", false, 200, 1.0, 5.0, VarManager::kMass, 40, 0.0, 20.0, VarManager::kPt, 20, -1., 1., VarManager::kCosThetaRM);
10561045
}
10571046
}

PWGDQ/Core/MCSignalLibrary.cxx

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,12 @@ MCSignal* o2::aod::dqmcsignals::GetMCSignal(const char* name)
152152
signal = new MCSignal(name, "Electrons from prompt jpsi decays", {prong}, {-1});
153153
return signal;
154154
}
155+
if (!nameStr.compare("ePrimaryFromNonpromptJpsi")) {
156+
MCProng prong(2, {11, 443}, {true, true}, {false, false}, {0, 0}, {0, 0}, {false, false}, false, {503}, {false});
157+
prong.SetSourceBit(0, MCProng::kPhysicalPrimary);
158+
signal = new MCSignal(name, "Electrons from non-prompt jpsi decays with beauty in decay chain", {prong}, {-1});
159+
return signal;
160+
}
155161
if (!nameStr.compare("Jpsi")) {
156162
MCProng prong(1, {443}, {true}, {false}, {0}, {0}, {false});
157163
signal = new MCSignal(name, "Inclusive jpsi", {prong}, {-1});
@@ -174,16 +180,32 @@ MCSignal* o2::aod::dqmcsignals::GetMCSignal(const char* name)
174180
signal = new MCSignal(name, "Helium3FromTransport", {prong}, {-1});
175181
return signal;
176182
}
183+
if (!nameStr.compare("promptJpsi")) {
184+
MCProng prong(1, {443}, {true}, {false}, {0}, {0}, {false}, false, {503}, {true});
185+
signal = new MCSignal(name, "Prompt jpsi (not from beauty)", {prong}, {-1});
186+
return signal;
187+
}
177188
if (!nameStr.compare("nonPromptJpsi")) {
189+
MCProng prong(1, {443}, {true}, {false}, {0}, {0}, {false}, false, {503}, {false});
190+
signal = new MCSignal(name, "Non-prompt jpsi (from beauty)", {prong}, {-1});
191+
return signal;
192+
}
193+
if (!nameStr.compare("nonPromptJpsiFromBeauty")) {
178194
MCProng prong(2, {443, 503}, {true, true}, {false, false}, {0, 0}, {0, 0}, {false, false});
179-
signal = new MCSignal(name, "Non-prompt jpsi", {prong}, {-1});
195+
signal = new MCSignal(name, "Non-prompt jpsi directly from beauty", {prong}, {-1});
180196
return signal;
181197
}
182-
if (!nameStr.compare("promptJpsi")) {
183-
MCProng prong(1, {443}, {true}, {false}, {0}, {0}, {false}, false, {503}, {true});
184-
signal = new MCSignal(name, "Prompt jpsi (not from beauty)", {prong}, {-1});
198+
if (!nameStr.compare("nonPromptJpsiNotDirectlyFromBeauty")) {
199+
MCProng prong(2, {443, 503}, {true, true}, {false, true}, {0, 0}, {0, 0}, {false, false}, false, {503}, {false});
200+
signal = new MCSignal(name, "Non-prompt jpsi from other but with beauty in decay chain", {prong}, {-1});
185201
return signal;
186202
}
203+
if (!nameStr.compare("AnythingDecayToJpsi")) {
204+
MCProng prong(2, {MCProng::kPDGCodeNotAssigned, 443}, {true, true}, {false, false}, {0, 0}, {0, 0}, {false, false});
205+
prong.SetSignalInTime(true);
206+
signal = new MCSignal(name, "Decay of anything into J/psi", {prong}, {-1});
207+
return signal;
208+
}
187209
if (!nameStr.compare("eeFromNonpromptPsi2S")) {
188210
MCProng prong(2, {11, 100443}, {true, true}, {false, false}, {0, 0}, {0, 0}, {false, false}, false, {503}, {false});
189211
signal = new MCSignal(name, "ee pairs from non-prompt psi2s decays", {prong, prong}, {1, 1}); // signal at pair level

PWGDQ/TableProducer/tableMakerMC_withAssoc.cxx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1216,10 +1216,6 @@ struct TableMakerMC {
12161216
eventMC.reserve(mcCollisions.size());
12171217
skimMCCollisions<TEventMcFillMap>(mcCollisions);
12181218

1219-
// select MC particles to be written using the specified MC signals
1220-
// NOTE: tables are not written at this point, only label maps are being created
1221-
skimMCParticles<TEventMcFillMap>(mcParticles, mcCollisions);
1222-
12231219
// skim collisions
12241220
event.reserve(collisions.size());
12251221
eventExtended.reserve(collisions.size());
@@ -1231,6 +1227,12 @@ struct TableMakerMC {
12311227
return;
12321228
}
12331229

1230+
// select MC particles to be written using the specified MC signals
1231+
// NOTE: tables are not written at this point, only label maps are being created
1232+
// Only skim MC particles when the MC collision is reconstructed
1233+
// Because in the first five DFs of each run, the MC collisions are not reconstructed
1234+
skimMCParticles<TEventMcFillMap>(mcParticles, mcCollisions);
1235+
12341236
// Clear index map and reserve memory for barrel tables
12351237
if constexpr (static_cast<bool>(TTrackFillMap)) {
12361238
fTrackIndexMap.clear();

0 commit comments

Comments
 (0)