Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion PWGEM/Dilepton/Core/DielectronCut.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,11 @@ void DielectronCut::SetChi2PerClusterITS(float min, float max)
mMaxChi2PerClusterITS = max;
LOG(info) << "Dielectron Cut, set chi2 per cluster ITS range: " << mMinChi2PerClusterITS << " - " << mMaxChi2PerClusterITS;
}
void DielectronCut::SetMeanClusterSizeITSob(float min, float max)
void DielectronCut::SetMeanClusterSizeITS(float min, float max, float maxP)
{
mMinMeanClusterSizeITS = min;
mMaxMeanClusterSizeITS = max;
mMaxP_ITSClusterSize = maxP;
LOG(info) << "Dielectron Cut, set mean cluster size ITS range: " << mMinMeanClusterSizeITS << " - " << mMaxMeanClusterSizeITS;
}
void DielectronCut::SetDca3DRange(float min, float max)
Expand Down
7 changes: 4 additions & 3 deletions PWGEM/Dilepton/Core/DielectronCut.h
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ class DielectronCut : public TNamed
std::vector<float> inputFeatures{static_cast<float>(collision.numContrib()), track.p(), track.tgl(),
track.tpcNSigmaEl(), /*track.tpcNSigmaMu(),*/ track.tpcNSigmaPi(), track.tpcNSigmaKa(), track.tpcNSigmaPr(),
track.tofNSigmaEl(), /*track.tofNSigmaMu(),*/ track.tofNSigmaPi(), track.tofNSigmaKa(), track.tofNSigmaPr(),
track.meanClusterSizeITSob() * std::cos(std::atan(track.tgl()))};
track.meanClusterSizeITS() * std::cos(std::atan(track.tgl()))};

// calculate classifier
float prob_ele = mPIDModel->evalModel(inputFeatures)[0];
Expand Down Expand Up @@ -341,7 +341,7 @@ class DielectronCut : public TNamed
return mMinChi2PerClusterITS < track.itsChi2NCl() && track.itsChi2NCl() < mMaxChi2PerClusterITS;

case DielectronCuts::kITSCluserSize:
return mMinMeanClusterSizeITS < track.meanClusterSizeITSob() * std::cos(std::atan(track.tgl())) && track.meanClusterSizeITSob() * std::cos(std::atan(track.tgl())) < mMaxMeanClusterSizeITS;
return track.p() < mMaxP_ITSClusterSize ? mMinMeanClusterSizeITS < track.meanClusterSizeITS() * std::cos(std::atan(track.tgl())) && track.meanClusterSizeITS() * std::cos(std::atan(track.tgl())) < mMaxMeanClusterSizeITS : true;

case DielectronCuts::kPrefilter:
return track.pfb() <= 0;
Expand All @@ -367,7 +367,7 @@ class DielectronCut : public TNamed
void SetChi2PerClusterTPC(float min, float max);
void SetNClustersITS(int min, int max);
void SetChi2PerClusterITS(float min, float max);
void SetMeanClusterSizeITSob(float min, float max);
void SetMeanClusterSizeITS(float min, float max, float maxP = 0.f);

void SetPIDScheme(int scheme);
void SetMinPinTOF(float min);
Expand Down Expand Up @@ -440,6 +440,7 @@ class DielectronCut : public TNamed
bool mApplyPhiV{true};
bool mApplyPF{false};
float mMinMeanClusterSizeITS{-1e10f}, mMaxMeanClusterSizeITS{1e10f}; // max <its cluster size> x cos(Lmabda)
float mMaxP_ITSClusterSize{0.0};

