Skip to content

Commit 98b4c37

Browse files
authored
PWGEM/Dilepton: revert ITS cluster size cut (AliceO2Group#8070)
1 parent 4ce8671 commit 98b4c37

File tree

7 files changed

+12
-54
lines changed

7 files changed

+12
-54
lines changed

PWGEM/Dilepton/Core/DielectronCut.cxx

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -133,13 +133,6 @@ void DielectronCut::SetMeanClusterSizeITS(float min, float max, float minP, floa
133133
mMaxP_ITSClusterSize = maxP;
134134
LOG(info) << "Dielectron Cut, set mean cluster size ITS range: " << mMinMeanClusterSizeITS << " - " << mMaxMeanClusterSizeITS;
135135
}
136-
void DielectronCut::SetMeanClusterSizeITSPDep(std::function<float(float)> pDepCut, float minP, float maxP)
137-
{
138-
mMaxMeanClusterSizeITSPDep = pDepCut;
139-
mMinP_ITSClusterSize = minP;
140-
mMaxP_ITSClusterSize = maxP;
141-
LOG(info) << "Dielectron Cut, set mean cluster size ITS p dep: " << mMaxMeanClusterSizeITSPDep(0.5);
142-
}
143136
void DielectronCut::SetTrackDca3DRange(float min, float max)
144137
{
145138
mMinDca3D = min;

PWGEM/Dilepton/Core/DielectronCut.h

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,7 @@ class DielectronCut : public TNamed
8585
kTPChadrejORTOFreq = 2,
8686
kTPConly = 3,
8787
kTOFif = 4,
88-
kITSTOFreq = 5,
89-
kTPChadrejORITSTOFreq = 6,
90-
kPIDML = 7
88+
kPIDML = 5
9189
};
9290

9391
template <typename T = int, typename TPair>
@@ -178,9 +176,9 @@ class DielectronCut : public TNamed
178176
if (!IsSelectedTrack(track, DielectronCuts::kITSChi2NDF)) {
179177
return false;
180178
}
181-
// if (!IsSelectedTrack(track, DielectronCuts::kITSClusterSize)) {
182-
// return false;
183-
// }
179+
if (!IsSelectedTrack(track, DielectronCuts::kITSClusterSize)) {
180+
return false;
181+
}
184182

185183
if (mRequireITSibAny) {
186184
auto hits_ib = std::count_if(its_ib_any_Requirement.second.begin(), its_ib_any_Requirement.second.end(), [&](auto&& requiredLayer) { return track.itsClusterMap() & (1 << requiredLayer); });
@@ -273,12 +271,6 @@ class DielectronCut : public TNamed
273271
case static_cast<int>(PIDSchemes::kTOFif):
274272
return PassTOFif(track);
275273

276-
case static_cast<int>(PIDSchemes::kITSTOFreq):
277-
return PassTOFreq(track) && PassITSreq(track);
278-
279-
case static_cast<int>(PIDSchemes::kTPChadrejORITSTOFreq):
280-
return PassTPChadrej(track) || (PassTOFreq(track) && PassITSreq(track));
281-
282274
case static_cast<int>(PIDSchemes::kPIDML):
283275
return true; // don't use kPIDML here.
284276

@@ -327,15 +319,6 @@ class DielectronCut : public TNamed
327319
return is_el_included_TPC && is_pi_excluded_TPC && is_el_included_TOF;
328320
}
329321

330-
template <typename T>
331-
bool PassITSreq(T const& track) const
332-
{
333-
bool is_el_included_TPC = mMinTPCNsigmaEl < track.tpcNSigmaEl() && track.tpcNSigmaEl() < mMaxTPCNsigmaEl;
334-
bool is_pi_excluded_TPC = track.tpcInnerParam() < mMaxPinForPionRejectionTPC ? (track.tpcNSigmaPi() < mMinTPCNsigmaPi || mMaxTPCNsigmaPi < track.tpcNSigmaPi()) : true;
335-
bool is_el_included_ITS = (track.p() < mMinP_ITSClusterSize || mMaxP_ITSClusterSize < track.p()) ? true : (mMinMeanClusterSizeITS < track.meanClusterSizeITS() * std::cos(std::atan(track.tgl()))) && (track.meanClusterSizeITS() * std::cos(std::atan(track.tgl())) < (mMaxMeanClusterSizeITSPDep ? mMaxMeanClusterSizeITSPDep(track.p()) : mMaxMeanClusterSizeITS));
336-
return is_el_included_TPC && is_pi_excluded_TPC && is_el_included_ITS;
337-
}
338-
339322
template <typename T>
340323
bool IsSelectedTrack(T const& track, const DielectronCuts& cut) const
341324
{
@@ -379,13 +362,8 @@ class DielectronCut : public TNamed
379362
case DielectronCuts::kITSChi2NDF:
380363
return mMinChi2PerClusterITS < track.itsChi2NCl() && track.itsChi2NCl() < mMaxChi2PerClusterITS;
381364

382-
// case DielectronCuts::kITSClusterSize: {
383-
// if (track.p() < mMinP_ITSClusterSize || mMaxP_ITSClusterSize < track.p()) {
384-
// return true;
385-
// } else {
386-
// return (mMinMeanClusterSizeITS < track.meanClusterSizeITS() * std::cos(std::atan(track.tgl()))) && (track.meanClusterSizeITS() * std::cos(std::atan(track.tgl())) < (mMaxMeanClusterSizeITSPDep ? mMaxMeanClusterSizeITSPDep(track.p()) : mMaxMeanClusterSizeITS));
387-
// }
388-
// }
365+
case DielectronCuts::kITSClusterSize:
366+
return ((mMinP_ITSClusterSize < track.p() && track.p() < mMaxP_ITSClusterSize) ? (mMinMeanClusterSizeITS < track.meanClusterSizeITS() * std::cos(std::atan(track.tgl())) && track.meanClusterSizeITS() * std::cos(std::atan(track.tgl())) < mMaxMeanClusterSizeITS) : true);
389367

390368
case DielectronCuts::kPrefilter:
391369
return track.pfb() <= 0;
@@ -416,7 +394,6 @@ class DielectronCut : public TNamed
416394
void SetNClustersITS(int min, int max);
417395
void SetChi2PerClusterITS(float min, float max);
418396
void SetMeanClusterSizeITS(float min, float max, float minP = 0.f, float maxP = 0.f);
419-
void SetMeanClusterSizeITSPDep(std::function<float(float)> pDepCut, float minP = 0.f, float maxP = 0.f);
420397

421398
void SetPIDScheme(int scheme);
422399
void SetMinPinTOF(float min);
@@ -493,9 +470,7 @@ class DielectronCut : public TNamed
493470
bool mApplyPhiV{true};
494471
bool mApplyPF{false};
495472
float mMinMeanClusterSizeITS{-1e10f}, mMaxMeanClusterSizeITS{1e10f}; // max <its cluster size> x cos(Lmabda)
496-
float mMinP_ITSClusterSize{0.0};
497-
float mMaxP_ITSClusterSize{0.0};
498-
std::function<float(float)> mMaxMeanClusterSizeITSPDep{}; // max dca in xy plane as function of pT
473+
float mMinP_ITSClusterSize{0.0}, mMaxP_ITSClusterSize{0.0};
499474

500475
// pid cuts
501476
int mPIDScheme{-1};

PWGEM/Dilepton/Core/Dilepton.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,6 @@ struct Dilepton {
179179
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
180180
Configurable<float> cfg_min_p_its_cluster_size{"cfg_min_p_its_cluster_size", 0.0, "min p to apply ITS cluster size cut"};
181181
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.0, "max p to apply ITS cluster size cut"};
182-
Configurable<float> cfg_slope_its_cluster_size{"cfg_slope_its_cluster_size", 0.4f, "slope for max ITS cluster size vs. p"};
183-
Configurable<float> cfg_intercept_its_cluster_size{"cfg_intercept_its_cluster_size", 1.94f, "intercept for max ITS cluster size vs. p"};
184182

185183
Configurable<int> cfg_pid_scheme{"cfg_pid_scheme", static_cast<int>(DielectronCut::PIDSchemes::kTPChadrejORTOFreq), "pid scheme [kTOFreq : 0, kTPChadrej : 1, kTPChadrejORTOFreq : 2, kTPConly : 3]"};
186184
Configurable<float> cfg_min_TPCNsigmaEl{"cfg_min_TPCNsigmaEl", -2.0, "min. TPC n sigma for electron inclusion"};
@@ -631,7 +629,7 @@ struct Dilepton {
631629
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
632630
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
633631
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
634-
fDielectronCut.SetMeanClusterSizeITSPDep([&](float p) { return dielectroncuts.cfg_slope_its_cluster_size * p + dielectroncuts.cfg_intercept_its_cluster_size; }, dielectroncuts.cfg_min_p_its_cluster_size, dielectroncuts.cfg_max_p_its_cluster_size);
632+
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);
635633
fDielectronCut.SetTrackMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
636634
fDielectronCut.SetTrackMaxDcaZ(dielectroncuts.cfg_max_dcaz);
637635
fDielectronCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);

PWGEM/Dilepton/Core/DileptonMC.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,6 @@ struct DileptonMC {
160160
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
161161
Configurable<float> cfg_min_p_its_cluster_size{"cfg_min_p_its_cluster_size", 0.0, "min p to apply ITS cluster size cut"};
162162
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.0, "max p to apply ITS cluster size cut"};
163-
Configurable<float> cfg_slope_its_cluster_size{"cfg_slope_its_cluster_size", 0.4f, "slope for max ITS cluster size vs. p"};
164-
Configurable<float> cfg_intercept_its_cluster_size{"cfg_intercept_its_cluster_size", 1.94f, "intercept for max ITS cluster size vs. p"};
165163

166164
Configurable<int> cfg_pid_scheme{"cfg_pid_scheme", static_cast<int>(DielectronCut::PIDSchemes::kTPChadrejORTOFreq), "pid scheme [kTOFreq : 0, kTPChadrej : 1, kTPChadrejORTOFreq : 2, kTPConly : 3]"};
167165
Configurable<float> cfg_min_TPCNsigmaEl{"cfg_min_TPCNsigmaEl", -2.0, "min. TPC n sigma for electron inclusion"};
@@ -515,7 +513,7 @@ struct DileptonMC {
515513
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
516514
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
517515
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
518-
fDielectronCut.SetMeanClusterSizeITSPDep([&](float p) { return dielectroncuts.cfg_slope_its_cluster_size * p + dielectroncuts.cfg_intercept_its_cluster_size; }, dielectroncuts.cfg_min_p_its_cluster_size, dielectroncuts.cfg_max_p_its_cluster_size);
516+
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);
519517
fDielectronCut.SetTrackMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
520518
fDielectronCut.SetTrackMaxDcaZ(dielectroncuts.cfg_max_dcaz);
521519
fDielectronCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);

