Skip to content

Commit

Permalink
[PWGEM/Dilepton] add ITS n sigma Ka, Pr exclusion (#9277)
Browse files Browse the repository at this point in the history
  • Loading branch information
dsekihat authored Jan 11, 2025
1 parent d632a38 commit 08176b1
Show file tree
Hide file tree
Showing 8 changed files with 219 additions and 55 deletions.
46 changes: 46 additions & 0 deletions PWGEM/Dilepton/Core/DielectronCut.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,52 @@ void DielectronCut::SetTOFNsigmaPrRange(float min, float max)
mMaxTOFNsigmaPr = max;
LOG(info) << "Dielectron Cut, set TOF n sigma Pr range: " << mMinTOFNsigmaPr << " - " << mMaxTOFNsigmaPr;
}

void DielectronCut::SetITSNsigmaElRange(float min, float max)
{
mMinITSNsigmaEl = min;
mMaxITSNsigmaEl = max;
LOG(info) << "Dielectron Cut, set ITS n sigma El range: " << mMinITSNsigmaEl << " - " << mMaxITSNsigmaEl;
}
void DielectronCut::SetITSNsigmaMuRange(float min, float max)
{
mMinITSNsigmaMu = min;
mMaxITSNsigmaMu = max;
LOG(info) << "Dielectron Cut, set ITS n sigma Mu range: " << mMinITSNsigmaMu << " - " << mMaxITSNsigmaMu;
}
void DielectronCut::SetITSNsigmaPiRange(float min, float max)
{
mMinITSNsigmaPi = min;
mMaxITSNsigmaPi = max;
LOG(info) << "Dielectron Cut, set ITS n sigma Pi range: " << mMinITSNsigmaPi << " - " << mMaxITSNsigmaPi;
}
void DielectronCut::SetITSNsigmaKaRange(float min, float max)
{
mMinITSNsigmaKa = min;
mMaxITSNsigmaKa = max;
LOG(info) << "Dielectron Cut, set ITS n sigma Ka range: " << mMinITSNsigmaKa << " - " << mMaxITSNsigmaKa;
}
void DielectronCut::SetITSNsigmaPrRange(float min, float max)
{
mMinITSNsigmaPr = min;
mMaxITSNsigmaPr = max;
LOG(info) << "Dielectron Cut, set ITS n sigma Pr range: " << mMinITSNsigmaPr << " - " << mMaxITSNsigmaPr;
}

void DielectronCut::SetPRangeForITSNsigmaKa(float min, float max)
{
mMinP_ITSNsigmaKa = min;
mMaxP_ITSNsigmaKa = max;
LOG(info) << "Dielectron Cut, set p range for ITS n sigma Ka: " << mMinP_ITSNsigmaKa << " - " << mMaxP_ITSNsigmaKa;
}

void DielectronCut::SetPRangeForITSNsigmaPr(float min, float max)
{
mMinP_ITSNsigmaPr = min;
mMaxP_ITSNsigmaPr = max;
LOG(info) << "Dielectron Cut, set p range for ITS n sigma Pr: " << mMinP_ITSNsigmaPr << " - " << mMaxP_ITSNsigmaPr;
}

