Skip to content

Commit 7f62c07

Browse files
authored
Analysis/PWGDQ: update dileptonEE and VarManager (#5352)
* Analysis/PWGDQ: add TPC cls CR in VarManager.h * Analysis/Task/PWGDQ: update dileptonEE for different PID cuts
1 parent 99b7941 commit 7f62c07

File tree

5 files changed

+369
-207
lines changed

5 files changed

+369
-207
lines changed

Analysis/PWGDQ/include/PWGDQCore/CutsLibrary.h

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,62 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
5757
return cut;
5858
}
5959

60+
if (!nameStr.compare("lmeePID_TPChadrejTOFrec")) {
61+
cut->AddCut(GetAnalysisCut("lmeeStandardKine"));
62+
cut->AddCut(GetAnalysisCut("TightGlobalTrack"));
63+
cut->AddCut(GetAnalysisCut("standardPrimaryTrack"));
64+
65+
AnalysisCompositeCut* cut_tpc_hadrej = new AnalysisCompositeCut("pid_TPChadrej", "pid_TPChadrej", kTRUE);
66+
cut_tpc_hadrej->AddCut(GetAnalysisCut("tpc_electron"));
67+
cut_tpc_hadrej->AddCut(GetAnalysisCut("tpc_pion_rejection"));
68+
cut_tpc_hadrej->AddCut(GetAnalysisCut("tpc_kaon_rejection"));
69+
cut_tpc_hadrej->AddCut(GetAnalysisCut("tpc_proton_rejection"));
70+
71+
AnalysisCompositeCut* cut_tof_rec = new AnalysisCompositeCut("pid_tof_rec", "pid_tof_rec", kTRUE);
72+
cut_tof_rec->AddCut(GetAnalysisCut("tpc_electron"));
73+
cut_tof_rec->AddCut(GetAnalysisCut("tof_electron"));
74+
75+
AnalysisCompositeCut* cut_pid_OR = new AnalysisCompositeCut("pid_TPChadrejTOFrec", "pid_TPChadrejTOFrec", kFALSE);
76+
cut_pid_OR->AddCut(cut_tpc_hadrej);
77+
cut_pid_OR->AddCut(cut_tof_rec);
78+
cut->AddCut(cut_pid_OR);
79+
return cut;
80+
}
81+
82+
if (!nameStr.compare("lmeePID_TPChadrej")) {
83+
cut->AddCut(GetAnalysisCut("lmeeStandardKine"));
84+
cut->AddCut(GetAnalysisCut("TightGlobalTrack"));
85+
cut->AddCut(GetAnalysisCut("standardPrimaryTrack"));
86+
87+
AnalysisCompositeCut* cut_tpc_hadrej = new AnalysisCompositeCut("pid_TPChadrej", "pid_TPChadrej", kTRUE);
88+
cut_tpc_hadrej->AddCut(GetAnalysisCut("tpc_electron"));
89+
cut_tpc_hadrej->AddCut(GetAnalysisCut("tpc_pion_rejection"));
90+
cut_tpc_hadrej->AddCut(GetAnalysisCut("tpc_kaon_rejection"));
91+
cut_tpc_hadrej->AddCut(GetAnalysisCut("tpc_proton_rejection"));
92+
cut->AddCut(cut_tpc_hadrej);
93+
return cut;
94+
}
95+
96+
if (!nameStr.compare("lmeePID_TOFrec")) {
97+
cut->AddCut(GetAnalysisCut("lmeeStandardKine"));
98+
cut->AddCut(GetAnalysisCut("TightGlobalTrack"));
99+
cut->AddCut(GetAnalysisCut("standardPrimaryTrack"));
100+
101+
AnalysisCompositeCut* cut_tof_rec = new AnalysisCompositeCut("pid_tof_rec", "pid_tof_rec", kTRUE);
102+
cut_tof_rec->AddCut(GetAnalysisCut("tpc_electron"));
103+
cut_tof_rec->AddCut(GetAnalysisCut("tof_electron"));
104+
105+
cut->AddCut(cut_tof_rec);
106+
return cut;
107+
}
108+
109+
if (!nameStr.compare("lmee_GlobalTrack")) {
110+
cut->AddCut(GetAnalysisCut("lmeeStandardKine"));
111+
cut->AddCut(GetAnalysisCut("TightGlobalTrack"));
112+
cut->AddCut(GetAnalysisCut("standardPrimaryTrack"));
113+
return cut;
114+
}
115+
60116
if (!nameStr.compare("pairNoCut")) {
61117
cut->AddCut(GetAnalysisCut("pairNoCut"));
62118
return cut;
@@ -124,6 +180,29 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
124180
return cut;
125181
}
126182

