Skip to content

Commit 7340cee

Browse files
authored
[PWGEM/Dilepton] add possibility to apply TOF chi2 cut (AliceO2Group#8319)
1 parent d847609 commit 7340cee

9 files changed

Lines changed: 70 additions & 10 deletions

File tree

PWGEM/Dilepton/Core/DielectronCut.cxx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
// Class for dilepton Cut
1414
//
1515

16+
#include <utility>
17+
#include <set>
18+
1619
#include "Framework/Logger.h"
1720
#include "PWGEM/Dilepton/Core/DielectronCut.h"
1821

@@ -112,6 +115,12 @@ void DielectronCut::SetMaxFracSharedClustersTPC(float max)
112115
mMaxFracSharedClustersTPC = max;
113116
LOG(info) << "Dielectron Cut, set max fraction of shared clusters in TPC: " << mMaxFracSharedClustersTPC;
114117
}
118+
void DielectronCut::SetRelDiffPin(float min, float max)
119+
{
120+
mMinRelDiffPin = min;
121+
mMaxRelDiffPin = max;
122+
LOG(info) << "Dielectron Cut, set rel. diff. between Pin and Ppv range: " << mMinRelDiffPin << " - " << mMaxRelDiffPin;
123+
}
115124
void DielectronCut::SetChi2PerClusterTPC(float min, float max)
116125
{
117126
mMinChi2PerClusterTPC = min;
@@ -139,6 +148,13 @@ void DielectronCut::SetMeanClusterSizeITS(float min, float max, float minP, floa
139148
mMaxP_ITSClusterSize = maxP;
140149
LOG(info) << "Dielectron Cut, set mean cluster size ITS range: " << mMinMeanClusterSizeITS << " - " << mMaxMeanClusterSizeITS;
141150
}
151+
void DielectronCut::SetChi2TOF(float min, float max)
152+
{
153+
mMinChi2TOF = min;
154+
mMaxChi2TOF = max;
155+
LOG(info) << "Dielectron Cut, set chi2 TOF range: " << mMinChi2TOF << " - " << mMaxChi2TOF;
156+
}
157+
142158
void DielectronCut::SetTrackDca3DRange(float min, float max)
143159
{
144160
mMinDca3D = min;

PWGEM/Dilepton/Core/DielectronCut.h

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ class DielectronCut : public TNamed
5757
kTPCCrossedRows,
5858
kTPCCrossedRowsOverNCls,
5959
kTPCFracSharedClusters,
60+
kRelDiffPin,
6061
kTPCChi2NDF,
6162
kTPCNsigmaEl,
6263
kTPCNsigmaMu,
@@ -209,6 +210,9 @@ class DielectronCut : public TNamed
209210
if (!IsSelectedTrack(track, DielectronCuts::kTPCFracSharedClusters)) {
210211
return false;
211212
}
213+
if (!IsSelectedTrack(track, DielectronCuts::kRelDiffPin)) {
214+
return false;
215+
}
212216
if (!IsSelectedTrack(track, DielectronCuts::kTPCChi2NDF)) {
213217
return false;
214218
}
@@ -217,11 +221,6 @@ class DielectronCut : public TNamed
217221
return false;
218222
}
219223

220-
// // TOF beta cut
221-
// if (track.hasTOF() && (track.beta() < mMinTOFbeta || mMaxTOFbeta < track.beta())) {
222-
// return false;
223-
// }
224-
225224
// PID cuts
226225
if constexpr (isML) {
227226
if (!PassPIDML(track, collision)) {
@@ -282,7 +281,7 @@ class DielectronCut : public TNamed
282281
{
283282
bool is_el_included_TPC = mMinTPCNsigmaEl < track.tpcNSigmaEl() && track.tpcNSigmaEl() < mMaxTPCNsigmaEl;
284283
bool is_pi_excluded_TPC = track.tpcInnerParam() < mMaxPinForPionRejectionTPC ? (track.tpcNSigmaPi() < mMinTPCNsigmaPi || mMaxTPCNsigmaPi < track.tpcNSigmaPi()) : true;
285-
bool is_el_included_TOF = mMinTOFNsigmaEl < track.tofNSigmaEl() && track.tofNSigmaEl() < mMaxTOFNsigmaEl;
284+
bool is_el_included_TOF = (mMinTOFNsigmaEl < track.tofNSigmaEl() && track.tofNSigmaEl() < mMaxTOFNsigmaEl) && (track.hasTOF() && track.tofChi2() < mMaxChi2TOF);
286285
return is_el_included_TPC && is_pi_excluded_TPC && is_el_included_TOF;
287286
}
288287

@@ -294,7 +293,7 @@ class DielectronCut : public TNamed
294293
bool is_pi_excluded_TPC = track.tpcInnerParam() < mMaxPinForPionRejectionTPC ? (track.tpcNSigmaPi() < mMinTPCNsigmaPi || mMaxTPCNsigmaPi < track.tpcNSigmaPi()) : true;
295294
bool is_ka_excluded_TPC = track.tpcNSigmaKa() < mMinTPCNsigmaKa || mMaxTPCNsigmaKa < track.tpcNSigmaKa();
296295
bool is_pr_excluded_TPC = track.tpcNSigmaPr() < mMinTPCNsigmaPr || mMaxTPCNsigmaPr < track.tpcNSigmaPr();
297-
bool is_el_included_TOF = track.hasTOF() ? (mMinTOFNsigmaEl < track.tofNSigmaEl() && track.tofNSigmaEl() < mMaxTOFNsigmaEl) : true;
296+
bool is_el_included_TOF = track.hasTOF() ? (mMinTOFNsigmaEl < track.tofNSigmaEl() && track.tofNSigmaEl() < mMaxTOFNsigmaEl && track.tofChi2() < mMaxChi2TOF) : true;
298297
return is_el_included_TPC && is_mu_excluded_TPC && is_pi_excluded_TPC && is_ka_excluded_TPC && is_pr_excluded_TPC && is_el_included_TOF;
299298
}
300299

@@ -310,7 +309,7 @@ class DielectronCut : public TNamed
310309
{
311310
bool is_el_included_TPC = mMinTPCNsigmaEl < track.tpcNSigmaEl() && track.tpcNSigmaEl() < mMaxTPCNsigmaEl;
312311
bool is_pi_excluded_TPC = track.tpcInnerParam() < mMaxPinForPionRejectionTPC ? (track.tpcNSigmaPi() < mMinTPCNsigmaPi || mMaxTPCNsigmaPi < track.tpcNSigmaPi()) : true;
313-
bool is_el_included_TOF = track.hasTOF() ? (mMinTOFNsigmaEl < track.tofNSigmaEl() && track.tofNSigmaEl() < mMaxTOFNsigmaEl) : true;
312+
bool is_el_included_TOF = track.hasTOF() ? (mMinTOFNsigmaEl < track.tofNSigmaEl() && track.tofNSigmaEl() < mMaxTOFNsigmaEl && track.tofChi2() < mMaxChi2TOF) : true;
314313
return is_el_included_TPC && is_pi_excluded_TPC && is_el_included_TOF;
315314
}
316315

@@ -339,6 +338,9 @@ class DielectronCut : public TNamed
339338
case DielectronCuts::kTPCFracSharedClusters:
340339
return track.tpcFractionSharedCls() <= mMaxFracSharedClustersTPC;
341340

341+
case DielectronCuts::kRelDiffPin:
342+
return mMinRelDiffPin < (track.tpcInnerParam() - track.p()) / track.p() && (track.tpcInnerParam() - track.p()) / track.p() < mMaxRelDiffPin;
343+
342344
case DielectronCuts::kTPCChi2NDF:
343345
return mMinChi2PerClusterTPC < track.tpcChi2NCl() && track.tpcChi2NCl() < mMaxChi2PerClusterTPC;
344346

@@ -386,10 +388,12 @@ class DielectronCut : public TNamed
386388
void SetMinNCrossedRowsTPC(int minNCrossedRowsTPC);
387389
void SetMinNCrossedRowsOverFindableClustersTPC(float minNCrossedRowsOverFindableClustersTPC);
388390
void SetMaxFracSharedClustersTPC(float max);
391+
void SetRelDiffPin(float min, float max);
389392
void SetChi2PerClusterTPC(float min, float max);
390393
void SetNClustersITS(int min, int max);
391394
void SetChi2PerClusterITS(float min, float max);
392395
void SetMeanClusterSizeITS(float min, float max, float minP = 0.f, float maxP = 0.f);
396+
void SetChi2TOF(float min, float max);
393397

394398
void SetPIDScheme(int scheme);
395399
void SetMinPinTOF(float min);
@@ -452,12 +456,14 @@ class DielectronCut : public TNamed
452456
float mMinChi2PerClusterTPC{-1e10f}, mMaxChi2PerClusterTPC{1e10f}; // max tpc fit chi2 per TPC cluster
453457
float mMinNCrossedRowsOverFindableClustersTPC{0.f}; // min ratio crossed rows / findable clusters
454458
float mMaxFracSharedClustersTPC{999.f}; // max ratio shared clusters / clusters in TPC
459+
float mMinRelDiffPin{-1e10f}, mMaxRelDiffPin{1e10f}; // max relative difference between p at TPC inner wall and p at PV
455460
int mMinNClustersITS{0}, mMaxNClustersITS{7}; // range in number of ITS clusters
456461
float mMinChi2PerClusterITS{-1e10f}, mMaxChi2PerClusterITS{1e10f}; // max its fit chi2 per ITS cluster
457462
float mMaxPinMuonTPConly{0.2f}; // max pin cut for muon ID with TPConly
458463
float mMaxPinForPionRejectionTPC{1e10f}; // max pin cut for muon ID with TPConly
459464
bool mRequireITSibAny{true};
460465
bool mRequireITSib1st{false};
466+
float mMinChi2TOF{-1e10f}, mMaxChi2TOF{1e10f}; // max tof chi2 per
461467

462468
float mMinDca3D{0.0f}; // min dca in 3D in units of sigma
463469
float mMaxDca3D{1e+10}; // max dca in 3D in units of sigma

PWGEM/Dilepton/Core/Dilepton.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ struct Dilepton {
180180
Configurable<float> cfg_max_frac_shared_clusters_tpc{"cfg_max_frac_shared_clusters_tpc", 999.f, "max fraction of shared clusters in TPC"};
181181
Configurable<float> cfg_max_chi2tpc{"cfg_max_chi2tpc", 4.0, "max chi2/NclsTPC"};
182182
Configurable<float> cfg_max_chi2its{"cfg_max_chi2its", 5.0, "max chi2/NclsITS"};
183+
Configurable<float> cfg_max_chi2tof{"cfg_max_chi2tof", 1e+10, "max chi2 TOF"};
183184
Configurable<float> cfg_max_dcaxy{"cfg_max_dcaxy", 0.2, "max dca XY for single track in cm"};
184185
Configurable<float> cfg_max_dcaz{"cfg_max_dcaz", 0.2, "max dca Z for single track in cm"};
185186
Configurable<bool> cfg_require_itsib_any{"cfg_require_itsib_any", false, "flag to require ITS ib any hits"};
@@ -188,6 +189,8 @@ struct Dilepton {
188189
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
189190
Configurable<float> cfg_min_p_its_cluster_size{"cfg_min_p_its_cluster_size", 0.0, "min p to apply ITS cluster size cut"};
190191
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.0, "max p to apply ITS cluster size cut"};
192+
Configurable<float> cfg_min_rel_diff_pin{"cfg_min_rel_diff_pin", -1e+10, "min rel. diff. between pin and ppv"};
193+
Configurable<float> cfg_max_rel_diff_pin{"cfg_max_rel_diff_pin", +1e+10, "max rel. diff. between pin and ppv"};
191194

192195
Configurable<int> cfg_pid_scheme{"cfg_pid_scheme", static_cast<int>(DielectronCut::PIDSchemes::kTPChadrejORTOFreq), "pid scheme [kTOFreq : 0, kTPChadrej : 1, kTPChadrejORTOFreq : 2, kTPConly : 3, kTOFif = 4, kPIDML = 5]"};
193196
Configurable<float> cfg_min_TPCNsigmaEl{"cfg_min_TPCNsigmaEl", -2.0, "min. TPC n sigma for electron inclusion"};
@@ -642,6 +645,8 @@ struct Dilepton {
642645
fDielectronCut.SetTrackMaxDcaZ(dielectroncuts.cfg_max_dcaz);
643646
fDielectronCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);
644647
fDielectronCut.RequireITSib1st(dielectroncuts.cfg_require_itsib_1st);
648+
fDielectronCut.SetChi2TOF(0, dielectroncuts.cfg_max_chi2tof);
649+
fDielectronCut.SetRelDiffPin(dielectroncuts.cfg_min_rel_diff_pin, dielectroncuts.cfg_max_rel_diff_pin);
645650

646651
// for eID
647652
fDielectronCut.SetPIDScheme(dielectroncuts.cfg_pid_scheme);

PWGEM/Dilepton/Core/DileptonMC.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ struct DileptonMC {
160160
Configurable<float> cfg_max_frac_shared_clusters_tpc{"cfg_max_frac_shared_clusters_tpc", 999.f, "max fraction of shared clusters in TPC"};
161161
Configurable<float> cfg_max_chi2tpc{"cfg_max_chi2tpc", 4.0, "max chi2/NclsTPC"};
162162
Configurable<float> cfg_max_chi2its{"cfg_max_chi2its", 5.0, "max chi2/NclsITS"};
163+
Configurable<float> cfg_max_chi2tof{"cfg_max_chi2tof", 1e+10, "max chi2 TOF"};
163164
Configurable<float> cfg_max_dcaxy{"cfg_max_dcaxy", 0.2, "max dca XY for single track in cm"};
164165
Configurable<float> cfg_max_dcaz{"cfg_max_dcaz", 0.2, "max dca Z for single track in cm"};
165166
Configurable<bool> cfg_require_itsib_any{"cfg_require_itsib_any", false, "flag to require ITS ib any hits"};
@@ -168,6 +169,8 @@ struct DileptonMC {
168169
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
169170
Configurable<float> cfg_min_p_its_cluster_size{"cfg_min_p_its_cluster_size", 0.0, "min p to apply ITS cluster size cut"};
170171
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.0, "max p to apply ITS cluster size cut"};
172+
Configurable<float> cfg_min_rel_diff_pin{"cfg_min_rel_diff_pin", -1e+10, "min rel. diff. between pin and ppv"};
173+
Configurable<float> cfg_max_rel_diff_pin{"cfg_max_rel_diff_pin", +1e+10, "max rel. diff. between pin and ppv"};
171174

172175
Configurable<int> cfg_pid_scheme{"cfg_pid_scheme", static_cast<int>(DielectronCut::PIDSchemes::kTPChadrejORTOFreq), "pid scheme [kTOFreq : 0, kTPChadrej : 1, kTPChadrejORTOFreq : 2, kTPConly : 3, kTOFif = 4, kPIDML = 5]"};
173176
Configurable<float> cfg_min_TPCNsigmaEl{"cfg_min_TPCNsigmaEl", -2.0, "min. TPC n sigma for electron inclusion"};
@@ -530,6 +533,8 @@ struct DileptonMC {
530533
fDielectronCut.SetTrackMaxDcaZ(dielectroncuts.cfg_max_dcaz);
531534
fDielectronCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);
532535
fDielectronCut.RequireITSib1st(dielectroncuts.cfg_require_itsib_1st);
536+
fDielectronCut.SetChi2TOF(0.0, dielectroncuts.cfg_max_chi2tof);
537+
fDielectronCut.SetRelDiffPin(dielectroncuts.cfg_min_rel_diff_pin, dielectroncuts.cfg_max_rel_diff_pin);
533538

534539
// for eID
535540
fDielectronCut.SetPIDScheme(dielectroncuts.cfg_pid_scheme);

PWGEM/Dilepton/Core/PhotonHBT.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,12 +196,15 @@ struct PhotonHBT {
196196
Configurable<float> cfg_max_frac_shared_clusters_tpc{"cfg_max_frac_shared_clusters_tpc", 999.f, "max fraction of shared clusters in TPC"};
197197
Configurable<float> cfg_max_chi2tpc{"cfg_max_chi2tpc", 4.0, "max chi2/NclsTPC"};
198198
Configurable<float> cfg_max_chi2its{"cfg_max_chi2its", 5.0, "max chi2/NclsITS"};
199+
Configurable<float> cfg_max_chi2tof{"cfg_max_chi2tof", 1e+10, "max chi2 TOF"};
199200
Configurable<float> cfg_max_dcaxy{"cfg_max_dcaxy", 1.0, "max dca XY for single track in cm"};
200201
Configurable<float> cfg_max_dcaz{"cfg_max_dcaz", 1.0, "max dca Z for single track in cm"};
201202
Configurable<float> cfg_min_its_cluster_size{"cfg_min_its_cluster_size", 0.f, "min ITS cluster size"};
202203
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
203-
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.0, "max p to apply ITS cluster size cut"};
204204
Configurable<float> cfg_min_p_its_cluster_size{"cfg_min_p_its_cluster_size", 0.0, "min p to apply ITS cluster size cut"};
205+
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.0, "max p to apply ITS cluster size cut"};
206+
Configurable<float> cfg_min_rel_diff_pin{"cfg_min_rel_diff_pin", -1e+10, "min rel. diff. between pin and ppv"};
207+
Configurable<float> cfg_max_rel_diff_pin{"cfg_max_rel_diff_pin", +1e+10, "max rel. diff. between pin and ppv"};
205208

206209
Configurable<int> cfg_pid_scheme{"cfg_pid_scheme", static_cast<int>(DielectronCut::PIDSchemes::kTPChadrejORTOFreq), "pid scheme [kTOFreq : 0, kTPChadrej : 1, kTPChadrejORTOFreq : 2, kTPConly : 3, kTOFif = 4, kPIDML = 5]"};
207210
Configurable<float> cfg_min_TPCNsigmaEl{"cfg_min_TPCNsigmaEl", -2.0, "min. TPC n sigma for electron inclusion"};
@@ -552,6 +555,8 @@ struct PhotonHBT {
552555
fDielectronCut.SetMeanClusterSizeITS(dielectroncuts.cfg_min_its_cluster_size, dielectroncuts.cfg_max_its_cluster_size, dielectroncuts.cfg_min_p_its_cluster_size, dielectroncuts.cfg_max_p_its_cluster_size);
553556
fDielectronCut.SetTrackMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
554557
fDielectronCut.SetTrackMaxDcaZ(dielectroncuts.cfg_max_dcaz);
558+
fDielectronCut.SetChi2TOF(0.0, dielectroncuts.cfg_max_chi2tof);
559+
fDielectronCut.SetRelDiffPin(dielectroncuts.cfg_min_rel_diff_pin, dielectroncuts.cfg_max_rel_diff_pin);
555560

556561
// for eID
557562
fDielectronCut.SetPIDScheme(dielectroncuts.cfg_pid_scheme);

PWGEM/Dilepton/Core/SingleTrackQC.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ struct SingleTrackQC {
121121
Configurable<float> cfg_max_frac_shared_clusters_tpc{"cfg_max_frac_shared_clusters_tpc", 999.f, "max fraction of shared clusters in TPC"};
122122
Configurable<float> cfg_max_chi2tpc{"cfg_max_chi2tpc", 4.0, "max chi2/NclsTPC"};
123123
Configurable<float> cfg_max_chi2its{"cfg_max_chi2its", 5.0, "max chi2/NclsITS"};
124+
Configurable<float> cfg_max_chi2tof{"cfg_max_chi2tof", 1e+10, "max chi2 TOF"};
124125
Configurable<float> cfg_max_dcaxy{"cfg_max_dcaxy", 0.2, "max dca XY for single track in cm"};
125126
Configurable<float> cfg_max_dcaz{"cfg_max_dcaz", 0.2, "max dca Z for single track in cm"};
126127
Configurable<bool> cfg_require_itsib_any{"cfg_require_itsib_any", false, "flag to require ITS ib any hits"};
@@ -129,6 +130,8 @@ struct SingleTrackQC {
129130
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
130131
Configurable<float> cfg_min_p_its_cluster_size{"cfg_min_p_its_cluster_size", 0.0, "min p to apply ITS cluster size cut"};
131132
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.0, "max p to apply ITS cluster size cut"};
133+
Configurable<float> cfg_min_rel_diff_pin{"cfg_min_rel_diff_pin", -1e+10, "min rel. diff. between pin and ppv"};
134+
Configurable<float> cfg_max_rel_diff_pin{"cfg_max_rel_diff_pin", +1e+10, "max rel. diff. between pin and ppv"};
132135

133136
Configurable<int> cfg_pid_scheme{"cfg_pid_scheme", static_cast<int>(DielectronCut::PIDSchemes::kTPChadrejORTOFreq), "pid scheme [kTOFreq : 0, kTPChadrej : 1, kTPChadrejORTOFreq : 2, kTPConly : 3, kTOFif = 4, kPIDML = 5]"};
134137
Configurable<float> cfg_min_TPCNsigmaEl{"cfg_min_TPCNsigmaEl", -2.0, "min. TPC n sigma for electron inclusion"};
@@ -336,6 +339,8 @@ struct SingleTrackQC {
336339
fDielectronCut.SetTrackMaxDcaZ(dielectroncuts.cfg_max_dcaz);
337340
fDielectronCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);
338341
fDielectronCut.RequireITSib1st(dielectroncuts.cfg_require_itsib_1st);
342+
fDielectronCut.SetChi2TOF(0.0, dielectroncuts.cfg_max_chi2tof);
343+
fDielectronCut.SetRelDiffPin(dielectroncuts.cfg_min_rel_diff_pin, dielectroncuts.cfg_max_rel_diff_pin);
339344

340345
// for eID
341346
fDielectronCut.SetPIDScheme(dielectroncuts.cfg_pid_scheme);

PWGEM/Dilepton/Core/SingleTrackQCMC.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ struct SingleTrackQCMC {
124124
Configurable<float> cfg_max_frac_shared_clusters_tpc{"cfg_max_frac_shared_clusters_tpc", 999.f, "max fraction of shared clusters in TPC"};
125125
Configurable<float> cfg_max_chi2tpc{"cfg_max_chi2tpc", 4.0, "max chi2/NclsTPC"};
126126
Configurable<float> cfg_max_chi2its{"cfg_max_chi2its", 5.0, "max chi2/NclsITS"};
127+
Configurable<float> cfg_max_chi2tof{"cfg_max_chi2tof", 1e+10, "max chi2 TOF"};
127128
Configurable<float> cfg_max_dcaxy{"cfg_max_dcaxy", 0.2, "max dca XY for single track in cm"};
128129
Configurable<float> cfg_max_dcaz{"cfg_max_dcaz", 0.2, "max dca Z for single track in cm"};
129130
Configurable<bool> cfg_require_itsib_any{"cfg_require_itsib_any", false, "flag to require ITS ib any hits"};
@@ -132,6 +133,8 @@ struct SingleTrackQCMC {
132133
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
133134
Configurable<float> cfg_min_p_its_cluster_size{"cfg_min_p_its_cluster_size", 0.0, "min p to apply ITS cluster size cut"};
134135
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.0, "max p to apply ITS cluster size cut"};
136+
Configurable<float> cfg_min_rel_diff_pin{"cfg_min_rel_diff_pin", -1e+10, "min rel. diff. between pin and ppv"};
137+
Configurable<float> cfg_max_rel_diff_pin{"cfg_max_rel_diff_pin", +1e+10, "max rel. diff. between pin and ppv"};
135138

136139
Configurable<int> cfg_pid_scheme{"cfg_pid_scheme", static_cast<int>(DielectronCut::PIDSchemes::kTPChadrejORTOFreq), "pid scheme [kTOFreq : 0, kTPChadrej : 1, kTPChadrejORTOFreq : 2, kTPConly : 3, kTOFif = 4, kPIDML = 5]"};
137140
Configurable<float> cfg_min_TPCNsigmaEl{"cfg_min_TPCNsigmaEl", -2.0, "min. TPC n sigma for electron inclusion"};
@@ -388,6 +391,8 @@ struct SingleTrackQCMC {
388391
fDielectronCut.SetTrackMaxDcaZ(dielectroncuts.cfg_max_dcaz);
389392
fDielectronCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);
390393
fDielectronCut.RequireITSib1st(dielectroncuts.cfg_require_itsib_1st);
394+
fDielectronCut.SetChi2TOF(0.0, dielectroncuts.cfg_max_chi2tof);
395+
fDielectronCut.SetRelDiffPin(dielectroncuts.cfg_min_rel_diff_pin, dielectroncuts.cfg_max_rel_diff_pin);
391396

392397
// for eID
393398
fDielectronCut.SetPIDScheme(dielectroncuts.cfg_pid_scheme);

0 commit comments

Comments
 (0)