// pid cuts
int mPIDScheme{-1};
Expand Down
2 changes: 1 addition & 1 deletion PWGEM/Dilepton/Core/Dilepton.h
Original file line number Diff line number Diff line change
Expand Up @@ -530,7 +530,7 @@ struct Dilepton {
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
fDielectronCut.SetMeanClusterSizeITSob(0, 16);
fDielectronCut.SetMeanClusterSizeITS(0, 16);
fDielectronCut.SetMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
fDielectronCut.SetMaxDcaZ(dielectroncuts.cfg_max_dcaz);

Expand Down
2 changes: 1 addition & 1 deletion PWGEM/Dilepton/Core/DileptonMC.h
Original file line number Diff line number Diff line change
Expand Up @@ -490,7 +490,7 @@ struct DileptonMC {
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
fDielectronCut.SetMeanClusterSizeITSob(0, 16);
fDielectronCut.SetMeanClusterSizeITS(0, 16);
fDielectronCut.SetMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
fDielectronCut.SetMaxDcaZ(dielectroncuts.cfg_max_dcaz);

Expand Down
5 changes: 4 additions & 1 deletion PWGEM/Dilepton/Core/PhotonHBT.h
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,9 @@ struct PhotonHBT {
Configurable<float> cfg_max_dcaz{"cfg_max_dcaz", 1.0, "max dca Z for single track in cm"};
Configurable<float> cfg_min_TOFbeta{"cfg_min_TOFbeta", 0.985, "min TOF beta for single track"}; //|beta - 1| < 0.015 corresponds to 3 sigma in pp
Configurable<float> cfg_max_TOFbeta{"cfg_max_TOFbeta", 1.015, "max TOF beta for single track"}; //|beta - 1| < 0.015 corresponds to 3 sigma in pp
Configurable<float> cfg_min_its_cluster_size{"cfg_min_its_cluster_size", 0.f, "min ITS cluster size"};
Configurable<float> cfg_max_its_cluster_size{"cfg_max_its_cluster_size", 16.f, "max ITS cluster size"};
Configurable<float> cfg_max_p_its_cluster_size{"cfg_max_p_its_cluster_size", 0.2, "max p to apply ITS cluster size cut"};

Configurable<int> cfg_pid_scheme{"cfg_pid_scheme", static_cast<int>(DielectronCut::PIDSchemes::kTPChadrejORTOFreq), "pid scheme [kTOFreq : 0, kTPChadrej : 1, kTPChadrejORTOFreq : 2, kTPConly : 3]"};
Configurable<float> cfg_min_TPCNsigmaEl{"cfg_min_TPCNsigmaEl", -2.0, "min. TPC n sigma for electron inclusion"};
Expand Down Expand Up @@ -463,7 +466,7 @@ struct PhotonHBT {
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
fDielectronCut.SetMeanClusterSizeITSob(0, 16);
fDielectronCut.SetMeanClusterSizeITS(dielectroncuts.cfg_min_its_cluster_size, dielectroncuts.cfg_max_its_cluster_size, dielectroncuts.cfg_max_p_its_cluster_size);
fDielectronCut.SetMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
fDielectronCut.SetMaxDcaZ(dielectroncuts.cfg_max_dcaz);

Expand Down
2 changes: 1 addition & 1 deletion PWGEM/Dilepton/Core/SingleTrackQC.h
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ struct SingleTrackQC {
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
fDielectronCut.SetMeanClusterSizeITSob(0, 16);
fDielectronCut.SetMeanClusterSizeITS(0, 16);
fDielectronCut.SetMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
fDielectronCut.SetMaxDcaZ(dielectroncuts.cfg_max_dcaz);
fDielectronCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);
Expand Down
2 changes: 1 addition & 1 deletion PWGEM/Dilepton/Core/SingleTrackQCMC.h
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ struct SingleTrackQCMC {
fDielectronCut.SetChi2PerClusterTPC(0.0, dielectroncuts.cfg_max_chi2tpc);
fDielectronCut.SetChi2PerClusterITS(0.0, dielectroncuts.cfg_max_chi2its);
fDielectronCut.SetNClustersITS(dielectroncuts.cfg_min_ncluster_its, 7);
fDielectronCut.SetMeanClusterSizeITSob(0, 16);
fDielectronCut.SetMeanClusterSizeITS(0, 16);
fDielectronCut.SetMaxDcaXY(dielectroncuts.cfg_max_dcaxy);
fDielectronCut.SetMaxDcaZ(dielectroncuts.cfg_max_dcaz);
fDielectronCut.RequireITSibAny(dielectroncuts.cfg_require_itsib_any);
Expand Down
10 changes: 10 additions & 0 deletions PWGEM/Dilepton/Tasks/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,16 @@ o2physics_add_dpl_workflow(single-electron-qc-mc
PUBLIC_LINK_LIBRARIES O2::Framework O2::DetectorsBase O2Physics::AnalysisCore O2Physics::MLCore O2Physics::PWGEMDileptonCore
COMPONENT_NAME Analysis)

o2physics_add_dpl_workflow(vp-pair-qc
SOURCES vpPairQC.cxx
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::MLCore O2Physics::PWGEMDileptonCore
COMPONENT_NAME Analysis)

o2physics_add_dpl_workflow(vp-pair-qc-mc
SOURCES vpPairQCMC.cxx
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::MLCore O2Physics::PWGEMDileptonCore
COMPONENT_NAME Analysis)

o2physics_add_dpl_workflow(single-muon-qc
SOURCES singleMuonQC.cxx
PUBLIC_LINK_LIBRARIES O2::Framework O2::DetectorsBase O2Physics::AnalysisCore O2Physics::PWGEMDileptonCore
Expand Down
Loading