183+
if (!nameStr.compare("lmeeStandardKine")) {
184+
cut->AddCut(VarManager::kPt, 0.2, 10.0);
185+
cut->AddCut(VarManager::kEta, -0.8, 0.8);
186+
return cut;
187+
}
188+
189+
if (!nameStr.compare("lmeeLowBKine")) {
190+
cut->AddCut(VarManager::kPt, 0.075, 10.0);
191+
cut->AddCut(VarManager::kEta, -0.8, 0.8);
192+
return cut;
193+
}
194+
195+
if (!nameStr.compare("TightGlobalTrack")) {
196+
cut->AddCut(VarManager::kIsSPDfirst, 0.5, 1.5);
197+
cut->AddCut(VarManager::kIsITSrefit, 0.5, 1.5);
198+
cut->AddCut(VarManager::kIsTPCrefit, 0.5, 1.5);
199+
cut->AddCut(VarManager::kTPCchi2, 0.0, 4.0);
200+
cut->AddCut(VarManager::kITSchi2, 0.0, 5.0);
201+
cut->AddCut(VarManager::kTPCnclsCR, 80.0, 161.);
202+
cut->AddCut(VarManager::kITSncls, 3.5, 7.5);
203+
return cut;
204+
}
205+
127206
if (!nameStr.compare("electronStandardQuality")) {
128207
cut->AddCut(VarManager::kIsSPDany, 0.5, 1.5);
129208
cut->AddCut(VarManager::kIsITSrefit, 0.5, 1.5);
@@ -154,6 +233,41 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
154233
return cut;
155234
}
156235

236+
if (!nameStr.compare("tpc_pion_rejection")) {
237+
TF1* f1maxPi = new TF1("f1maxPi", "[0]+[1]*x", 0, 10);
238+
f1maxPi->SetParameters(85, -50);
239+
cut->AddCut(VarManager::kTPCsignal, 70, f1maxPi, true, VarManager::kPin, 0.0, 0.4, false);
240+
return cut;
241+
}
242+
243+
if (!nameStr.compare("tpc_kaon_rejection")) {
244+
TF1* f1minKa = new TF1("f1minKa", "[0]+[1]*x", 0, 10);
245+
f1minKa->SetParameters(220, -300);
246+
TF1* f1maxKa = new TF1("f1maxKa", "[0]+[1]*x", 0, 10);
247+
f1maxKa->SetParameters(182.5, -150);
248+
cut->AddCut(VarManager::kTPCsignal, f1minKa, f1maxKa, true, VarManager::kPin, 0.4, 0.8, false);
249+
return cut;
250+
}
251+
252+
if (!nameStr.compare("tpc_proton_rejection")) {
253+
TF1* f1minPr = new TF1("f1minPr", "[0]+[1]*x", 0, 10);
254+
f1minPr->SetParameters(170, -100);
255+
TF1* f1maxPr = new TF1("f1maxPr", "[0]+[1]*x", 0, 10);
256+
f1maxPr->SetParameters(175, -75);
257+
cut->AddCut(VarManager::kTPCsignal, f1minPr, f1maxPr, true, VarManager::kPin, 0.8, 1.4, false);
258+
return cut;
259+
}
260+
261+
if (!nameStr.compare("tpc_electron")) {
262+
cut->AddCut(VarManager::kTPCsignal, 70, 90, false, VarManager::kPin, 0.0, 1e+10, false);
263+
return cut;
264+
}
265+
266+
if (!nameStr.compare("tof_electron")) {
267+
cut->AddCut(VarManager::kTOFbeta, 0.99, 1.01, false, VarManager::kPin, 0.0, 1e+10, false);
268+
return cut;
269+
}
270+
157271
if (!nameStr.compare("pairNoCut")) {
158272
cut->AddCut(VarManager::kMass, 0.0, 1000.0);
159273
return cut;

Analysis/PWGDQ/include/PWGDQCore/HistogramsLibrary.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,17 +80,22 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
8080
hm->AddHistogram(histClass, "ITSchi2", "ITS chi2", false, 100, 0.0, 50.0, VarManager::kITSchi2);
8181
hm->AddHistogram(histClass, "IsITSrefit", "", false, 2, -0.5, 1.5, VarManager::kIsITSrefit);
8282
hm->AddHistogram(histClass, "IsSPDany", "", false, 2, -0.5, 1.5, VarManager::kIsSPDany);
83+
hm->AddHistogram(histClass, "IsSPDfirst", "", false, 2, -0.5, 1.5, VarManager::kIsSPDfirst);
8384
}
8485
if (subGroupStr.Contains("tpc")) {
8586
hm->AddHistogram(histClass, "TPCncls", "Number of cluster in TPC", false, 160, -0.5, 159.5, VarManager::kTPCncls);
8687
hm->AddHistogram(histClass, "TPCncls_Run", "Number of cluster in TPC", true, (VarManager::GetNRuns() > 0 ? VarManager::GetNRuns() : 1), 0.5, 0.5 + VarManager::GetNRuns(), VarManager::kRunId,
8788
10, -0.5, 159.5, VarManager::kTPCncls, 10, 0., 1., VarManager::kNothing, VarManager::GetRunStr().Data());
89+
hm->AddHistogram(histClass, "TPCnclsCR", "Number of crossed rows in TPC", false, 160, -0.5, 159.5, VarManager::kTPCnclsCR);
8890
hm->AddHistogram(histClass, "IsTPCrefit", "", false, 2, -0.5, 1.5, VarManager::kIsTPCrefit);
8991
hm->AddHistogram(histClass, "TPCchi2", "TPC chi2", false, 100, 0.0, 10.0, VarManager::kTPCchi2);
9092
}
9193
if (subGroupStr.Contains("tpcpid")) {
9294
hm->AddHistogram(histClass, "TPCdedx_pIN", "TPC dE/dx vs pIN", false, 200, 0.0, 20.0, VarManager::kPin, 200, 0.0, 200., VarManager::kTPCsignal);
9395
}
96+
if (subGroupStr.Contains("tofpid")) {
97+
hm->AddHistogram(histClass, "TOFbeta_pIN", "TOF #beta vs pIN", false, 200, 0.0, 20.0, VarManager::kPin, 120, 0.0, 1.2, VarManager::kTOFbeta);
98+
}
9499
if (subGroupStr.Contains("dca")) {
95100
hm->AddHistogram(histClass, "DCAxy", "DCAxy", false, 100, -3.0, 3.0, VarManager::kTrackDCAxy);
96101
hm->AddHistogram(histClass, "DCAz", "DCAz", false, 100, -5.0, 5.0, VarManager::kTrackDCAz);
@@ -109,7 +114,12 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
109114
}
110115
}
111116