PWGEM/Dilepton/Core/PhotonHBT.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,6 @@ struct PhotonHBT {
196196
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
197197
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.0, "max p to apply ITS cluster size cut"};
198198
Configurable<float> cfg_min_p_its_cluster_size{"cfg_min_p_its_cluster_size", 0.0, "min p to apply ITS cluster size cut"};
199-
Configurable<float> cfg_slope_its_cluster_size{"cfg_slope_its_cluster_size", 0.4f, "slope for max ITS cluster size vs. p"};
200-
Configurable<float> cfg_intercept_its_cluster_size{"cfg_intercept_its_cluster_size", 1.94f, "intercept for max ITS cluster size vs. p"};
201199

202200
Configurable<int> cfg_pid_scheme{"cfg_pid_scheme", static_cast<int>(DielectronCut::PIDSchemes::kTPChadrejORTOFreq), "pid scheme [kTOFreq : 0, kTPChadrej : 1, kTPChadrejORTOFreq : 2, kTPConly : 3]"};
203201
Configurable<float> cfg_min_TPCNsigmaEl{"cfg_min_TPCNsigmaEl", -2.0, "min. TPC n sigma for electron inclusion"};
@@ -544,7 +542,7 @@ struct PhotonHBT {
544542
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
545543
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
546544
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
547-
fDielectronCut.SetMeanClusterSizeITSPDep([&](float p) { return dielectroncuts.cfg_slope_its_cluster_size * p + dielectroncuts.cfg_intercept_its_cluster_size; }, dielectroncuts.cfg_min_p_its_cluster_size, dielectroncuts.cfg_max_p_its_cluster_size);
545+
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);
548546
fDielectronCut.SetTrackMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
549547
fDielectronCut.SetTrackMaxDcaZ(dielectroncuts.cfg_max_dcaz);
550548