void DielectronCut::SetMaxPinMuonTPConly(float max)
{
mMaxPinMuonTPConly = max;
Expand Down
68 changes: 43 additions & 25 deletions PWGEM/Dilepton/Core/DielectronCut.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,16 +59,6 @@ class DielectronCut : public TNamed
kTPCFracSharedClusters,
kRelDiffPin,
kTPCChi2NDF,
kTPCNsigmaEl,
kTPCNsigmaMu,
kTPCNsigmaPi,
kTPCNsigmaKa,
kTPCNsigmaPr,
kTOFNsigmaEl,
kTOFNsigmaMu,
kTOFNsigmaPi,
kTOFNsigmaKa,
kTOFNsigmaPr,
kDCA3Dsigma,
kDCAxy,
kDCAz,
Expand Down Expand Up @@ -297,7 +287,9 @@ class DielectronCut : public TNamed
bool is_el_included_TPC = mMinTPCNsigmaEl < track.tpcNSigmaEl() && track.tpcNSigmaEl() < mMaxTPCNsigmaEl;
bool is_pi_excluded_TPC = track.tpcInnerParam() < mMaxPinForPionRejectionTPC ? (track.tpcNSigmaPi() < mMinTPCNsigmaPi || mMaxTPCNsigmaPi < track.tpcNSigmaPi()) : true;
bool is_el_included_TOF = (mMinTOFNsigmaEl < track.tofNSigmaEl() && track.tofNSigmaEl() < mMaxTOFNsigmaEl) && (track.hasTOF() && track.tofChi2() < mMaxChi2TOF);
return is_el_included_TPC && is_pi_excluded_TPC && is_el_included_TOF;
bool is_ka_excluded_ITS = (mMinP_ITSNsigmaKa < track.p() && track.p() < mMaxP_ITSNsigmaKa) ? (track.itsNSigmaKa() < mMinITSNsigmaKa || mMaxITSNsigmaKa < track.itsNSigmaKa()) : true;
bool is_pr_excluded_ITS = (mMinP_ITSNsigmaPr < track.p() && track.p() < mMaxP_ITSNsigmaPr) ? (track.itsNSigmaPr() < mMinITSNsigmaPr || mMaxITSNsigmaPr < track.itsNSigmaPr()) : true;
return is_el_included_TPC && is_pi_excluded_TPC && is_el_included_TOF && is_ka_excluded_ITS && is_pr_excluded_ITS;
}

template <typename T>
Expand All @@ -309,14 +301,18 @@ class DielectronCut : public TNamed
bool is_ka_excluded_TPC = track.tpcNSigmaKa() < mMinTPCNsigmaKa || mMaxTPCNsigmaKa < track.tpcNSigmaKa();
bool is_pr_excluded_TPC = track.tpcNSigmaPr() < mMinTPCNsigmaPr || mMaxTPCNsigmaPr < track.tpcNSigmaPr();
bool is_el_included_TOF = track.hasTOF() ? (mMinTOFNsigmaEl < track.tofNSigmaEl() && track.tofNSigmaEl() < mMaxTOFNsigmaEl && track.tofChi2() < mMaxChi2TOF) : true;
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;
bool is_ka_excluded_ITS = (mMinP_ITSNsigmaKa < track.p() && track.p() < mMaxP_ITSNsigmaKa) ? (track.itsNSigmaKa() < mMinITSNsigmaKa || mMaxITSNsigmaKa < track.itsNSigmaKa()) : true;
bool is_pr_excluded_ITS = (mMinP_ITSNsigmaPr < track.p() && track.p() < mMaxP_ITSNsigmaPr) ? (track.itsNSigmaPr() < mMinITSNsigmaPr || mMaxITSNsigmaPr < track.itsNSigmaPr()) : true;
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 && is_ka_excluded_ITS && is_pr_excluded_ITS;
}

template <typename T>
bool PassTPConly(T const& track) const
{
bool is_el_included_TPC = mMinTPCNsigmaEl < track.tpcNSigmaEl() && track.tpcNSigmaEl() < mMaxTPCNsigmaEl;
return is_el_included_TPC;
bool is_ka_excluded_ITS = (mMinP_ITSNsigmaKa < track.p() && track.p() < mMaxP_ITSNsigmaKa) ? (track.itsNSigmaKa() < mMinITSNsigmaKa || mMaxITSNsigmaKa < track.itsNSigmaKa()) : true;
bool is_pr_excluded_ITS = (mMinP_ITSNsigmaPr < track.p() && track.p() < mMaxP_ITSNsigmaPr) ? (track.itsNSigmaPr() < mMinITSNsigmaPr || mMaxITSNsigmaPr < track.itsNSigmaPr()) : true;
return is_el_included_TPC && is_ka_excluded_ITS && is_pr_excluded_ITS;
}

