From 1e4da0f54e34563496effbfc80385736f5b06421 Mon Sep 17 00:00:00 2001 From: Daiki Sekihata Date: Sun, 31 Aug 2025 00:59:06 +0200 Subject: [PATCH] PWGEM/Dilepton: update DielectronCut --- PWGEM/Dilepton/Core/DielectronCut.cxx | 5 ----- PWGEM/Dilepton/Core/DielectronCut.h | 28 +++++++++++---------------- 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/PWGEM/Dilepton/Core/DielectronCut.cxx b/PWGEM/Dilepton/Core/DielectronCut.cxx index 7f86c7babbe..5d943b77651 100644 --- a/PWGEM/Dilepton/Core/DielectronCut.cxx +++ b/PWGEM/Dilepton/Core/DielectronCut.cxx @@ -324,11 +324,6 @@ void DielectronCut::SetTOFNsigmaPrRange(float min, float max) // LOG(info) << "Dielectron Cut, set p range for ITS n sigma Pr: " << mMinP_ITSNsigmaPr << " - " << mMaxP_ITSNsigmaPr; // } -void DielectronCut::SetMaxPinMuonTPConly(float max) -{ - mMaxPinMuonTPConly = max; - LOG(info) << "Dielectron Cut, set max pin for Muon ID with TPC only: " << mMaxPinMuonTPConly; -} void DielectronCut::SetPinRangeForPionRejectionTPC(float min, float max) { mMinPinForPionRejectionTPC = min; diff --git a/PWGEM/Dilepton/Core/DielectronCut.h b/PWGEM/Dilepton/Core/DielectronCut.h index 50e6b518693..6b4930a0db1 100644 --- a/PWGEM/Dilepton/Core/DielectronCut.h +++ b/PWGEM/Dilepton/Core/DielectronCut.h @@ -65,7 +65,7 @@ class DielectronCut : public TNamed kDCAz, kITSNCls, kITSChi2NDF, - // kITSClusterSize, + kITSClusterSize, kPrefilter, kNCuts }; @@ -199,9 +199,9 @@ class DielectronCut : public TNamed return false; } - // if (!IsSelectedTrack(track, DielectronCuts::kITSClusterSize)) { - // return false; - // } + if (!IsSelectedTrack(track, DielectronCuts::kITSClusterSize)) { + return false; + } if (mRequireITSibAny) { 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); }); @@ -252,15 +252,8 @@ class DielectronCut : public TNamed } // PID cuts - if (track.hasITS() && !track.hasTPC() && !track.hasTRD() && !track.hasTOF()) { // ITSsa - float meanClusterSizeITS = track.meanClusterSizeITS() * std::cos(std::atan(track.tgl())); - if (meanClusterSizeITS < mMinMeanClusterSizeITS || mMaxMeanClusterSizeITS < meanClusterSizeITS) { - return false; - } - } else { // not ITSsa - if (!PassPID(track)) { - return false; - } + if (!PassPID(track)) { + return false; } return true; @@ -399,8 +392,8 @@ class DielectronCut : public TNamed bool is_in_phi_range = track.phi() > mMinTrackPhi && track.phi() < mMaxTrackPhi; return mRejectTrackPhi ? !is_in_phi_range : is_in_phi_range; } else { - double minTrackPhiMirror = mMinTrackPhi + TMath::Pi(); - double maxTrackPhiMirror = mMaxTrackPhi + TMath::Pi(); + float minTrackPhiMirror = mMinTrackPhi + M_PI; + float maxTrackPhiMirror = mMaxTrackPhi + M_PI; bool is_in_phi_range = (track.phi() > mMinTrackPhi && track.phi() < mMaxTrackPhi) || (track.phi() > minTrackPhiMirror && track.phi() < maxTrackPhiMirror); return mRejectTrackPhi ? !is_in_phi_range : is_in_phi_range; } @@ -438,6 +431,9 @@ class DielectronCut : public TNamed case DielectronCuts::kITSChi2NDF: return mMinChi2PerClusterITS < track.itsChi2NCl() && track.itsChi2NCl() < mMaxChi2PerClusterITS; + case DielectronCuts::kITSClusterSize: + return mMinMeanClusterSizeITS < track.meanClusterSizeITS() * std::cos(std::atan(track.tgl())) && track.meanClusterSizeITS() * std::cos(std::atan(track.tgl())) < mMaxMeanClusterSizeITS; + case DielectronCuts::kPrefilter: return track.pfb() <= 0; @@ -494,7 +490,6 @@ class DielectronCut : public TNamed // void SetPRangeForITSNsigmaKa(float min, float max); // void SetPRangeForITSNsigmaPr(float min, float max); - void SetMaxPinMuonTPConly(float max); void SetPinRangeForPionRejectionTPC(float min, float max); void RequireITSibAny(bool flag); void RequireITSib1st(bool flag); @@ -560,7 +555,6 @@ class DielectronCut : public TNamed float mMinRelDiffPin{-1e10f}, mMaxRelDiffPin{1e10f}; // max relative difference between p at TPC inner wall and p at PV int mMinNClustersITS{0}, mMaxNClustersITS{7}; // range in number of ITS clusters float mMinChi2PerClusterITS{-1e10f}, mMaxChi2PerClusterITS{1e10f}; // max its fit chi2 per ITS cluster - float mMaxPinMuonTPConly{0.2f}; // max pin cut for muon ID with TPConly float mMinPinForPionRejectionTPC{0.f}, mMaxPinForPionRejectionTPC{1e10f}; // pin range for pion rejection in TPC bool mRequireITSibAny{true}; bool mRequireITSib1st{false};