PWGEM/Dilepton/Core/SingleTrackQC.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,6 @@ struct SingleTrackQC {
122122
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
123123
Configurable<float> cfg_min_p_its_cluster_size{"cfg_min_p_its_cluster_size", 0.0, "min p to apply ITS cluster size cut"};
124124
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.0, "max p to apply ITS cluster size cut"};
125-
Configurable<float> cfg_slope_its_cluster_size{"cfg_slope_its_cluster_size", 0.4f, "slope for max ITS cluster size vs. p"};
126-
Configurable<float> cfg_intercept_its_cluster_size{"cfg_intercept_its_cluster_size", 1.94f, "intercept for max ITS cluster size vs. p"};
127125

128126
Configurable<int> cfg_pid_scheme{"cfg_pid_scheme", static_cast<int>(DielectronCut::PIDSchemes::kTPChadrejORTOFreq), "pid scheme [kTOFreq : 0, kTPChadrej : 1, kTPChadrejORTOFreq : 2, kTPConly : 3]"};
129127
Configurable<float> cfg_min_TPCNsigmaEl{"cfg_min_TPCNsigmaEl", -2.0, "min. TPC n sigma for electron inclusion"};
@@ -325,7 +323,7 @@ struct SingleTrackQC {
325323
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
326324
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
327325
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
328-
fDielectronCut.SetMeanClusterSizeITSPDep([&](float p) { return dielectroncuts.cfg_slope_its_cluster_size * p + dielectroncuts.cfg_intercept_its_cluster_size; }, dielectroncuts.cfg_min_p_its_cluster_size, dielectroncuts.cfg_max_p_its_cluster_size);
326+
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);
329327
fDielectronCut.SetTrackMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
330328
fDielectronCut.SetTrackMaxDcaZ(dielectroncuts.cfg_max_dcaz);
331329
fDielectronCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);

