Skip to content

Commit f10c7ea

Browse files
authored
[PWGEM/Dilepton] update for ITSsa and include headers (#11715)
1 parent e39b3af commit f10c7ea

23 files changed

+343
-256
lines changed

PWGEM/Dilepton/Core/DielectronCut.cxx

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@
1313
// Class for dielectron Cut
1414
//
1515

16-
#include <utility>
17-
#include <set>
16+
#include "PWGEM/Dilepton/Core/DielectronCut.h"
1817

1918
#include "Framework/Logger.h"
20-
#include "PWGEM/Dilepton/Core/DielectronCut.h"
19+
20+
#include <set>
21+
#include <utility>
2122

2223
ClassImp(DielectronCut);
2324

@@ -141,12 +142,12 @@ void DielectronCut::SetChi2PerClusterITS(float min, float max)
141142
mMaxChi2PerClusterITS = max;
142143
LOG(info) << "Dielectron Cut, set chi2 per cluster ITS range: " << mMinChi2PerClusterITS << " - " << mMaxChi2PerClusterITS;
143144
}
144-
void DielectronCut::SetMeanClusterSizeITS(float min, float max, float minP, float maxP)
145+
void DielectronCut::SetMeanClusterSizeITS(float min, float max)
145146
{
146147
mMinMeanClusterSizeITS = min;
147148
mMaxMeanClusterSizeITS = max;
148-
mMinP_ITSClusterSize = minP;
149-
mMaxP_ITSClusterSize = maxP;
149+
// mMinP_ITSClusterSize = minP;
150+
// mMaxP_ITSClusterSize = maxP;
150151
LOG(info) << "Dielectron Cut, set mean cluster size ITS range: " << mMinMeanClusterSizeITS << " - " << mMaxMeanClusterSizeITS;
151152
}
152153
void DielectronCut::SetChi2TOF(float min, float max)
@@ -341,3 +342,9 @@ void DielectronCut::RequireITSib1st(bool flag)
341342
mRequireITSib1st = flag;
342343
LOG(info) << "Dielectron Cut, require ITS ib 1st: " << mRequireITSib1st;
343344
}
345+
void DielectronCut::IncludeITSsa(bool flag, float max)
346+
{
347+
mIncludeITSsa = flag;
348+
mMaxPtITSsa = max;
349+
LOG(info) << "Dielectron Cut, include ITSsa tracks: " << mIncludeITSsa << ", mMaxPtITSsa = " << mMaxPtITSsa;
350+
}

PWGEM/Dilepton/Core/DielectronCut.h

Lines changed: 58 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,22 @@
1616
#ifndef PWGEM_DILEPTON_CORE_DIELECTRONCUT_H_
1717
#define PWGEM_DILEPTON_CORE_DIELECTRONCUT_H_
1818

19-
#include <algorithm>
20-
#include <set>
21-
#include <vector>
22-
#include <utility>
23-
#include <string>
24-
#include "TNamed.h"
25-
#include "Math/Vector4D.h"
26-
19+
#include "PWGEM/Dilepton/Utils/EMTrackUtilities.h"
2720
#include "PWGEM/Dilepton/Utils/MlResponseDielectronSingleTrack.h"
21+
#include "PWGEM/Dilepton/Utils/PairUtilities.h"
2822

29-
#include "Framework/Logger.h"
30-
#include "Framework/DataTypes.h"
3123
#include "CommonConstants/PhysicsConstants.h"
32-
#include "PWGEM/Dilepton/Utils/PairUtilities.h"
33-
#include "PWGEM/Dilepton/Utils/EMTrackUtilities.h"
24+
#include "Framework/DataTypes.h"
25+
#include "Framework/Logger.h"
26+
27+
#include "Math/Vector4D.h"
28+
#include "TNamed.h"
29+
30+
#include <algorithm>
31+
#include <set>
32+
#include <string>
33+
#include <utility>
34+
#include <vector>
3435