112-
if (groupStr.Contains("pair")) {
117+
if (groupStr.Contains("pair_lmee")) {
118+
hm->AddHistogram(histClass, "Mass", "", false, 500, 0.0, 5.0, VarManager::kMass);
119+
hm->AddHistogram(histClass, "Mass_Pt", "", false, 500, 0.0, 5.0, VarManager::kMass, 200, 0.0, 20.0, VarManager::kPt);
120+
hm->AddHistogram(histClass, "Eta_Pt", "", false, 40, -2.0, 2.0, VarManager::kEta, 200, 0.0, 20.0, VarManager::kPt);
121+
hm->AddHistogram(histClass, "Mass_VtxZ", "", true, 30, -15.0, 15.0, VarManager::kVtxZ, 500, 0.0, 5.0, VarManager::kMass);
122+
} else if (groupStr.Contains("pair")) {
113123
hm->AddHistogram(histClass, "Mass", "", false, 125, 0.0, 5.0, VarManager::kMass);
114124
hm->AddHistogram(histClass, "Mass_Pt", "", false, 125, 0.0, 5.0, VarManager::kMass, 100, 0.0, 20.0, VarManager::kPt);
115125
hm->AddHistogram(histClass, "Eta_Pt", "", false, 125, -2.0, 2.0, VarManager::kEta, 100, 0.0, 20.0, VarManager::kPt);

Analysis/PWGDQ/include/PWGDQCore/VarManager.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ class VarManager : public TObject
123123
kITSlayerHit,
124124
kIsTPCrefit,
125125
kTPCncls,
126+
kTPCnclsCR,
126127
kTPCchi2,
127128
kTPCsignal,
128129
kTRDsignal,
@@ -396,6 +397,7 @@ void VarManager::FillTrack(T const& track, float* values)
396397
values[kTPCncls] = track.tpcNClsFound();
397398
values[kTPCchi2] = track.tpcChi2NCl();
398399
values[kTrackLength] = track.length();
400+
values[kTPCnclsCR] = track.tpcNClsCrossedRows();
399401

400402
if constexpr ((fillMap & TrackExtra) > 0) {
401403
if (fgUsedVars[kITSncls]) {

Analysis/PWGDQ/src/VarManager.cxx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,8 @@ void VarManager::SetDefaultVarNames()
180180
fgVariableUnits[kITSlayerHit] = "";
181181
fgVariableNames[kTPCncls] = "TPC #cls";
182182
fgVariableUnits[kTPCncls] = "";
183+
fgVariableNames[kTPCnclsCR] = "TPC #cls crossed rows";
184+
fgVariableUnits[kTPCnclsCR] = "";
183185
fgVariableNames[kTPCchi2] = "TPC chi2";
184186
fgVariableUnits[kTPCchi2] = "";
185187
fgVariableNames[kTPCsignal] = "TPC dE/dx";

0 commit comments

Comments
 (0)