Skip to content

Commit

Permalink
PWGEM/Dilepton: add possibility to select phi range (AliceO2Group#7655)
Browse files Browse the repository at this point in the history
  • Loading branch information
dsekihat authored Sep 11, 2024
1 parent c9b0703 commit 8157f5d
Show file tree
Hide file tree
Showing 8 changed files with 66 additions and 53 deletions.
43 changes: 6 additions & 37 deletions PWGEM/Dilepton/Core/DielectronCut.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@

ClassImp(DielectronCut);

const char* DielectronCut::mCutNames[static_cast<int>(DielectronCut::DielectronCuts::kNCuts)] = {"Mee", "PairPtRange", "PairRapidityRange", "PairDCARange", "PhivPair", "TrackPtRange", "TrackEtaRange", "TPCNCls", "TPCCrossedRows", "TPCCrossedRowsOverNCls", "TPCChi2NDF", "TPCNsigmaEl", "TPCNsigmaMu", "TPCNsigmaPi", "TPCNsigmaKa", "TPCNsigmaPr", "TOFNsigmaEl", "TOFNsigmaMu", "TOFNsigmaPi", "TOFNsigmaKa", "TOFNsigmaPr", "DCA3Dsigma", "DCAxy", "DCAz", "ITSNCls", "ITSChi2NDF", "ITSClusterSize", "Prefilter"};

const std::pair<int8_t, std::set<uint8_t>> DielectronCut::its_ib_any_Requirement = {1, {0, 1, 2}}; // hits on any ITS ib layers.
const std::pair<int8_t, std::set<uint8_t>> DielectronCut::its_ib_1st_Requirement = {1, {0}}; // hit on 1st ITS ib layers.

Expand Down Expand Up @@ -69,6 +67,12 @@ void DielectronCut::SetTrackEtaRange(float minEta, float maxEta)
mMaxTrackEta = maxEta;
LOG(info) << "Dielectron Cut, set track eta range: " << mMinTrackEta << " - " << mMaxTrackEta;
}
void DielectronCut::SetTrackPhiRange(float minPhi, float maxPhi)
{
mMinTrackPhi = minPhi;
mMaxTrackPhi = maxPhi;
LOG(info) << "Dielectron Cut, set track phi range (rad.): " << mMinTrackPhi << " - " << mMaxTrackPhi;
}
void DielectronCut::SetMinNClustersTPC(int minNClustersTPC)
{
mMinNClustersTPC = minNClustersTPC;
Expand Down Expand Up @@ -248,38 +252,3 @@ void DielectronCut::RequireITSib1st(bool flag)
mRequireITSib1st = flag;
LOG(info) << "Dielectron Cut, require ITS ib 1st: " << mRequireITSib1st;
}

void DielectronCut::print() const
{
LOG(info) << "Dalitz EE Cut:";
for (int i = 0; i < static_cast<int>(DielectronCuts::kNCuts); i++) {
switch (static_cast<DielectronCuts>(i)) {
case DielectronCuts::kTrackPtRange:
LOG(info) << mCutNames[i] << " in [" << mMinTrackPt << ", " << mMaxTrackPt << "]";
break;
case DielectronCuts::kTrackEtaRange:
LOG(info) << mCutNames[i] << " in [" << mMinTrackEta << ", " << mMaxTrackEta << "]";
break;
case DielectronCuts::kTPCNCls:
LOG(info) << mCutNames[i] << " > " << mMinNClustersTPC;
break;
case DielectronCuts::kTPCCrossedRows:
LOG(info) << mCutNames[i] << " > " << mMinNCrossedRowsTPC;
break;
case DielectronCuts::kTPCCrossedRowsOverNCls:
LOG(info) << mCutNames[i] << " > " << mMinNCrossedRowsOverFindableClustersTPC;
break;
case DielectronCuts::kTPCChi2NDF:
LOG(info) << mCutNames[i] << " < " << mMaxChi2PerClusterTPC;
break;
case DielectronCuts::kDCAxy:
LOG(info) << mCutNames[i] << " < " << mMaxDcaXY;
break;
case DielectronCuts::kDCAz:
LOG(info) << mCutNames[i] << " < " << mMaxDcaZ;
break;
default:
LOG(fatal) << "Cut unknown!";
}
}
}
17 changes: 11 additions & 6 deletions PWGEM/Dilepton/Core/DielectronCut.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ class DielectronCut : public TNamed
// track cut
kTrackPtRange,
kTrackEtaRange,
kTrackPhiRange,
kTPCNCls,
kTPCCrossedRows,
kTPCCrossedRowsOverNCls,
Expand All @@ -75,7 +76,6 @@ class DielectronCut : public TNamed
kPrefilter,
kNCuts
};
static const char* mCutNames[static_cast<int>(DielectronCuts::kNCuts)];