template <typename T>
Expand All @@ -327,7 +323,9 @@ class DielectronCut : public TNamed
bool is_pi_excluded_TPC = track.tpcInnerParam() < mMaxPinForPionRejectionTPC ? (track.tpcNSigmaPi() < mMinTPCNsigmaPi || mMaxTPCNsigmaPi < track.tpcNSigmaPi()) : true;
bool is_ka_excluded_TPC = track.tpcNSigmaKa() < mMinTPCNsigmaKa || mMaxTPCNsigmaKa < track.tpcNSigmaKa();
bool is_pr_excluded_TPC = track.tpcNSigmaPr() < mMinTPCNsigmaPr || mMaxTPCNsigmaPr < track.tpcNSigmaPr();
return is_el_included_TPC && is_mu_excluded_TPC && is_pi_excluded_TPC && is_ka_excluded_TPC && is_pr_excluded_TPC;
bool is_ka_excluded_ITS = (mMinP_ITSNsigmaKa < track.p() && track.p() < mMaxP_ITSNsigmaKa) ? (track.itsNSigmaKa() < mMinITSNsigmaKa || mMaxITSNsigmaKa < track.itsNSigmaKa()) : true;
bool is_pr_excluded_ITS = (mMinP_ITSNsigmaPr < track.p() && track.p() < mMaxP_ITSNsigmaPr) ? (track.itsNSigmaPr() < mMinITSNsigmaPr || mMaxITSNsigmaPr < track.itsNSigmaPr()) : true;
return is_el_included_TPC && is_mu_excluded_TPC && is_pi_excluded_TPC && is_ka_excluded_TPC && is_pr_excluded_TPC && is_ka_excluded_ITS && is_pr_excluded_ITS;
}

template <typename T>
Expand All @@ -336,7 +334,9 @@ class DielectronCut : public TNamed
bool is_el_included_TPC = mMinTPCNsigmaEl < track.tpcNSigmaEl() && track.tpcNSigmaEl() < mMaxTPCNsigmaEl;
bool is_pi_excluded_TPC = track.tpcInnerParam() < mMaxPinForPionRejectionTPC ? (track.tpcNSigmaPi() < mMinTPCNsigmaPi || mMaxTPCNsigmaPi < track.tpcNSigmaPi()) : true;
bool is_el_included_TOF = track.hasTOF() ? (mMinTOFNsigmaEl < track.tofNSigmaEl() && track.tofNSigmaEl() < mMaxTOFNsigmaEl && track.tofChi2() < mMaxChi2TOF) : true;
return is_el_included_TPC && is_pi_excluded_TPC && is_el_included_TOF;
bool is_ka_excluded_ITS = (mMinP_ITSNsigmaKa < track.p() && track.p() < mMaxP_ITSNsigmaKa) ? (track.itsNSigmaKa() < mMinITSNsigmaKa || mMaxITSNsigmaKa < track.itsNSigmaKa()) : true;
bool is_pr_excluded_ITS = (mMinP_ITSNsigmaPr < track.p() && track.p() < mMaxP_ITSNsigmaPr) ? (track.itsNSigmaPr() < mMinITSNsigmaPr || mMaxITSNsigmaPr < track.itsNSigmaPr()) : true;
return is_el_included_TPC && is_pi_excluded_TPC && is_el_included_TOF && is_ka_excluded_ITS && is_pr_excluded_ITS;
}