3536
using namespace o2::aod::pwgem::dilepton::utils::emtrackutil;
3637
using namespace o2::aod::pwgem::dilepton::utils::pairutil;
@@ -64,7 +65,7 @@ class DielectronCut : public TNamed
6465
kDCAz,
6566
kITSNCls,
6667
kITSChi2NDF,
67-
kITSClusterSize,
68+
// kITSClusterSize,
6869
kPrefilter,
6970
kNCuts
7071
};
@@ -149,7 +150,7 @@ class DielectronCut : public TNamed
149150
template <bool dont_require_pteta = false, bool isML = false, typename TTrack, typename TCollision = int>
150151
bool IsSelectedTrack(TTrack const& track, TCollision const& collision = 0) const
151152
{
152-
if (!track.hasITS() || !track.hasTPC()) { // track has to be ITS-TPC matched track
153+
if (!track.hasITS()) {
153154
return false;
154155
}
155156

@@ -182,9 +183,10 @@ class DielectronCut : public TNamed
182183
if (!IsSelectedTrack(track, DielectronCuts::kITSChi2NDF)) {
183184
return false;
184185
}
185-
if (!IsSelectedTrack(track, DielectronCuts::kITSClusterSize)) {
186-
return false;
187-
}
186+
187+
// if (!IsSelectedTrack(track, DielectronCuts::kITSClusterSize)) {
188+
// return false;
189+
// }
188190

189191
if (mRequireITSibAny) {
190192
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); });
@@ -200,24 +202,34 @@ class DielectronCut : public TNamed
200202
}
201203
}
202204