enum class PIDSchemes : int {
kUnDef = -1,
Expand Down Expand Up @@ -147,6 +147,9 @@ class DielectronCut : public TNamed
if (!IsSelectedTrack(track, DielectronCuts::kTrackEtaRange)) {
return false;
}
if (!IsSelectedTrack(track, DielectronCuts::kTrackPhiRange)) {
return false;
}
if (!IsSelectedTrack(track, DielectronCuts::kDCA3Dsigma)) {
return false;
}
Expand Down Expand Up @@ -314,6 +317,9 @@ class DielectronCut : public TNamed
case DielectronCuts::kTrackEtaRange:
return track.eta() >= mMinTrackEta && track.eta() <= mMaxTrackEta;

case DielectronCuts::kTrackPhiRange:
return track.phi() >= mMinTrackPhi && track.phi() <= mMaxTrackPhi;

case DielectronCuts::kTPCNCls:
return track.tpcNClsFound() >= mMinNClustersTPC;

Expand Down Expand Up @@ -362,6 +368,7 @@ class DielectronCut : public TNamed

void SetTrackPtRange(float minPt = 0.f, float maxPt = 1e10f);
void SetTrackEtaRange(float minEta = -1e10f, float maxEta = 1e10f);
void SetTrackPhiRange(float minPhi = 0.f, float maxPhi = 2.f * M_PI);
void SetMinNClustersTPC(int minNClustersTPC);
void SetMinNCrossedRowsTPC(int minNCrossedRowsTPC);
void SetMinNCrossedRowsOverFindableClustersTPC(float minNCrossedRowsOverFindableClustersTPC);
Expand Down Expand Up @@ -404,9 +411,6 @@ class DielectronCut : public TNamed
// Getters
bool IsPhotonConversionSelected() const { return mSelectPC; }

/// @brief Print the track selection
void print() const;

private:
static const std::pair<int8_t, std::set<uint8_t>> its_ib_any_Requirement;
static const std::pair<int8_t, std::set<uint8_t>> its_ib_1st_Requirement;
Expand All @@ -420,8 +424,9 @@ class DielectronCut : public TNamed
bool mSelectPC{false}; // flag to select photon conversion used in mMaxPhivPairMeeDep

// kinematic cuts
float mMinTrackPt{0.f}, mMaxTrackPt{1e10f}; // range in pT
float mMinTrackEta{-1e10f}, mMaxTrackEta{1e10f}; // range in eta
float mMinTrackPt{0.f}, mMaxTrackPt{1e10f}; // range in pT
float mMinTrackEta{-1e10f}, mMaxTrackEta{1e10f}; // range in eta
float mMinTrackPhi{0.f}, mMaxTrackPhi{2.f * M_PI}; // range in phi

// track quality cuts
int mMinNClustersTPC{0}; // min number of TPC clusters
Expand Down
10 changes: 8 additions & 2 deletions PWGEM/Dilepton/Core/Dilepton.h
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,8 @@ struct Dilepton {
Configurable<float> cfg_min_pt_track{"cfg_min_pt_track", 0.2, "min pT for single track"};
Configurable<float> cfg_min_eta_track{"cfg_min_eta_track", -0.8, "min eta for single track"};
Configurable<float> cfg_max_eta_track{"cfg_max_eta_track", +0.8, "max eta for single track"};
Configurable<float> cfg_min_phi_track{"cfg_min_phi_track", 0.f, "min phi for single track"};
Configurable<float> cfg_max_phi_track{"cfg_max_phi_track", 6.3, "max phi for single track"};
Configurable<int> cfg_min_ncluster_tpc{"cfg_min_ncluster_tpc", 0, "min ncluster tpc"};
Configurable<int> cfg_min_ncluster_its{"cfg_min_ncluster_its", 5, "min ncluster its"};
Configurable<int> cfg_min_ncrossedrows{"cfg_min_ncrossedrows", 100, "min ncrossed rows"};
Expand Down Expand Up @@ -207,6 +209,8 @@ struct Dilepton {
Configurable<float> cfg_min_pt_track{"cfg_min_pt_track", 0.1, "min pT for single track"};
Configurable<float> cfg_min_eta_track{"cfg_min_eta_track", -4.0, "min eta for single track"};
Configurable<float> cfg_max_eta_track{"cfg_max_eta_track", -2.5, "max eta for single track"};
Configurable<float> cfg_min_phi_track{"cfg_min_phi_track", 0.f, "min phi for single track"};
Configurable<float> cfg_max_phi_track{"cfg_max_phi_track", 6.3, "max phi for single track"};
Configurable<int> cfg_min_ncluster_mft{"cfg_min_ncluster_mft", 5, "min ncluster MFT"};
Configurable<int> cfg_min_ncluster_mch{"cfg_min_ncluster_mch", 5, "min ncluster MCH"};
Configurable<float> cfg_max_chi2{"cfg_max_chi2", 1e+10, "max chi2/NclsTPC"};
Expand Down Expand Up @@ -619,6 +623,7 @@ struct Dilepton {
// for track
fDielectronCut.SetTrackPtRange(dielectroncuts.cfg_min_pt_track, 1e+10f);
fDielectronCut.SetTrackEtaRange(dielectroncuts.cfg_min_eta_track, dielectroncuts.cfg_max_eta_track);
fDielectronCut.SetTrackPhiRange(dielectroncuts.cfg_min_phi_track, dielectroncuts.cfg_max_phi_track);
fDielectronCut.SetMinNClustersTPC(dielectroncuts.cfg_min_ncluster_tpc);
fDielectronCut.SetMinNCrossedRowsTPC(dielectroncuts.cfg_min_ncrossedrows);
fDielectronCut.SetMinNCrossedRowsOverFindableClustersTPC(0.8);
Expand Down Expand Up @@ -671,6 +676,7 @@ struct Dilepton {
fDimuonCut.SetTrackType(dimuoncuts.cfg_track_type);
fDimuonCut.SetTrackPtRange(dimuoncuts.cfg_min_pt_track, 1e10f);
fDimuonCut.SetTrackEtaRange(dimuoncuts.cfg_min_eta_track, dimuoncuts.cfg_max_eta_track);
fDimuonCut.SetTrackEtaRange(dimuoncuts.cfg_min_phi_track, dimuoncuts.cfg_max_phi_track);
fDimuonCut.SetNClustersMFT(dimuoncuts.cfg_min_ncluster_mft, 10);
fDimuonCut.SetNClustersMCHMID(dimuoncuts.cfg_min_ncluster_mch, 16);
fDimuonCut.SetChi2(0.f, dimuoncuts.cfg_max_chi2);
Expand Down Expand Up @@ -1017,14 +1023,14 @@ struct Dilepton {

SliceCache cache;
Preslice<MyElectrons> perCollision_electron = aod::emprimaryelectron::emeventId;
Filter trackFilter_electron = dielectroncuts.cfg_min_pt_track < o2::aod::track::pt && dielectroncuts.cfg_min_eta_track < o2::aod::track::eta && o2::aod::track::eta < dielectroncuts.cfg_max_eta_track && o2::aod::track::tpcChi2NCl < dielectroncuts.cfg_max_chi2tpc && o2::aod::track::itsChi2NCl < dielectroncuts.cfg_max_chi2its && nabs(o2::aod::track::dcaXY) < dielectroncuts.cfg_max_dcaxy && nabs(o2::aod::track::dcaZ) < dielectroncuts.cfg_max_dcaz;
Filter trackFilter_electron = dielectroncuts.cfg_min_pt_track < o2::aod::track::pt && dielectroncuts.cfg_min_eta_track < o2::aod::track::eta && o2::aod::track::eta < dielectroncuts.cfg_max_eta_track && dielectroncuts.cfg_min_phi_track < o2::aod::track::phi && o2::aod::track::phi < dielectroncuts.cfg_max_phi_track && o2::aod::track::tpcChi2NCl < dielectroncuts.cfg_max_chi2tpc && o2::aod::track::itsChi2NCl < dielectroncuts.cfg_max_chi2its && nabs(o2::aod::track::dcaXY) < dielectroncuts.cfg_max_dcaxy && nabs(o2::aod::track::dcaZ) < dielectroncuts.cfg_max_dcaz;
Filter pidFilter_electron = (dielectroncuts.cfg_min_TPCNsigmaEl < o2::aod::pidtpc::tpcNSigmaEl && o2::aod::pidtpc::tpcNSigmaEl < dielectroncuts.cfg_max_TPCNsigmaEl) && (o2::aod::pidtpc::tpcNSigmaPi < dielectroncuts.cfg_min_TPCNsigmaPi || dielectroncuts.cfg_max_TPCNsigmaPi < o2::aod::pidtpc::tpcNSigmaPi);
Filter ttcaFilter_electron = ifnode(dielectroncuts.enableTTCA.node(), o2::aod::emprimaryelectron::isAssociatedToMPC == true || o2::aod::emprimaryelectron::isAssociatedToMPC == false, o2::aod::emprimaryelectron::isAssociatedToMPC == true);
Partition<FilteredMyElectrons> positive_electrons = o2::aod::emprimaryelectron::sign > int8_t(0);
Partition<FilteredMyElectrons> negative_electrons = o2::aod::emprimaryelectron::sign < int8_t(0);

Preslice<MyMuons> perCollision_muon = aod::emprimarymuon::emeventId;
Filter trackFilter_muon = o2::aod::fwdtrack::trackType == dimuoncuts.cfg_track_type && dimuoncuts.cfg_min_pt_track < o2::aod::fwdtrack::pt && dimuoncuts.cfg_min_eta_track < o2::aod::fwdtrack::eta && o2::aod::fwdtrack::eta < dimuoncuts.cfg_max_eta_track;
Filter trackFilter_muon = o2::aod::fwdtrack::trackType == dimuoncuts.cfg_track_type && dimuoncuts.cfg_min_pt_track < o2::aod::fwdtrack::pt && dimuoncuts.cfg_min_eta_track < o2::aod::fwdtrack::eta && o2::aod::fwdtrack::eta < dimuoncuts.cfg_max_eta_track && dimuoncuts.cfg_min_phi_track < o2::aod::fwdtrack::phi && o2::aod::fwdtrack::phi < dimuoncuts.cfg_max_phi_track;
Filter ttcaFilter_muon = ifnode(dimuoncuts.enableTTCA.node(), o2::aod::emprimarymuon::isAssociatedToMPC == true || o2::aod::emprimarymuon::isAssociatedToMPC == false, o2::aod::emprimarymuon::isAssociatedToMPC == true);
Partition<FilteredMyMuons> positive_muons = o2::aod::emprimarymuon::sign > int8_t(0);
Partition<FilteredMyMuons> negative_muons = o2::aod::emprimarymuon::sign < int8_t(0);
Expand Down
10 changes: 8 additions & 2 deletions PWGEM/Dilepton/Core/DileptonMC.h
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,8 @@ struct DileptonMC {
Configurable<float> cfg_min_pt_track{"cfg_min_pt_track", 0.2, "min pT for single track"};
Configurable<float> cfg_min_eta_track{"cfg_min_eta_track", -0.8, "max eta for single track"};
Configurable<float> cfg_max_eta_track{"cfg_max_eta_track", +0.8, "max eta for single track"};
Configurable<float> cfg_min_phi_track{"cfg_min_phi_track", 0.f, "max phi for single track"};
Configurable<float> cfg_max_phi_track{"cfg_max_phi_track", 6.3, "max phi for single track"};
Configurable<int> cfg_min_ncluster_tpc{"cfg_min_ncluster_tpc", 0, "min ncluster tpc"};
Configurable<int> cfg_min_ncluster_its{"cfg_min_ncluster_its", 5, "min ncluster its"};
Configurable<int> cfg_min_ncrossedrows{"cfg_min_ncrossedrows", 100, "min ncrossed rows"};
Expand Down Expand Up @@ -190,6 +192,8 @@ struct DileptonMC {
Configurable<float> cfg_min_pt_track{"cfg_min_pt_track", 0.1, "min pT for single track"};
Configurable<float> cfg_min_eta_track{"cfg_min_eta_track", -4.0, "min eta for single track"};
Configurable<float> cfg_max_eta_track{"cfg_max_eta_track", -2.5, "max eta for single track"};
Configurable<float> cfg_min_phi_track{"cfg_min_phi_track", 0.f, "max phi for single track"};
Configurable<float> cfg_max_phi_track{"cfg_max_phi_track", 6.3, "max phi for single track"};
Configurable<int> cfg_min_ncluster_mft{"cfg_min_ncluster_mft", 5, "min ncluster MFT"};
Configurable<int> cfg_min_ncluster_mch{"cfg_min_ncluster_mch", 5, "min ncluster MCH"};
Configurable<float> cfg_max_chi2{"cfg_max_chi2", 1e+10, "max chi2/NclsTPC"};
Expand Down Expand Up @@ -489,6 +493,7 @@ struct DileptonMC {
// for track
fDielectronCut.SetTrackPtRange(dielectroncuts.cfg_min_pt_track, 1e+10f);
fDielectronCut.SetTrackEtaRange(-dielectroncuts.cfg_max_eta_track, +dielectroncuts.cfg_max_eta_track);
fDielectronCut.SetTrackPhiRange(-dielectroncuts.cfg_max_phi_track, +dielectroncuts.cfg_max_phi_track);
fDielectronCut.SetMinNClustersTPC(dielectroncuts.cfg_min_ncluster_tpc);
fDielectronCut.SetMinNCrossedRowsTPC(dielectroncuts.cfg_min_ncrossedrows);
fDielectronCut.SetMinNCrossedRowsOverFindableClustersTPC(0.8);
Expand Down Expand Up @@ -542,6 +547,7 @@ struct DileptonMC {
fDimuonCut.SetTrackType(dimuoncuts.cfg_track_type);
fDimuonCut.SetTrackPtRange(dimuoncuts.cfg_min_pt_track, 1e10f);
fDimuonCut.SetTrackEtaRange(dimuoncuts.cfg_min_eta_track, dimuoncuts.cfg_max_eta_track);
fDimuonCut.SetTrackPhiRange(dimuoncuts.cfg_min_phi_track, dimuoncuts.cfg_max_phi_track);
fDimuonCut.SetNClustersMFT(dimuoncuts.cfg_min_ncluster_mft, 10);
fDimuonCut.SetNClustersMCHMID(dimuoncuts.cfg_min_ncluster_mch, 16);
fDimuonCut.SetChi2(0.f, dimuoncuts.cfg_max_chi2);
Expand Down Expand Up @@ -876,12 +882,12 @@ struct DileptonMC {

SliceCache cache;
Preslice<MyMCElectrons> perCollision_electron = aod::emprimaryelectron::emeventId;
Filter trackFilter_electron = dielectroncuts.cfg_min_pt_track < o2::aod::track::pt && dielectroncuts.cfg_min_eta_track < o2::aod::track::eta && o2::aod::track::eta < dielectroncuts.cfg_max_eta_track && o2::aod::track::tpcChi2NCl < dielectroncuts.cfg_max_chi2tpc && o2::aod::track::itsChi2NCl < dielectroncuts.cfg_max_chi2its && nabs(o2::aod::track::dcaXY) < dielectroncuts.cfg_max_dcaxy && nabs(o2::aod::track::dcaZ) < dielectroncuts.cfg_max_dcaz;
Filter trackFilter_electron = dielectroncuts.cfg_min_pt_track < o2::aod::track::pt && dielectroncuts.cfg_min_eta_track < o2::aod::track::eta && o2::aod::track::eta < dielectroncuts.cfg_max_eta_track && dielectroncuts.cfg_min_phi_track < o2::aod::track::phi && o2::aod::track::phi < dielectroncuts.cfg_max_phi_track && o2::aod::track::tpcChi2NCl < dielectroncuts.cfg_max_chi2tpc && o2::aod::track::itsChi2NCl < dielectroncuts.cfg_max_chi2its && nabs(o2::aod::track::dcaXY) < dielectroncuts.cfg_max_dcaxy && nabs(o2::aod::track::dcaZ) < dielectroncuts.cfg_max_dcaz;
Filter pidFilter_electron = (dielectroncuts.cfg_min_TPCNsigmaEl < o2::aod::pidtpc::tpcNSigmaEl && o2::aod::pidtpc::tpcNSigmaEl < dielectroncuts.cfg_max_TPCNsigmaEl) && (o2::aod::pidtpc::tpcNSigmaPi < dielectroncuts.cfg_min_TPCNsigmaPi || dielectroncuts.cfg_max_TPCNsigmaPi < o2::aod::pidtpc::tpcNSigmaPi);
Filter ttcaFilter_electron = ifnode(dielectroncuts.enableTTCA.node(), o2::aod::emprimaryelectron::isAssociatedToMPC == true || o2::aod::emprimaryelectron::isAssociatedToMPC == false, o2::aod::emprimaryelectron::isAssociatedToMPC == true);

Preslice<MyMCMuons> perCollision_muon = aod::emprimarymuon::emeventId;
Filter trackFilter_muon = o2::aod::fwdtrack::trackType == dimuoncuts.cfg_track_type && dimuoncuts.cfg_min_pt_track < o2::aod::fwdtrack::pt && dimuoncuts.cfg_min_eta_track < o2::aod::fwdtrack::eta && o2::aod::fwdtrack::eta < dimuoncuts.cfg_max_eta_track;
Filter trackFilter_muon = o2::aod::fwdtrack::trackType == dimuoncuts.cfg_track_type && dimuoncuts.cfg_min_pt_track < o2::aod::fwdtrack::pt && dimuoncuts.cfg_min_eta_track < o2::aod::fwdtrack::eta && o2::aod::fwdtrack::eta < dimuoncuts.cfg_max_eta_track && dimuoncuts.cfg_min_phi_track < o2::aod::fwdtrack::phi && o2::aod::fwdtrack::phi < dimuoncuts.cfg_max_phi_track;
Filter ttcaFilter_muon = ifnode(dimuoncuts.enableTTCA.node(), o2::aod::emprimarymuon::isAssociatedToMPC == true || o2::aod::emprimarymuon::isAssociatedToMPC == false, o2::aod::emprimarymuon::isAssociatedToMPC == true);

Filter collisionFilter_centrality = (cfgCentMin < o2::aod::cent::centFT0M && o2::aod::cent::centFT0M < cfgCentMax) || (cfgCentMin < o2::aod::cent::centFT0A && o2::aod::cent::centFT0A < cfgCentMax) || (cfgCentMin < o2::aod::cent::centFT0C && o2::aod::cent::centFT0C < cfgCentMax);
Expand Down
6 changes: 6 additions & 0 deletions PWGEM/Dilepton/Core/DimuonCut.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,12 @@ void DimuonCut::SetTrackEtaRange(float minEta, float maxEta)
mMaxTrackEta = maxEta;
LOG(info) << "Dimuon Cut, set track eta range: " << mMinTrackEta << " - " << mMaxTrackEta;
}
void DimuonCut::SetTrackPhiRange(float minPhi, float maxPhi)
{
mMinTrackPhi = minPhi;
mMaxTrackPhi = maxPhi;
LOG(info) << "Dimuon Cut, set track phi range (rad.): " << mMinTrackPhi << " - " << mMaxTrackPhi;
}
void DimuonCut::SetChi2(float min, float max)
{
mMinChi2 = min;
Expand Down
13 changes: 11 additions & 2 deletions PWGEM/Dilepton/Core/DimuonCut.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ class DimuonCut : public TNamed
kTrackType,
kTrackPtRange,
kTrackEtaRange,
kTrackPhiRange,
kDCAxy,
kMFTNCls,
kMCHMIDNCls,
Expand Down Expand Up @@ -118,6 +119,9 @@ class DimuonCut : public TNamed
if (!IsSelectedTrack(track, DimuonCuts::kTrackEtaRange)) {
return false;
}
if (!IsSelectedTrack(track, DimuonCuts::kTrackPhiRange)) {
return false;
}
if (!IsSelectedTrack(track, DimuonCuts::kDCAxy)) {
return false;
}
Expand Down Expand Up @@ -159,6 +163,9 @@ class DimuonCut : public TNamed
case DimuonCuts::kTrackEtaRange:
return track.eta() > mMinTrackEta && track.eta() < mMaxTrackEta;

case DimuonCuts::kTrackPhiRange:
return track.phi() > mMinTrackPhi && track.phi() < mMaxTrackPhi;

case DimuonCuts::kDCAxy:
return mMinDcaXY < std::sqrt(std::pow(track.fwdDcaX(), 2) + std::pow(track.fwdDcaY(), 2)) && std::sqrt(std::pow(track.fwdDcaX(), 2) + std::pow(track.fwdDcaY(), 2)) < mMaxDcaXY;

Expand Down Expand Up @@ -197,6 +204,7 @@ class DimuonCut : public TNamed
void SetTrackType(int track_type); // 0: MFT-MCH-MID (global muon), 3: MCH-MID (standalone muon)
void SetTrackPtRange(float minPt = 0.f, float maxPt = 1e10f);
void SetTrackEtaRange(float minEta = -1e10f, float maxEta = 1e10f);
void SetTrackPhiRange(float minPhi = 0.f, float maxPhi = 2.f * M_PI);
void SetNClustersMFT(int min, int max);
void SetNClustersMCHMID(int min, int max);
void SetChi2(float min, float max);
Expand All @@ -214,8 +222,9 @@ class DimuonCut : public TNamed
float mMinPairDCAxy{0.f}, mMaxPairDCAxy{1e10f}; // range in 3D DCA in sigma

// kinematic cuts
float mMinTrackPt{0.f}, mMaxTrackPt{1e10f}; // range in pT
float mMinTrackEta{-1e10f}, mMaxTrackEta{1e10f}; // range in eta
float mMinTrackPt{0.f}, mMaxTrackPt{1e10f}; // range in pT
float mMinTrackEta{-1e10f}, mMaxTrackEta{1e10f}; // range in eta
float mMinTrackPhi{0.f}, mMaxTrackPhi{2.f * M_PI}; // range in phi

// track quality cuts
int mTrackType{3};
Expand Down
Loading

0 comments on commit 8157f5d

Please sign in to comment.