Skip to content

Commit 3d22a2e

Browse files
committed
PWGEM/Dilepton: add an option for ITSsa in MC
1 parent 0cdf662 commit 3d22a2e

File tree

3 files changed

+48
-36
lines changed

3 files changed

+48
-36
lines changed

PWGEM/Dilepton/Core/DielectronCut.h

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -225,34 +225,35 @@ class DielectronCut : public TNamed
225225
}
226226
}
227227

228-
// if (!mIncludeITSsa && (!track.hasITS() || !track.hasTPC())) { // track has to be ITS-TPC matched track
229-
// return false;
230-
// }
228+
if (!mIncludeITSsa && (!track.hasITS() || !track.hasTPC())) { // track has to be ITS-TPC matched track
229+
return false;
230+
}
231231

232232
// if ((track.hasITS() && !track.hasTPC() && !track.hasTRD() && !track.hasTOF()) && track.pt() > mMaxPtITSsa) { // ITSsa
233233
// return false;
234234
// }
235235

236236
// TPC cuts
237-
if (!IsSelectedTrack(track, DielectronCuts::kTPCNCls)) {
238-
return false;
239-
}
240-
if (!IsSelectedTrack(track, DielectronCuts::kTPCCrossedRows)) {
241-
return false;
242-
}
243-
if (!IsSelectedTrack(track, DielectronCuts::kTPCCrossedRowsOverNCls)) {
244-
return false;
245-
}
246-
if (!IsSelectedTrack(track, DielectronCuts::kTPCFracSharedClusters)) {
247-
return false;
248-
}
249-
if (!IsSelectedTrack(track, DielectronCuts::kRelDiffPin)) {
250-
return false;
251-
}
252-
if (!IsSelectedTrack(track, DielectronCuts::kTPCChi2NDF)) {
253-
return false;
237+
if (track.hasTPC()) {
238+
if (!IsSelectedTrack(track, DielectronCuts::kTPCNCls)) {
239+
return false;
240+
}
241+
if (!IsSelectedTrack(track, DielectronCuts::kTPCCrossedRows)) {
242+
return false;
243+
}
244+
if (!IsSelectedTrack(track, DielectronCuts::kTPCCrossedRowsOverNCls)) {
245+
return false;
246+
}
247+
if (!IsSelectedTrack(track, DielectronCuts::kTPCFracSharedClusters)) {
248+
return false;
249+
}
250+
if (!IsSelectedTrack(track, DielectronCuts::kRelDiffPin)) {
251+
return false;
252+
}
253+
if (!IsSelectedTrack(track, DielectronCuts::kTPCChi2NDF)) {
254+
return false;
255+
}
254256
}
255-
256257
if (mApplyPF && !IsSelectedTrack(track, DielectronCuts::kPrefilter)) {
257258
return false;
258259
}
@@ -609,7 +610,7 @@ class DielectronCut : public TNamed
609610
float mMinMeanClusterSizeITS{0.0}, mMaxMeanClusterSizeITS{1e10f}; // <its cluster size> x cos(lmabda)
610611
// float mMinP_ITSClusterSize{0.0}, mMaxP_ITSClusterSize{0.0};
611612
bool mIncludeITSsa{false};
612-
float mMaxPtITSsa{0.15};
613+
float mMaxPtITSsa{1e+10};
613614

614615
// pid cuts
615616
int mPIDScheme{-1};

PWGEM/Dilepton/Core/SingleTrackQCMC.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ struct SingleTrackQCMC {
181181
Configurable<float> cfg_min_pin_pirejTPC{"cfg_min_pin_pirejTPC", 0.f, "min. pin for pion rejection in TPC"};
182182
Configurable<float> cfg_max_pin_pirejTPC{"cfg_max_pin_pirejTPC", 1e+10, "max. pin for pion rejection in TPC"};
183183
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};
184+
Configurable<bool> includeITSsa{"includeITSsa", false, "Flag to include ITSsa tracks only for MC. switch ON only if needed."};
184185

185186
// configuration for PID ML
186187
Configurable<std::vector<std::string>> onnxFileNames{"onnxFileNames", std::vector<std::string>{"filename"}, "ONNX file names for each bin (if not from CCDB full path)"};
@@ -519,6 +520,7 @@ struct SingleTrackQCMC {
519520
fDielectronCut.RequireITSib1st(dielectroncuts.cfg_require_itsib_1st);
520521
fDielectronCut.SetChi2TOF(0.0, dielectroncuts.cfg_max_chi2tof);
521522
fDielectronCut.SetRelDiffPin(dielectroncuts.cfg_min_rel_diff_pin, dielectroncuts.cfg_max_rel_diff_pin);
523+
fDielectronCut.IncludeITSsa(dielectroncuts.includeITSsa, 1e+10);
522524

523525
// for eID
524526
fDielectronCut.SetPIDScheme(dielectroncuts.cfg_pid_scheme);

PWGEM/Dilepton/TableProducer/skimmerPrimaryElectron.cxx

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ struct skimmerPrimaryElectron {
8181
Configurable<float> min_tpc_cr_findable_ratio{"min_tpc_cr_findable_ratio", 0.8, "min. TPC Ncr/Nf ratio"};
8282
Configurable<int> min_ncluster_its{"min_ncluster_its", 4, "min ncluster its"};
8383
Configurable<int> min_ncluster_itsib{"min_ncluster_itsib", 1, "min ncluster itsib"};
84+
Configurable<float> minchi2tpc{"minchi2tpc", 0.0, "min. chi2/NclsTPC"};
85+
Configurable<float> minchi2its{"minchi2its", 0.0, "min. chi2/NclsITS"};
8486
Configurable<float> maxchi2tpc{"maxchi2tpc", 5.0, "max. chi2/NclsTPC"};
8587
Configurable<float> maxchi2its{"maxchi2its", 6.0, "max. chi2/NclsITS"};
8688
Configurable<float> minpt{"minpt", 0.15, "min pt for ITS-TPC track"};
@@ -104,6 +106,7 @@ struct skimmerPrimaryElectron {
104106
Configurable<float> maxMeanITSClusterSize{"maxMeanITSClusterSize", 16, "max <ITS cluster size> x cos(lambda)"};
105107
Configurable<bool> storeOnlyTrueElectronMC{"storeOnlyTrueElectronMC", false, "Flag to store only true electron in MC"};
106108
Configurable<int> minNelectron{"minNelectron", 0, "min number of electron candidates per collision"};
109+
Configurable<bool> includeITSsa{"includeITSsa", false, "Flag to include ITSsa tracks only for MC. switch ON only if needed."};
107110
Configurable<bool> useTOFNSigmaDeltaBC{"useTOFNSigmaDeltaBC", false, "Flag to shift delta BC for TOF n sigma (only with TTCA)"};
108111

109112
// configuration for PID ML
@@ -288,11 +291,11 @@ struct skimmerPrimaryElectron {
288291
return false;
289292
}
290293

291-
if (!track.hasITS() || !track.hasTPC()) {
294+
if (!track.hasITS()) {
292295
return false;
293296
}
294297

295-
if (track.itsChi2NCl() < 0.f || maxchi2its < track.itsChi2NCl()) {
298+
if (track.itsChi2NCl() < minchi2its || maxchi2its < track.itsChi2NCl()) {
296299
return false;
297300
}
298301
if (track.itsNCls() < min_ncluster_its) {
@@ -302,24 +305,30 @@ struct skimmerPrimaryElectron {
302305
return false;
303306
}
304307

305-
if (track.tpcChi2NCl() < 0.f || maxchi2tpc < track.tpcChi2NCl()) {
308+
if (!includeITSsa && (!track.hasITS() || !track.hasTPC())) {
306309
return false;
307310
}
308311

309-
if (track.tpcNClsFound() < min_ncluster_tpc) {
310-
return false;
311-
}
312+
if (track.hasTPC()) {
313+
if (track.tpcChi2NCl() < minchi2tpc || maxchi2tpc < track.tpcChi2NCl()) {
314+
return false;
315+
}
312316

313-
if (track.tpcNClsCrossedRows() < mincrossedrows) {
314-
return false;
315-
}
317+
if (track.tpcNClsFound() < min_ncluster_tpc) {
318+
return false;
319+
}
316320

317-
if (track.tpcCrossedRowsOverFindableCls() < min_tpc_cr_findable_ratio) {
318-
return false;
319-
}
321+
if (track.tpcNClsCrossedRows() < mincrossedrows) {
322+
return false;
323+
}
320324

321-
if (track.tpcFractionSharedCls() > max_frac_shared_clusters_tpc) {
322-
return false;
325+
if (track.tpcCrossedRowsOverFindableCls() < min_tpc_cr_findable_ratio) {
326+
return false;
327+
}
328+
329+
if (track.tpcFractionSharedCls() > max_frac_shared_clusters_tpc) {
330+
return false;
331+
}
323332
}
324333

325334
o2::dataformats::DCA mDcaInfoCov;

0 commit comments

Comments
 (0)