template <typename T>
Expand Down Expand Up @@ -425,16 +425,25 @@ class DielectronCut : public TNamed
void SetMinPinTOF(float min);
void SetMuonExclusionTPC(bool flag);
void SetTOFbetaRange(float min, float max);
void SetTPCNsigmaElRange(float min = -1e+10, float max = 1e+10);
void SetTPCNsigmaMuRange(float min = -1e+10, float max = 1e+10);
void SetTPCNsigmaPiRange(float min = -1e+10, float max = 1e+10);
void SetTPCNsigmaKaRange(float min = -1e+10, float max = 1e+10);
void SetTPCNsigmaPrRange(float min = -1e+10, float max = 1e+10);
void SetTOFNsigmaElRange(float min = -1e+10, float max = 1e+10);
void SetTOFNsigmaMuRange(float min = -1e+10, float max = 1e+10);
void SetTOFNsigmaPiRange(float min = -1e+10, float max = 1e+10);
void SetTOFNsigmaKaRange(float min = -1e+10, float max = 1e+10);
void SetTOFNsigmaPrRange(float min = -1e+10, float max = 1e+10);
void SetTPCNsigmaElRange(float min, float max);
void SetTPCNsigmaMuRange(float min, float max);
void SetTPCNsigmaPiRange(float min, float max);
void SetTPCNsigmaKaRange(float min, float max);
void SetTPCNsigmaPrRange(float min, float max);
void SetTOFNsigmaElRange(float min, float max);
void SetTOFNsigmaMuRange(float min, float max);
void SetTOFNsigmaPiRange(float min, float max);
void SetTOFNsigmaKaRange(float min, float max);
void SetTOFNsigmaPrRange(float min, float max);
void SetITSNsigmaElRange(float min, float max);
void SetITSNsigmaMuRange(float min, float max);
void SetITSNsigmaPiRange(float min, float max);
void SetITSNsigmaKaRange(float min, float max);
void SetITSNsigmaPrRange(float min, float max);

void SetPRangeForITSNsigmaKa(float min, float max);
void SetPRangeForITSNsigmaPr(float min, float max);

void SetMaxPinMuonTPConly(float max);
void SetMaxPinForPionRejectionTPC(float max);
void RequireITSibAny(bool flag);
Expand Down Expand Up @@ -518,6 +527,15 @@ class DielectronCut : public TNamed
float mMinTOFNsigmaPi{-1e+10}, mMaxTOFNsigmaPi{+1e+10};
float mMinTOFNsigmaKa{-1e+10}, mMaxTOFNsigmaKa{+1e+10};
float mMinTOFNsigmaPr{-1e+10}, mMaxTOFNsigmaPr{+1e+10};

float mMinITSNsigmaEl{-1e+10}, mMaxITSNsigmaEl{+1e+10};
float mMinITSNsigmaMu{-1e+10}, mMaxITSNsigmaMu{+1e+10};
float mMinITSNsigmaPi{-1e+10}, mMaxITSNsigmaPi{+1e+10};
float mMinITSNsigmaKa{-1e+10}, mMaxITSNsigmaKa{+1e+10};
float mMinITSNsigmaPr{-1e+10}, mMaxITSNsigmaPr{+1e+10};
float mMinP_ITSNsigmaKa{0.0}, mMaxP_ITSNsigmaKa{0.0};
float mMinP_ITSNsigmaPr{0.0}, mMaxP_ITSNsigmaPr{0.0};

o2::analysis::MlResponseDielectronSingleTrack<float>* mPIDMlResponse{nullptr};