203-
// TPC cuts
204-
if (!IsSelectedTrack(track, DielectronCuts::kTPCNCls)) {
205-
return false;
206-
}
207-
if (!IsSelectedTrack(track, DielectronCuts::kTPCCrossedRows)) {
205+
if (!mIncludeITSsa && (!track.hasITS() || !track.hasTPC())) { // track has to be ITS-TPC matched track
208206
return false;
209207
}
210-
if (!IsSelectedTrack(track, DielectronCuts::kTPCCrossedRowsOverNCls)) {
211-
return false;
212-
}
213-
if (!IsSelectedTrack(track, DielectronCuts::kTPCFracSharedClusters)) {
214-
return false;
215-
}
216-
if (!IsSelectedTrack(track, DielectronCuts::kRelDiffPin)) {
208+
209+
if ((track.hasITS() && !track.hasTPC() && !track.hasTRD() && !track.hasTOF()) && track.pt() > mMaxPtITSsa) { // ITSsa
217210
return false;
218211
}
219-
if (!IsSelectedTrack(track, DielectronCuts::kTPCChi2NDF)) {
220-
return false;
212+
213+
// TPC cuts
214+
if (track.hasTPC()) {
215+
if (!IsSelectedTrack(track, DielectronCuts::kTPCNCls)) {
216+
return false;
217+
}
218+
if (!IsSelectedTrack(track, DielectronCuts::kTPCCrossedRows)) {
219+
return false;
220+
}
221+
if (!IsSelectedTrack(track, DielectronCuts::kTPCCrossedRowsOverNCls)) {
222+
return false;
223+
}
224+
if (!IsSelectedTrack(track, DielectronCuts::kTPCFracSharedClusters)) {
225+
return false;
226+
}
227+
if (!IsSelectedTrack(track, DielectronCuts::kRelDiffPin)) {
228+
return false;
229+
}
230+
if (!IsSelectedTrack(track, DielectronCuts::kTPCChi2NDF)) {
231+
return false;
232+
}
221233
}
222234

223235
if (mApplyPF && !IsSelectedTrack(track, DielectronCuts::kPrefilter)) {
@@ -230,8 +242,15 @@ class DielectronCut : public TNamed
230242
return false;
231243
}
232244
} else {
233-
if (!PassPID(track)) {
234-
return false;
245+
if (track.hasITS() && !track.hasTPC() && !track.hasTRD() && !track.hasTOF()) { // ITSsa
246+
float meanClusterSizeITS = track.meanClusterSizeITS() * std::cos(std::atan(track.tgl()));
247+
if (meanClusterSizeITS < mMinMeanClusterSizeITS || mMaxMeanClusterSizeITS < meanClusterSizeITS) {
248+
return false;
249+
}
250+
} else { // not ITSsa
251+
if (!PassPID(track)) {
252+
return false;
253+
}
235254
}
236255
}
237256

@@ -400,9 +419,6 @@ class DielectronCut : public TNamed
400419
case DielectronCuts::kITSChi2NDF:
401420
return mMinChi2PerClusterITS < track.itsChi2NCl() && track.itsChi2NCl() < mMaxChi2PerClusterITS;
402421

403-
case DielectronCuts::kITSClusterSize:
404-
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);
405-
406422
case DielectronCuts::kPrefilter:
407423
return track.pfb() <= 0;
408424

@@ -433,7 +449,7 @@ class DielectronCut : public TNamed
433449
void SetChi2PerClusterTPC(float min, float max);
434450
void SetNClustersITS(int min, int max);
435451
void SetChi2PerClusterITS(float min, float max);
436-
void SetMeanClusterSizeITS(float min, float max, float minP = 0.f, float maxP = 0.f);
452+
void SetMeanClusterSizeITS(float min, float max);
437453
void SetChi2TOF(float min, float max);
438454

439455
void SetPIDScheme(int scheme);
@@ -470,6 +486,7 @@ class DielectronCut : public TNamed
470486
void SetTrackMaxDcaXYPtDep(std::function<float(float)> ptDepCut);
471487
void ApplyPrefilter(bool flag);
472488
void ApplyPhiV(bool flag);
489+
void IncludeITSsa(bool flag, float maxpt);
473490

474491
void SetPIDMlResponse(o2::analysis::MlResponseDielectronSingleTrack<float>* mlResponse)
475492
{
@@ -523,8 +540,10 @@ class DielectronCut : public TNamed
523540
std::function<float(float)> mMaxDcaXYPtDep{}; // max dca in xy plane as function of pT
524541
bool mApplyPhiV{true};
525542
bool mApplyPF{false};
526-
float mMinMeanClusterSizeITS{-1e10f}, mMaxMeanClusterSizeITS{1e10f}; // max <its cluster size> x cos(Lmabda)
527-
float mMinP_ITSClusterSize{0.0}, mMaxP_ITSClusterSize{0.0};
543+
float mMinMeanClusterSizeITS{0.0}, mMaxMeanClusterSizeITS{1e10f}; // <its cluster size> x cos(lmabda)
544+
// float mMinP_ITSClusterSize{0.0}, mMaxP_ITSClusterSize{0.0};
545+
bool mIncludeITSsa{false};
546+
float mMaxPtITSsa{0.15};
528547

529548
// pid cuts
530549
int mPIDScheme{-1};

PWGEM/Dilepton/Core/Dilepton.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,6 @@ struct Dilepton {
210210
Configurable<bool> cfg_require_itsib_1st{"cfg_require_itsib_1st", true, "flag to require ITS ib 1st hit"};
211211
Configurable<float> cfg_min_its_cluster_size{"cfg_min_its_cluster_size", 0.f, "min ITS cluster size"};
212212
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
213-
Configurable<float> cfg_min_p_its_cluster_size{"cfg_min_p_its_cluster_size", 0.0, "min p to apply ITS cluster size cut"};
214-
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.0, "max p to apply ITS cluster size cut"};
215213
Configurable<float> cfg_min_rel_diff_pin{"cfg_min_rel_diff_pin", -1e+10, "min rel. diff. between pin and ppv"};
216214
Configurable<float> cfg_max_rel_diff_pin{"cfg_max_rel_diff_pin", +1e+10, "max rel. diff. between pin and ppv"};
217215

@@ -239,6 +237,8 @@ struct Dilepton {
239237
Configurable<float> cfg_min_p_ITSNsigmaPr{"cfg_min_p_ITSNsigmaPr", 0.0, "min p for proton exclusion in ITS"};
240238
Configurable<float> cfg_max_p_ITSNsigmaPr{"cfg_max_p_ITSNsigmaPr", 0.0, "max p for proton exclusion in ITS"};
241239
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};
240+
Configurable<bool> includeITSsa{"includeITSsa", false, "Flag to enable ITSsa tracks"};
241+
Configurable<float> cfg_max_pt_track_ITSsa{"cfg_max_pt_track_ITSsa", 0.15, "max pt for ITSsa tracks"};
242242

243243
// configuration for PID ML
244244
Configurable<std::vector<std::string>> onnxFileNames{"onnxFileNames", std::vector<std::string>{"filename"}, "ONNX file names for each bin (if not from CCDB full path)"};
@@ -683,13 +683,14 @@ struct Dilepton {
683683
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
684684
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
685685
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
686-
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);
686+
fDielectronCut.SetMeanClusterSizeITS(dielectroncuts.cfg_min_its_cluster_size, dielectroncuts.cfg_max_its_cluster_size);
687687
fDielectronCut.SetTrackMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
688688
fDielectronCut.SetTrackMaxDcaZ(dielectroncuts.cfg_max_dcaz);
689689
fDielectronCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);
690690
fDielectronCut.RequireITSib1st(dielectroncuts.cfg_require_itsib_1st);
691691
fDielectronCut.SetChi2TOF(0, dielectroncuts.cfg_max_chi2tof);
692692
fDielectronCut.SetRelDiffPin(dielectroncuts.cfg_min_rel_diff_pin, dielectroncuts.cfg_max_rel_diff_pin);
693+
fDielectronCut.IncludeITSsa(dielectroncuts.includeITSsa, dielectroncuts.cfg_max_pt_track_ITSsa);
693694

694695
// for eID
695696
fDielectronCut.SetPIDScheme(dielectroncuts.cfg_pid_scheme);

PWGEM/Dilepton/Core/DileptonMC.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -201,8 +201,6 @@ struct DileptonMC {
201201
Configurable<bool> cfg_require_itsib_1st{"cfg_require_itsib_1st", true, "flag to require ITS ib 1st hit"};
202202
Configurable<float> cfg_min_its_cluster_size{"cfg_min_its_cluster_size", 0.f, "min ITS cluster size"};
203203
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
204-
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"};
206204
Configurable<float> cfg_min_rel_diff_pin{"cfg_min_rel_diff_pin", -1e+10, "min rel. diff. between pin and ppv"};
207205
Configurable<float> cfg_max_rel_diff_pin{"cfg_max_rel_diff_pin", +1e+10, "max rel. diff. between pin and ppv"};
208206

@@ -230,6 +228,8 @@ struct DileptonMC {
230228
Configurable<float> cfg_min_p_ITSNsigmaPr{"cfg_min_p_ITSNsigmaPr", 0.0, "min p for proton exclusion in ITS"};
231229
Configurable<float> cfg_max_p_ITSNsigmaPr{"cfg_max_p_ITSNsigmaPr", 0.0, "max p for proton exclusion in ITS"};
232230
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};
231+
Configurable<bool> includeITSsa{"includeITSsa", false, "Flag to enable ITSsa tracks"};
232+
Configurable<float> cfg_max_pt_track_ITSsa{"cfg_max_pt_track_ITSsa", 0.15, "max pt for ITSsa tracks"};
233233

234234
// configuration for PID ML
235235
Configurable<std::vector<std::string>> onnxFileNames{"onnxFileNames", std::vector<std::string>{"filename"}, "ONNX file names for each bin (if not from CCDB full path)"};
@@ -648,13 +648,14 @@ struct DileptonMC {
648648
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
649649
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
650650
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
651-
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);
651+
fDielectronCut.SetMeanClusterSizeITS(dielectroncuts.cfg_min_its_cluster_size, dielectroncuts.cfg_max_its_cluster_size);
652652
fDielectronCut.SetTrackMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
653653
fDielectronCut.SetTrackMaxDcaZ(dielectroncuts.cfg_max_dcaz);
654654
fDielectronCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);
655655
fDielectronCut.RequireITSib1st(dielectroncuts.cfg_require_itsib_1st);
656656
fDielectronCut.SetChi2TOF(0.0, dielectroncuts.cfg_max_chi2tof);
657657
fDielectronCut.SetRelDiffPin(dielectroncuts.cfg_min_rel_diff_pin, dielectroncuts.cfg_max_rel_diff_pin);
658+
fDielectronCut.IncludeITSsa(dielectroncuts.includeITSsa, dielectroncuts.cfg_max_pt_track_ITSsa);
658659

659660
// for eID
660661
fDielectronCut.SetPIDScheme(dielectroncuts.cfg_pid_scheme);

PWGEM/Dilepton/Core/PhotonHBT.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,6 @@ struct PhotonHBT {
209209
Configurable<float> cfg_max_dcaz{"cfg_max_dcaz", 0.2, "max dca Z for single track in cm"};
210210
Configurable<float> cfg_min_its_cluster_size{"cfg_min_its_cluster_size", 0.f, "min ITS cluster size"};
211211
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
212-
Configurable<float> cfg_min_p_its_cluster_size{"cfg_min_p_its_cluster_size", 0.0, "min p to apply ITS cluster size cut"};
213-
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.0, "max p to apply ITS cluster size cut"};
214212
Configurable<float> cfg_min_rel_diff_pin{"cfg_min_rel_diff_pin", -1e+10, "min rel. diff. between pin and ppv"};
215213
Configurable<float> cfg_max_rel_diff_pin{"cfg_max_rel_diff_pin", +1e+10, "max rel. diff. between pin and ppv"};
216214
Configurable<bool> cfg_require_itsib_any{"cfg_require_itsib_any", false, "flag to require ITS ib any hits"};
@@ -240,6 +238,8 @@ struct PhotonHBT {
240238
Configurable<float> cfg_min_p_ITSNsigmaPr{"cfg_min_p_ITSNsigmaPr", 0.0, "min p for proton exclusion in ITS"};
241239
Configurable<float> cfg_max_p_ITSNsigmaPr{"cfg_max_p_ITSNsigmaPr", 0.0, "max p for proton exclusion in ITS"};
242240
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};
241+
Configurable<bool> includeITSsa{"includeITSsa", false, "Flag to enable ITSsa tracks"};
242+
Configurable<float> cfg_max_pt_track_ITSsa{"cfg_max_pt_track_ITSsa", 0.15, "max pt for ITSsa tracks"};
243243

244244
// configuration for PID ML
245245
Configurable<std::vector<std::string>> onnxFileNames{"onnxFileNames", std::vector<std::string>{"filename"}, "ONNX file names for each bin (if not from CCDB full path)"};
@@ -568,11 +568,12 @@ struct PhotonHBT {
568568
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
569569
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
570570
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
571-
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);
571+
fDielectronCut.SetMeanClusterSizeITS(dielectroncuts.cfg_min_its_cluster_size, dielectroncuts.cfg_max_its_cluster_size);
572572
fDielectronCut.SetTrackMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
573573
fDielectronCut.SetTrackMaxDcaZ(dielectroncuts.cfg_max_dcaz);
574574
fDielectronCut.SetChi2TOF(0.0, dielectroncuts.cfg_max_chi2tof);
575575
fDielectronCut.SetRelDiffPin(dielectroncuts.cfg_min_rel_diff_pin, dielectroncuts.cfg_max_rel_diff_pin);
576+
fDielectronCut.IncludeITSsa(dielectroncuts.includeITSsa, dielectroncuts.cfg_max_pt_track_ITSsa);
576577

577578
// for eID
578579
fDielectronCut.SetPIDScheme(dielectroncuts.cfg_pid_scheme);

PWGEM/Dilepton/Core/SingleTrackQC.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,6 @@ struct SingleTrackQC {
142142
Configurable<bool> cfg_require_itsib_1st{"cfg_require_itsib_1st", true, "flag to require ITS ib 1st hit"};
143143
Configurable<float> cfg_min_its_cluster_size{"cfg_min_its_cluster_size", 0.f, "min ITS cluster size"};
144144
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
145-
Configurable<float> cfg_min_p_its_cluster_size{"cfg_min_p_its_cluster_size", 0.0, "min p to apply ITS cluster size cut"};
146-
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.0, "max p to apply ITS cluster size cut"};
147145
Configurable<float> cfg_min_rel_diff_pin{"cfg_min_rel_diff_pin", -1e+10, "min rel. diff. between pin and ppv"};
148146
Configurable<float> cfg_max_rel_diff_pin{"cfg_max_rel_diff_pin", +1e+10, "max rel. diff. between pin and ppv"};
149147

@@ -171,6 +169,8 @@ struct SingleTrackQC {
171169
Configurable<float> cfg_min_p_ITSNsigmaPr{"cfg_min_p_ITSNsigmaPr", 0.0, "min p for proton exclusion in ITS"};
172170
Configurable<float> cfg_max_p_ITSNsigmaPr{"cfg_max_p_ITSNsigmaPr", 0.0, "max p for proton exclusion in ITS"};
173171
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};
172+
Configurable<bool> includeITSsa{"includeITSsa", false, "Flag to enable ITSsa tracks"};
173+
Configurable<float> cfg_max_pt_track_ITSsa{"cfg_max_pt_track_ITSsa", 0.15, "max pt for ITSsa tracks"};
174174

175175
// configuration for PID ML
176176
Configurable<std::vector<std::string>> onnxFileNames{"onnxFileNames", std::vector<std::string>{"filename"}, "ONNX file names for each bin (if not from CCDB full path)"};
@@ -391,13 +391,14 @@ struct SingleTrackQC {
391391
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
392392
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
393393
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
394-
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);
394+
fDielectronCut.SetMeanClusterSizeITS(dielectroncuts.cfg_min_its_cluster_size, dielectroncuts.cfg_max_its_cluster_size);
395395
fDielectronCut.SetTrackMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
396396
fDielectronCut.SetTrackMaxDcaZ(dielectroncuts.cfg_max_dcaz);
397397
fDielectronCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);
398398
fDielectronCut.RequireITSib1st(dielectroncuts.cfg_require_itsib_1st);
399399
fDielectronCut.SetChi2TOF(0.0, dielectroncuts.cfg_max_chi2tof);
400400
fDielectronCut.SetRelDiffPin(dielectroncuts.cfg_min_rel_diff_pin, dielectroncuts.cfg_max_rel_diff_pin);
401+
fDielectronCut.IncludeITSsa(dielectroncuts.includeITSsa, dielectroncuts.cfg_max_pt_track_ITSsa);
401402

402403
// for eID
403404
fDielectronCut.SetPIDScheme(dielectroncuts.cfg_pid_scheme);

0 commit comments

Comments
 (0)