Skip to content

Commit 4ba6045

Browse files
authored
[PWGEM] Adding the possibility to reject a radial region in PCM (#17079)
1 parent a1f49d4 commit 4ba6045

7 files changed

Lines changed: 28 additions & 8 deletions

File tree

PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,8 @@ struct Pi0EtaToGammaGamma {
137137
o2::framework::Configurable<float> cfg_max_eta_v0{"cfg_max_eta_v0", 0.8, "max eta for v0 photons at PV"};
138138
o2::framework::Configurable<float> cfg_min_v0radius{"cfg_min_v0radius", 4.0, "min v0 radius"};
139139
o2::framework::Configurable<float> cfg_max_v0radius{"cfg_max_v0radius", 90.0, "max v0 radius"};
140+
o2::framework::Configurable<float> cfg_midL_v0radius{"cfg_midL_v0radius", -1.0, "middle low v0 radius for rejection if >0"};
141+
o2::framework::Configurable<float> cfg_midH_v0radius{"cfg_midH_v0radius", -1.0, "middle high v0 radius for rejection if >0"};
140142
o2::framework::Configurable<float> cfg_max_alpha_ap{"cfg_max_alpha_ap", 0.95, "max alpha for AP cut"};
141143
o2::framework::Configurable<float> cfg_max_qt_ap{"cfg_max_qt_ap", 0.01, "max qT for AP cut"};
142144
o2::framework::Configurable<float> cfg_min_cospa{"cfg_min_cospa", 0.999, "min V0 CosPA"};
@@ -493,7 +495,7 @@ struct Pi0EtaToGammaGamma {
493495
fV0PhotonCut.SetMinCosPA(pcmcuts.cfg_min_cospa);
494496
fV0PhotonCut.SetMaxPCA(pcmcuts.cfg_max_pca);
495497
fV0PhotonCut.SetMaxChi2KF(pcmcuts.cfg_max_chi2kf);
496-
fV0PhotonCut.SetRxyRange(pcmcuts.cfg_min_v0radius, pcmcuts.cfg_max_v0radius);
498+
fV0PhotonCut.SetRxyRange(pcmcuts.cfg_min_v0radius, pcmcuts.cfg_max_v0radius, pcmcuts.cfg_midL_v0radius, pcmcuts.cfg_midH_v0radius);
497499
fV0PhotonCut.SetAPRange(pcmcuts.cfg_max_alpha_ap, pcmcuts.cfg_max_qt_ap);
498500
fV0PhotonCut.RejectITSib(pcmcuts.cfg_reject_v0_on_itsib);
499501

PWGEM/PhotonMeson/Core/Pi0EtaToGammaGammaMC.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,8 @@ struct Pi0EtaToGammaGammaMC {
128128
o2::framework::Configurable<float> cfg_max_eta_v0{"cfg_max_eta_v0", 0.8, "max eta for v0 photons at PV"};
129129
o2::framework::Configurable<float> cfg_min_v0radius{"cfg_min_v0radius", 4.0, "min v0 radius"};
130130
o2::framework::Configurable<float> cfg_max_v0radius{"cfg_max_v0radius", 90.0, "max v0 radius"};
131+
o2::framework::Configurable<float> cfg_midL_v0radius{"cfg_midL_v0radius", -1.0, "middle low v0 radius for rejection if >0"};
132+
o2::framework::Configurable<float> cfg_midH_v0radius{"cfg_midH_v0radius", -1.0, "middle high v0 radius for rejection if >0"};
131133
o2::framework::Configurable<float> cfg_max_alpha_ap{"cfg_max_alpha_ap", 0.95, "max alpha for AP cut"};
132134
o2::framework::Configurable<float> cfg_max_qt_ap{"cfg_max_qt_ap", 0.01, "max qT for AP cut"};
133135
o2::framework::Configurable<float> cfg_min_cospa{"cfg_min_cospa", 0.999, "min V0 CosPA"};
@@ -341,7 +343,7 @@ struct Pi0EtaToGammaGammaMC {
341343
fV0PhotonCut.SetMinCosPA(pcmcuts.cfg_min_cospa);
342344
fV0PhotonCut.SetMaxPCA(pcmcuts.cfg_max_pca);
343345
fV0PhotonCut.SetMaxChi2KF(pcmcuts.cfg_max_chi2kf);
344-
fV0PhotonCut.SetRxyRange(pcmcuts.cfg_min_v0radius, pcmcuts.cfg_max_v0radius);
346+
fV0PhotonCut.SetRxyRange(pcmcuts.cfg_min_v0radius, pcmcuts.cfg_max_v0radius, pcmcuts.cfg_midL_v0radius, pcmcuts.cfg_midH_v0radius);
345347
fV0PhotonCut.SetAPRange(pcmcuts.cfg_max_alpha_ap, pcmcuts.cfg_max_qt_ap);
346348
fV0PhotonCut.RejectITSib(pcmcuts.cfg_reject_v0_on_itsib);
347349

PWGEM/PhotonMeson/Core/V0PhotonCut.cxx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,17 @@ void V0PhotonCut::SetMaxMeePsiPairDep(std::function<float(float)> psiDepCut)
7777
mMaxMeePsiPairDep = psiDepCut;
7878
LOG(info) << "V0 Photon Cut, set max mee psi pair dep: " << mMaxMeePsiPairDep(0.1);
7979
}
80-
void V0PhotonCut::SetRxyRange(float min, float max)
80+
void V0PhotonCut::SetRxyRange(float min, float max, float midL, float midH)
8181
{
8282
mMinRxy = min;
8383
mMaxRxy = max;
84+
mMidRxyLow = midL;
85+
mMidRxyHigh = midH;
8486
LOG(info) << "V0 Photon selection, set Rxy range: " << mMinRxy << " - " << mMaxRxy;
87+
if (midL >= 0.f && midH >= 0.f && midH > midL) {
88+
LOG(info) << "Rejecting Rxy interval: "
89+
<< mMidRxyLow << " - " << mMidRxyHigh;
90+
}
8591
}
8692
void V0PhotonCut::SetMinCosPA(float min)
8793
{

PWGEM/PhotonMeson/Core/V0PhotonCut.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -864,6 +864,10 @@ class V0PhotonCut : public TNamed
864864
if (v0.v0radius() < mMinRxy || mMaxRxy < v0.v0radius()) {
865865
return false;
866866
}
867+
if (mMidRxyLow > 0.f && mMidRxyHigh > 0.f &&
868+
v0.v0radius() >= mMidRxyLow && v0.v0radius() <= mMidRxyHigh) {
869+
return false;
870+
}
867871
return true;
868872
}
869873

@@ -1093,7 +1097,7 @@ class V0PhotonCut : public TNamed
10931097
void SetPsiPairRange(float min = -3.15, float max = +3.15);
10941098
void SetPhivPairRange(float min = 0.f, float max = +3.15);
10951099
void SetAPRange(float max_alpha = 0.95, float max_qt = 0.05); // Armenteros Podolanski
1096-
void SetRxyRange(float min = 0.f, float max = 180.f);
1100+
void SetRxyRange(float min = 0.f, float max = 180.f, float midL = -1.f, float midH = -1.f);
10971101
void SetMinCosPA(float min = 0.95);
10981102
void SetMaxPCA(float max = 2.f);
10991103
void SetMaxChi2KF(float max = 1e+10);
@@ -1169,6 +1173,7 @@ class V0PhotonCut : public TNamed
11691173
float mMinPsiPair{-3.15}, mMaxPsiPair{+3.15};
11701174
float mMinPhivPair{0.f}, mMaxPhivPair{+3.15};
11711175
float mMinRxy{0.f}, mMaxRxy{180.f};
1176+
float mMidRxyLow{-1.f}, mMidRxyHigh{-1.f};
11721177
float mMinCosPA{0.95};
11731178
float mMaxPCA{2.f};
11741179
float mMaxChi2KF{1e+10};

PWGEM/PhotonMeson/Tasks/pcmQC.cxx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ struct PCMQC {
107107
Configurable<float> cfg_max_eta_v0{"cfg_max_eta_v0", +0.8, "max eta for v0 photons at PV"};
108108
Configurable<float> cfg_min_v0radius{"cfg_min_v0radius", 4.0, "min v0 radius"};
109109
Configurable<float> cfg_max_v0radius{"cfg_max_v0radius", 90.0, "max v0 radius"};
110+
Configurable<float> cfg_midL_v0radius{"cfg_midL_v0radius", -1.0, "middle low v0 radius for rejection if >0"};
111+
Configurable<float> cfg_midH_v0radius{"cfg_midH_v0radius", -1.0, "middle high v0 radius for rejection if >0"};
110112
Configurable<float> cfg_max_alpha_ap{"cfg_max_alpha_ap", 0.95, "max alpha for AP cut"};
111113
Configurable<float> cfg_max_qt_ap{"cfg_max_qt_ap", 0.01, "max qT for AP cut"};
112114
Configurable<float> cfg_min_cospa{"cfg_min_cospa", 0.999, "min V0 CosPA"};
@@ -320,7 +322,7 @@ struct PCMQC {
320322
fV0PhotonCut.SetMinCosPA(pcmcuts.cfg_min_cospa);
321323
fV0PhotonCut.SetMaxPCA(pcmcuts.cfg_max_pca);
322324
fV0PhotonCut.SetMaxChi2KF(pcmcuts.cfg_max_chi2kf);
323-
fV0PhotonCut.SetRxyRange(pcmcuts.cfg_min_v0radius, pcmcuts.cfg_max_v0radius);
325+
fV0PhotonCut.SetRxyRange(pcmcuts.cfg_min_v0radius, pcmcuts.cfg_max_v0radius, pcmcuts.cfg_midL_v0radius, pcmcuts.cfg_midH_v0radius);
324326
fV0PhotonCut.SetAPRange(pcmcuts.cfg_max_alpha_ap, pcmcuts.cfg_max_qt_ap);
325327
fV0PhotonCut.RejectITSib(pcmcuts.cfg_reject_v0_on_itsib);
326328

@@ -513,7 +515,6 @@ struct PCMQC {
513515
for (const auto& v0 : v0photons_coll) {
514516
auto pos = v0.template posTrack_as<aod::V0Legs>();
515517
auto ele = v0.template negTrack_as<aod::V0Legs>();
516-
517518
if (!fV0PhotonCut.IsSelected<decltype(v0), aod::V0Legs>(v0)) {
518519
continue;
519520
}

PWGEM/PhotonMeson/Tasks/pcmQCMC.cxx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ struct PCMQCMC {
126126
Configurable<float> cfg_max_eta_v0{"cfg_max_eta_v0", +0.8, "max eta for v0 photons at PV"};
127127
Configurable<float> cfg_min_v0radius{"cfg_min_v0radius", 4.0, "min v0 radius"};
128128
Configurable<float> cfg_max_v0radius{"cfg_max_v0radius", 90.0, "max v0 radius"};
129+
Configurable<float> cfg_midL_v0radius{"cfg_midL_v0radius", -1.0, "middle low v0 radius for rejection if >0"};
130+
Configurable<float> cfg_midH_v0radius{"cfg_midH_v0radius", -1.0, "middle high v0 radius for rejection if >0"};
129131
Configurable<float> cfg_max_alpha_ap{"cfg_max_alpha_ap", 0.95, "max alpha for AP cut"};
130132
Configurable<float> cfg_max_qt_ap{"cfg_max_qt_ap", 0.01, "max qT for AP cut"};
131133
Configurable<float> cfg_min_cospa{"cfg_min_cospa", 0.999, "min V0 CosPA"};
@@ -404,7 +406,7 @@ struct PCMQCMC {
404406
fV0PhotonCut.SetMinCosPA(pcmcuts.cfg_min_cospa);
405407
fV0PhotonCut.SetMaxPCA(pcmcuts.cfg_max_pca);
406408
fV0PhotonCut.SetMaxChi2KF(pcmcuts.cfg_max_chi2kf);
407-
fV0PhotonCut.SetRxyRange(pcmcuts.cfg_min_v0radius, pcmcuts.cfg_max_v0radius);
409+
fV0PhotonCut.SetRxyRange(pcmcuts.cfg_min_v0radius, pcmcuts.cfg_max_v0radius, pcmcuts.cfg_midL_v0radius, pcmcuts.cfg_midH_v0radius);
408410
fV0PhotonCut.SetAPRange(pcmcuts.cfg_max_alpha_ap, pcmcuts.cfg_max_qt_ap);
409411
fV0PhotonCut.RejectITSib(pcmcuts.cfg_reject_v0_on_itsib);
410412

PWGEM/PhotonMeson/Tasks/prefilterPhoton.cxx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ struct prefilterPhoton {
110110
Configurable<float> cfg_max_eta_v0{"cfg_max_eta_v0", +0.9, "max eta for v0 photons at PV"};
111111
Configurable<float> cfg_min_v0radius{"cfg_min_v0radius", 4.0, "min v0 radius"};
112112
Configurable<float> cfg_max_v0radius{"cfg_max_v0radius", 90.0, "max v0 radius"};
113+
Configurable<float> cfg_midL_v0radius{"cfg_midL_v0radius", -1.0, "middle low v0 radius for rejection if >0"};
114+
Configurable<float> cfg_midH_v0radius{"cfg_midH_v0radius", -1.0, "middle high v0 radius for rejection if >0"};
113115
Configurable<float> cfg_max_alpha_ap{"cfg_max_alpha_ap", 0.95, "max alpha for AP cut"};
114116
Configurable<float> cfg_max_qt_ap{"cfg_max_qt_ap", 0.01, "max qT for AP cut"};
115117
Configurable<float> cfg_min_cospa{"cfg_min_cospa", 0.99, "min V0 CosPA"};
@@ -274,7 +276,7 @@ struct prefilterPhoton {
274276
fV0PhotonCut.SetMinCosPA(pcmcuts.cfg_min_cospa);
275277
fV0PhotonCut.SetMaxPCA(pcmcuts.cfg_max_pca);
276278
fV0PhotonCut.SetMaxChi2KF(pcmcuts.cfg_max_chi2kf);
277-
fV0PhotonCut.SetRxyRange(pcmcuts.cfg_min_v0radius, pcmcuts.cfg_max_v0radius);
279+
fV0PhotonCut.SetRxyRange(pcmcuts.cfg_min_v0radius, pcmcuts.cfg_max_v0radius, pcmcuts.cfg_midL_v0radius, pcmcuts.cfg_midH_v0radius);
278280
fV0PhotonCut.SetAPRange(pcmcuts.cfg_max_alpha_ap, pcmcuts.cfg_max_qt_ap);
279281
fV0PhotonCut.RejectITSib(pcmcuts.cfg_reject_v0_on_itsib);
280282

0 commit comments

Comments
 (0)