ClassDef(DielectronCut, 1);
Expand Down
12 changes: 12 additions & 0 deletions PWGEM/Dilepton/Core/Dilepton.h
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,14 @@ struct Dilepton {
Configurable<float> cfg_min_TOFNsigmaEl{"cfg_min_TOFNsigmaEl", -3.0, "min. TOF n sigma for electron inclusion"};
Configurable<float> cfg_max_TOFNsigmaEl{"cfg_max_TOFNsigmaEl", +3.0, "max. TOF n sigma for electron inclusion"};
Configurable<float> cfg_max_pin_pirejTPC{"cfg_max_pin_pirejTPC", 1e+10, "max. pin for pion rejection in TPC"};
Configurable<float> cfg_min_ITSNsigmaKa{"cfg_min_ITSNsigmaKa", -1.0, "min. ITS n sigma for kaon exclusion"};
Configurable<float> cfg_max_ITSNsigmaKa{"cfg_max_ITSNsigmaKa", 1e+10, "max. ITS n sigma for kaon exclusion"};
Configurable<float> cfg_min_ITSNsigmaPr{"cfg_min_ITSNsigmaPr", -1.0, "min. ITS n sigma for proton exclusion"};
Configurable<float> cfg_max_ITSNsigmaPr{"cfg_max_ITSNsigmaPr", 1e+10, "max. ITS n sigma for proton exclusion"};
Configurable<float> cfg_min_p_ITSNsigmaKa{"cfg_min_p_ITSNsigmaKa", 0.0, "min p for kaon exclusion in ITS"};
Configurable<float> cfg_max_p_ITSNsigmaKa{"cfg_max_p_ITSNsigmaKa", 0.0, "max p for kaon exclusion in ITS"};
Configurable<float> cfg_min_p_ITSNsigmaPr{"cfg_min_p_ITSNsigmaPr", 0.0, "min p for proton exclusion in ITS"};
Configurable<float> cfg_max_p_ITSNsigmaPr{"cfg_max_p_ITSNsigmaPr", 0.0, "max p for proton exclusion in ITS"};
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};