PWGEM/Dilepton/Core/SingleTrackQCMC.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,6 @@ struct SingleTrackQCMC {
125125
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
126126
Configurable<float> cfg_min_p_its_cluster_size{"cfg_min_p_its_cluster_size", 0.0, "min p to apply ITS cluster size cut"};
127127
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.0, "max p to apply ITS cluster size cut"};
128-
Configurable<float> cfg_slope_its_cluster_size{"cfg_slope_its_cluster_size", 0.4f, "slope for max ITS cluster size vs. p"};
129-
Configurable<float> cfg_intercept_its_cluster_size{"cfg_intercept_its_cluster_size", 1.94f, "intercept for max ITS cluster size vs. p"};
130128

131129
Configurable<int> cfg_pid_scheme{"cfg_pid_scheme", static_cast<int>(DielectronCut::PIDSchemes::kTPChadrejORTOFreq), "pid scheme [kTOFreq : 0, kTPChadrej : 1, kTPChadrejORTOFreq : 2, kTPConly : 3]"};
132130
Configurable<float> cfg_min_TPCNsigmaEl{"cfg_min_TPCNsigmaEl", -2.0, "min. TPC n sigma for electron inclusion"};
@@ -371,7 +369,7 @@ struct SingleTrackQCMC {
371369
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
372370
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
373371
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
374-
fDielectronCut.SetMeanClusterSizeITSPDep([&](float p) { return dielectroncuts.cfg_slope_its_cluster_size * p + dielectroncuts.cfg_intercept_its_cluster_size; }, dielectroncuts.cfg_min_p_its_cluster_size, dielectroncuts.cfg_max_p_its_cluster_size);
372+
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);
375373
fDielectronCut.SetTrackMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
376374
fDielectronCut.SetTrackMaxDcaZ(dielectroncuts.cfg_max_dcaz);
377375
fDielectronCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);

0 commit comments

Comments
 (0)