// configuration for PID ML
Expand Down Expand Up @@ -681,6 +689,10 @@ struct Dilepton {
fDielectronCut.SetTPCNsigmaPrRange(dielectroncuts.cfg_min_TPCNsigmaPr, dielectroncuts.cfg_max_TPCNsigmaPr);
fDielectronCut.SetTOFNsigmaElRange(dielectroncuts.cfg_min_TOFNsigmaEl, dielectroncuts.cfg_max_TOFNsigmaEl);
fDielectronCut.SetMaxPinForPionRejectionTPC(dielectroncuts.cfg_max_pin_pirejTPC);
fDielectronCut.SetITSNsigmaKaRange(dielectroncuts.cfg_min_ITSNsigmaKa, dielectroncuts.cfg_max_ITSNsigmaKa);
fDielectronCut.SetITSNsigmaPrRange(dielectroncuts.cfg_min_ITSNsigmaPr, dielectroncuts.cfg_max_ITSNsigmaPr);
fDielectronCut.SetPRangeForITSNsigmaKa(dielectroncuts.cfg_min_p_ITSNsigmaKa, dielectroncuts.cfg_max_p_ITSNsigmaKa);
fDielectronCut.SetPRangeForITSNsigmaPr(dielectroncuts.cfg_min_p_ITSNsigmaPr, dielectroncuts.cfg_max_p_ITSNsigmaPr);

if (dielectroncuts.cfg_pid_scheme == static_cast<int>(DielectronCut::PIDSchemes::kPIDML)) { // please call this at the end of DefineDileptonCut
static constexpr int nClassesMl = 2;
Expand Down
20 changes: 16 additions & 4 deletions PWGEM/Dilepton/Core/DileptonMC.h
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,14 @@ struct DileptonMC {
Configurable<float> cfg_min_TOFNsigmaEl{"cfg_min_TOFNsigmaEl", -3.0, "min. TOF n sigma for electron inclusion"};
Configurable<float> cfg_max_TOFNsigmaEl{"cfg_max_TOFNsigmaEl", +3.0, "max. TOF n sigma for electron inclusion"};
Configurable<float> cfg_max_pin_pirejTPC{"cfg_max_pin_pirejTPC", 1e+10, "max. pin for pion rejection in TPC"};
Configurable<float> cfg_min_ITSNsigmaKa{"cfg_min_ITSNsigmaKa", -1.0, "min. ITS n sigma for kaon exclusion"};
Configurable<float> cfg_max_ITSNsigmaKa{"cfg_max_ITSNsigmaKa", 1e+10, "max. ITS n sigma for kaon exclusion"};
Configurable<float> cfg_min_ITSNsigmaPr{"cfg_min_ITSNsigmaPr", -1.0, "min. ITS n sigma for proton exclusion"};
Configurable<float> cfg_max_ITSNsigmaPr{"cfg_max_ITSNsigmaPr", 1e+10, "max. ITS n sigma for proton exclusion"};
Configurable<float> cfg_min_p_ITSNsigmaKa{"cfg_min_p_ITSNsigmaKa", 0.0, "min p for kaon exclusion in ITS"};
Configurable<float> cfg_max_p_ITSNsigmaKa{"cfg_max_p_ITSNsigmaKa", 0.0, "max p for kaon exclusion in ITS"};
Configurable<float> cfg_min_p_ITSNsigmaPr{"cfg_min_p_ITSNsigmaPr", 0.0, "min p for proton exclusion in ITS"};
Configurable<float> cfg_max_p_ITSNsigmaPr{"cfg_max_p_ITSNsigmaPr", 0.0, "max p for proton exclusion in ITS"};
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};

// configuration for PID ML
Expand Down Expand Up @@ -258,10 +266,10 @@ struct DileptonMC {

struct : ConfigurableGroup {
std::string prefix = "mctrackcut_group";
Configurable<float> min_mcPt{"min_mcPt", 0.1, "min. MC pT"};
Configurable<float> max_mcPt{"max_mcPt", 1e+10, "max. MC pT"};
Configurable<float> min_mcEta{"min_mcEta", -0.8, "max. MC eta"};
Configurable<float> max_mcEta{"max_mcEta", +0.8, "max. MC eta"};
Configurable<float> min_mcPt{"min_mcPt", 0.1, "min. MC pT for generated single lepton"};
Configurable<float> max_mcPt{"max_mcPt", 1e+10, "max. MC pT for generated single lepton"};
Configurable<float> min_mcEta{"min_mcEta", -0.8, "max. MC eta for generated single lepton"};
Configurable<float> max_mcEta{"max_mcEta", +0.8, "max. MC eta for generated single lepton"};
} mctrackcuts;

HistogramRegistry fRegistry{"output", {}, OutputObjHandlingPolicy::AnalysisObject, false, false};
Expand Down Expand Up @@ -588,6 +596,10 @@ struct DileptonMC {
fDielectronCut.SetTPCNsigmaPrRange(dielectroncuts.cfg_min_TPCNsigmaPr, dielectroncuts.cfg_max_TPCNsigmaPr);
fDielectronCut.SetTOFNsigmaElRange(dielectroncuts.cfg_min_TOFNsigmaEl, dielectroncuts.cfg_max_TOFNsigmaEl);
fDielectronCut.SetMaxPinForPionRejectionTPC(dielectroncuts.cfg_max_pin_pirejTPC);
fDielectronCut.SetITSNsigmaKaRange(dielectroncuts.cfg_min_ITSNsigmaKa, dielectroncuts.cfg_max_ITSNsigmaKa);
fDielectronCut.SetITSNsigmaPrRange(dielectroncuts.cfg_min_ITSNsigmaPr, dielectroncuts.cfg_max_ITSNsigmaPr);
fDielectronCut.SetPRangeForITSNsigmaKa(dielectroncuts.cfg_min_p_ITSNsigmaKa, dielectroncuts.cfg_max_p_ITSNsigmaKa);
fDielectronCut.SetPRangeForITSNsigmaPr(dielectroncuts.cfg_min_p_ITSNsigmaPr, dielectroncuts.cfg_max_p_ITSNsigmaPr);

if (dielectroncuts.cfg_pid_scheme == static_cast<int>(DielectronCut::PIDSchemes::kPIDML)) { // please call this at the end of DefineDileptonCut
static constexpr int nClassesMl = 2;
Expand Down
12 changes: 12 additions & 0 deletions PWGEM/Dilepton/Core/PhotonHBT.h
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,14 @@ struct PhotonHBT {
Configurable<float> cfg_min_TOFNsigmaEl{"cfg_min_TOFNsigmaEl", -3.0, "min. TOF n sigma for electron inclusion"};
Configurable<float> cfg_max_TOFNsigmaEl{"cfg_max_TOFNsigmaEl", +3.0, "max. TOF n sigma for electron inclusion"};
Configurable<float> cfg_max_pin_pirejTPC{"cfg_max_pin_pirejTPC", 0.5, "max. pin for pion rejection in TPC"};
Configurable<float> cfg_min_ITSNsigmaKa{"cfg_min_ITSNsigmaKa", -1.0, "min. ITS n sigma for kaon exclusion"};
Configurable<float> cfg_max_ITSNsigmaKa{"cfg_max_ITSNsigmaKa", 1e+10, "max. ITS n sigma for kaon exclusion"};
Configurable<float> cfg_min_ITSNsigmaPr{"cfg_min_ITSNsigmaPr", -1.0, "min. ITS n sigma for proton exclusion"};
Configurable<float> cfg_max_ITSNsigmaPr{"cfg_max_ITSNsigmaPr", 1e+10, "max. ITS n sigma for proton exclusion"};
Configurable<float> cfg_min_p_ITSNsigmaKa{"cfg_min_p_ITSNsigmaKa", 0.0, "min p for kaon exclusion in ITS"};
Configurable<float> cfg_max_p_ITSNsigmaKa{"cfg_max_p_ITSNsigmaKa", 0.0, "max p for kaon exclusion in ITS"};
Configurable<float> cfg_min_p_ITSNsigmaPr{"cfg_min_p_ITSNsigmaPr", 0.0, "min p for proton exclusion in ITS"};
Configurable<float> cfg_max_p_ITSNsigmaPr{"cfg_max_p_ITSNsigmaPr", 0.0, "max p for proton exclusion in ITS"};
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};

// configuration for PID ML
Expand Down Expand Up @@ -588,6 +596,10 @@ struct PhotonHBT {
fDielectronCut.SetTPCNsigmaPrRange(dielectroncuts.cfg_min_TPCNsigmaPr, dielectroncuts.cfg_max_TPCNsigmaPr);
fDielectronCut.SetTOFNsigmaElRange(dielectroncuts.cfg_min_TOFNsigmaEl, dielectroncuts.cfg_max_TOFNsigmaEl);
fDielectronCut.SetMaxPinForPionRejectionTPC(dielectroncuts.cfg_max_pin_pirejTPC);
fDielectronCut.SetITSNsigmaKaRange(dielectroncuts.cfg_min_ITSNsigmaKa, dielectroncuts.cfg_max_ITSNsigmaKa);
fDielectronCut.SetITSNsigmaPrRange(dielectroncuts.cfg_min_ITSNsigmaPr, dielectroncuts.cfg_max_ITSNsigmaPr);
fDielectronCut.SetPRangeForITSNsigmaKa(dielectroncuts.cfg_min_p_ITSNsigmaKa, dielectroncuts.cfg_max_p_ITSNsigmaKa);
fDielectronCut.SetPRangeForITSNsigmaPr(dielectroncuts.cfg_min_p_ITSNsigmaPr, dielectroncuts.cfg_max_p_ITSNsigmaPr);

if (dielectroncuts.cfg_pid_scheme == static_cast<int>(DielectronCut::PIDSchemes::kPIDML)) { // please call this at the end of DefineDileptonCut
static constexpr int nClassesMl = 2;
Expand Down
Loading

0 comments on commit 08176b1

Please sign in to comment.