Skip to content

Commit 85d0309

Browse files
authored
[PWGEM/Dilepton] add possibility to select kNollInRof (AliceO2Group#8313)
1 parent 96724fd commit 85d0309

10 files changed

+101
-34
lines changed

PWGEM/Dilepton/Core/DielectronCut.h

+4-5
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include "PWGEM/Dilepton/Utils/EMTrackUtilities.h"
3434

3535
using namespace o2::aod::pwgem::dilepton::utils::emtrackutil;
36+
using namespace o2::aod::pwgem::dilepton::utils::pairutil;
3637

3738
class DielectronCut : public TNamed
3839
{
@@ -112,11 +113,9 @@ class DielectronCut : public TNamed
112113
ROOT::Math::PtEtaPhiMVector v2(t2.pt(), t2.eta(), t2.phi(), o2::constants::physics::MassElectron);
113114
ROOT::Math::PtEtaPhiMVector v12 = v1 + v2;
114115

115-
float dca_t1_3d = dca3DinSigma(t1);
116-
float dca_t2_3d = dca3DinSigma(t2);
117-
float dca_ee_3d = std::sqrt((dca_t1_3d * dca_t1_3d + dca_t2_3d * dca_t2_3d) / 2.);
118-
float phiv = o2::aod::pwgem::dilepton::utils::pairutil::getPhivPair(t1.px(), t1.py(), t1.pz(), t2.px(), t2.py(), t2.pz(), t1.sign(), t2.sign(), bz);
119-
float opAng = o2::aod::pwgem::dilepton::utils::pairutil::getOpeningAngle(t1.px(), t1.py(), t1.pz(), t2.px(), t2.py(), t2.pz());
116+
float dca_ee_3d = pairDCAQuadSum(dca3DinSigma(t1), dca3DinSigma(t2));
117+
float phiv = getPhivPair(t1.px(), t1.py(), t1.pz(), t2.px(), t2.py(), t2.pz(), t1.sign(), t2.sign(), bz);
118+
float opAng = getOpeningAngle(t1.px(), t1.py(), t1.pz(), t2.px(), t2.py(), t2.pz());
120119

121120
if (v12.M() < mMinMee || mMaxMee < v12.M()) {
122121
return false;

PWGEM/Dilepton/Core/Dilepton.h

+6
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,9 @@ struct Dilepton {
143143
Configurable<float> cfgFT0COccupancyMin{"cfgFT0COccupancyMin", -2, "min. FT0C occupancy"};
144144
Configurable<float> cfgFT0COccupancyMax{"cfgFT0COccupancyMax", 1000000000, "max. FT0C occupancy"};
145145
Configurable<bool> cfgRequireNoCollInTimeRangeStandard{"cfgRequireNoCollInTimeRangeStandard", false, "require no collision in time range standard"};
146+
Configurable<bool> cfgRequireNoCollInTimeRangeStrict{"cfgRequireNoCollInTimeRangeStrict", false, "require no collision in time range strict"};
147+
Configurable<bool> cfgRequireNoCollInITSROFStandard{"cfgRequireNoCollInITSROFStandard", false, "require no collision in time range standard"};
148+
Configurable<bool> cfgRequireNoCollInITSROFStrict{"cfgRequireNoCollInITSROFStrict", false, "require no collision in time range strict"};
146149
} eventcuts;
147150

148151
DielectronCut fDielectronCut;
@@ -602,6 +605,9 @@ struct Dilepton {
602605
fEMEventCut.SetRequireVertexITSTPC(eventcuts.cfgRequireVertexITSTPC);
603606
fEMEventCut.SetRequireGoodZvtxFT0vsPV(eventcuts.cfgRequireGoodZvtxFT0vsPV);
604607
fEMEventCut.SetRequireNoCollInTimeRangeStandard(eventcuts.cfgRequireNoCollInTimeRangeStandard);
608+
fEMEventCut.SetRequireNoCollInTimeRangeStrict(eventcuts.cfgRequireNoCollInTimeRangeStrict);
609+
fEMEventCut.SetRequireNoCollInITSROFStandard(eventcuts.cfgRequireNoCollInITSROFStandard);
610+
fEMEventCut.SetRequireNoCollInITSROFStrict(eventcuts.cfgRequireNoCollInITSROFStrict);
605611
}
606612

607613
o2::analysis::MlResponseDielectronSingleTrack<float> mlResponseSingleTrack;

PWGEM/Dilepton/Core/DileptonMC.h

+6-1
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,9 @@ struct DileptonMC {
123123
Configurable<float> cfgFT0COccupancyMin{"cfgFT0COccupancyMin", -2, "min. FT0C occupancy"};
124124
Configurable<float> cfgFT0COccupancyMax{"cfgFT0COccupancyMax", 1000000000, "max. FT0C occupancy"};
125125
Configurable<bool> cfgRequireNoCollInTimeRangeStandard{"cfgRequireNoCollInTimeRangeStandard", false, "require no collision in time range standard"};
126+
Configurable<bool> cfgRequireNoCollInTimeRangeStrict{"cfgRequireNoCollInTimeRangeStrict", false, "require no collision in time range strict"};
127+
Configurable<bool> cfgRequireNoCollInITSROFStandard{"cfgRequireNoCollInITSROFStandard", false, "require no collision in time range standard"};
128+
Configurable<bool> cfgRequireNoCollInITSROFStrict{"cfgRequireNoCollInITSROFStrict", false, "require no collision in time range strict"};
126129
} eventcuts;
127130

128131
DielectronCut fDielectronCut;
@@ -136,7 +139,6 @@ struct DileptonMC {
136139
Configurable<float> cfg_max_pair_y{"cfg_max_pair_y", +0.8, "max pair rapidity"};
137140
Configurable<float> cfg_min_pair_dca3d{"cfg_min_pair_dca3d", 0.0, "min pair dca3d in sigma"};
138141
Configurable<float> cfg_max_pair_dca3d{"cfg_max_pair_dca3d", 1e+10, "max pair dca3d in sigma"};
139-
140142
Configurable<bool> cfg_apply_phiv{"cfg_apply_phiv", true, "flag to apply phiv cut"};
141143
Configurable<bool> cfg_apply_pf{"cfg_apply_pf", false, "flag to apply phiv prefilter"};
142144
Configurable<float> cfg_phiv_slope{"cfg_phiv_slope", 0.0185, "slope for m vs. phiv"};
@@ -491,6 +493,9 @@ struct DileptonMC {
491493
fEMEventCut.SetRequireVertexITSTPC(eventcuts.cfgRequireVertexITSTPC);
492494
fEMEventCut.SetRequireGoodZvtxFT0vsPV(eventcuts.cfgRequireGoodZvtxFT0vsPV);
493495
fEMEventCut.SetRequireNoCollInTimeRangeStandard(eventcuts.cfgRequireNoCollInTimeRangeStandard);
496+
fEMEventCut.SetRequireNoCollInTimeRangeStrict(eventcuts.cfgRequireNoCollInTimeRangeStrict);
497+
fEMEventCut.SetRequireNoCollInITSROFStandard(eventcuts.cfgRequireNoCollInITSROFStandard);
498+
fEMEventCut.SetRequireNoCollInITSROFStrict(eventcuts.cfgRequireNoCollInITSROFStrict);
494499
}
495500

496501
o2::analysis::MlResponseDielectronSingleTrack<float> mlResponseSingleTrack;

PWGEM/Dilepton/Core/EMEventCut.cxx

+15-3
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,20 @@ void EMEventCut::SetRequireNoCollInTimeRangeStandard(bool flag)
7272
mRequireNoCollInTimeRangeStandard = flag;
7373
LOG(info) << "EM Event Cut, require No collision in time range standard: " << mRequireNoCollInTimeRangeStandard;
7474
}
75-
void EMEventCut::SetRequireNoCollInTimeRangeNarrow(bool flag)
75+
76+
void EMEventCut::SetRequireNoCollInTimeRangeStrict(bool flag)
77+
{
78+
mRequireNoCollInTimeRangeStrict = flag;
79+
LOG(info) << "EM Event Cut, require No collision in time range strict: " << mRequireNoCollInTimeRangeStrict;
80+
}
81+
void EMEventCut::SetRequireNoCollInITSROFStandard(bool flag)
82+
{
83+
mRequireNoCollInITSROFStandard = flag;
84+
LOG(info) << "EM Event Cut, require No collision in ITS TOF standard: " << mRequireNoCollInITSROFStandard;
85+
}
86+
87+
void EMEventCut::SetRequireNoCollInITSROFStrict(bool flag)
7688
{
77-
mRequireNoCollInTimeRangeNarrow = flag;
78-
LOG(info) << "EM Event Cut, require No collision in time range narrow: " << mRequireNoCollInTimeRangeNarrow;
89+
mRequireNoCollInITSROFStrict = flag;
90+
LOG(info) << "EM Event Cut, require No collision in ITS ROF strict: " << mRequireNoCollInITSROFStrict;
7991
}

PWGEM/Dilepton/Core/EMEventCut.h

+24-6
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ class EMEventCut : public TNamed
3939
kIsVertexITSTPC,
4040
kIsGoodZvtxFT0vsPV,
4141
kNoCollInTimeRangeStandard,
42-
kNoCollInTimeRangeNarrow,
42+
kNoCollInTimeRangeStrict,
43+
kNoCollInITSROFStandard,
44+
kNoCollInITSROFStrict,
4345
kNCuts
4446
};
4547

@@ -73,7 +75,13 @@ class EMEventCut : public TNamed
7375
if (mRequireNoCollInTimeRangeStandard && !IsSelected(collision, EMEventCuts::kNoCollInTimeRangeStandard)) {
7476
return false;
7577
}
76-
if (mRequireNoCollInTimeRangeNarrow && !IsSelected(collision, EMEventCuts::kNoCollInTimeRangeNarrow)) {
78+
if (mRequireNoCollInTimeRangeStrict && !IsSelected(collision, EMEventCuts::kNoCollInTimeRangeStrict)) {
79+
return false;
80+
}
81+
if (mRequireNoCollInITSROFStandard && !IsSelected(collision, EMEventCuts::kNoCollInITSROFStandard)) {
82+
return false;
83+
}
84+
if (mRequireNoCollInITSROFStrict && !IsSelected(collision, EMEventCuts::kNoCollInITSROFStrict)) {
7785
return false;
7886
}
7987
return true;
@@ -110,8 +118,14 @@ class EMEventCut : public TNamed
110118
case EMEventCuts::kNoCollInTimeRangeStandard:
111119
return collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard);
112120

113-
case EMEventCuts::kNoCollInTimeRangeNarrow:
114-
return collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeNarrow);
121+
case EMEventCuts::kNoCollInTimeRangeStrict:
122+
return collision.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStrict);
123+
124+
case EMEventCuts::kNoCollInITSROFStandard:
125+
return collision.selection_bit(o2::aod::evsel::kNoCollInRofStandard);
126+
127+
case EMEventCuts::kNoCollInITSROFStrict:
128+
return collision.selection_bit(o2::aod::evsel::kNoCollInRofStrict);
115129

116130
default:
117131
return true;
@@ -128,7 +142,9 @@ class EMEventCut : public TNamed
128142
void SetRequireVertexITSTPC(bool flag);
129143
void SetRequireGoodZvtxFT0vsPV(bool flag);
130144
void SetRequireNoCollInTimeRangeStandard(bool flag);
131-
void SetRequireNoCollInTimeRangeNarrow(bool flag);
145+
void SetRequireNoCollInTimeRangeStrict(bool flag);
146+
void SetRequireNoCollInITSROFStandard(bool flag);
147+
void SetRequireNoCollInITSROFStrict(bool flag);
132148

133149
private:
134150
bool mRequireSel8{true};
@@ -140,7 +156,9 @@ class EMEventCut : public TNamed
140156
bool mRequireVertexITSTPC{false};
141157
bool mRequireGoodZvtxFT0vsPV{false};
142158
bool mRequireNoCollInTimeRangeStandard{false};
143-
bool mRequireNoCollInTimeRangeNarrow{false};
159+
bool mRequireNoCollInTimeRangeStrict{false};
160+
bool mRequireNoCollInITSROFStandard{false};
161+
bool mRequireNoCollInITSROFStrict{false};
144162

145163
ClassDef(EMEventCut, 1);
146164
};

PWGEM/Dilepton/Core/PhotonHBT.h

+6
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,9 @@ struct PhotonHBT {
133133
Configurable<float> cfgFT0COccupancyMin{"cfgFT0COccupancyMin", -2, "min. FT0C occupancy"};
134134
Configurable<float> cfgFT0COccupancyMax{"cfgFT0COccupancyMax", 1000000000, "max. FT0C occupancy"};
135135
Configurable<bool> cfgRequireNoCollInTimeRangeStandard{"cfgRequireNoCollInTimeRangeStandard", false, "require no collision in time range standard"};
136+
Configurable<bool> cfgRequireNoCollInTimeRangeStrict{"cfgRequireNoCollInTimeRangeStrict", false, "require no collision in time range strict"};
137+
Configurable<bool> cfgRequireNoCollInITSROFStandard{"cfgRequireNoCollInITSROFStandard", false, "require no collision in time range standard"};
138+
Configurable<bool> cfgRequireNoCollInITSROFStrict{"cfgRequireNoCollInITSROFStrict", false, "require no collision in time range strict"};
136139
} eventcuts;
137140

138141
V0PhotonCut fV0PhotonCut;
@@ -454,6 +457,9 @@ struct PhotonHBT {
454457
fEMEventCut.SetRequireVertexITSTPC(eventcuts.cfgRequireVertexITSTPC);
455458
fEMEventCut.SetRequireGoodZvtxFT0vsPV(eventcuts.cfgRequireGoodZvtxFT0vsPV);
456459
fEMEventCut.SetRequireNoCollInTimeRangeStandard(eventcuts.cfgRequireNoCollInTimeRangeStandard);
460+
fEMEventCut.SetRequireNoCollInTimeRangeStrict(eventcuts.cfgRequireNoCollInTimeRangeStrict);
461+
fEMEventCut.SetRequireNoCollInITSROFStandard(eventcuts.cfgRequireNoCollInITSROFStandard);
462+
fEMEventCut.SetRequireNoCollInITSROFStrict(eventcuts.cfgRequireNoCollInITSROFStrict);
457463
}
458464

459465
void DefinePCMCut()

PWGEM/Dilepton/Core/SingleTrackQC.h

+14-15
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ struct SingleTrackQC {
7979
Configurable<int> cfgNtracksPV08Min{"cfgNtracksPV08Min", -1, "min. multNTracksPV"};
8080
Configurable<int> cfgNtracksPV08Max{"cfgNtracksPV08Max", static_cast<int>(1e+9), "max. multNTracksPV"};
8181
Configurable<bool> cfgApplyWeightTTCA{"cfgApplyWeightTTCA", false, "flag to apply weighting by 1/N"};
82-
Configurable<bool> cfgUseDCAxy{"cfgUseDCAxy", false, "flag to use DCAxy, instead of DCA3D"};
82+
Configurable<uint8_t> cfgDCAType{"cfgDCAType", 0, "type of DCA for output. 0:3D, 1:XY, 2:Z, else:3D"};
8383

8484
ConfigurableAxis ConfPtlBins{"ConfPtlBins", {VARIABLE_WIDTH, 0.00, 0.05, 0.10, 0.15, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80, 0.90, 1.00, 1.10, 1.20, 1.30, 1.40, 1.50, 1.60, 1.70, 1.80, 1.90, 2.00, 2.50, 3.00, 3.50, 4.00, 4.50, 5.00, 6.00, 7.00, 8.00, 9.00, 10.00}, "pTl bins for output histograms"};
8585
ConfigurableAxis ConfDCABins{"ConfDCABins", {VARIABLE_WIDTH, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0}, "DCA bins for output histograms"};
@@ -101,6 +101,9 @@ struct SingleTrackQC {
101101
Configurable<float> cfgFT0COccupancyMin{"cfgFT0COccupancyMin", -2, "min. FT0C occupancy"};
102102
Configurable<float> cfgFT0COccupancyMax{"cfgFT0COccupancyMax", 1000000000, "max. FT0C occupancy"};
103103
Configurable<bool> cfgRequireNoCollInTimeRangeStandard{"cfgRequireNoCollInTimeRangeStandard", false, "require no collision in time range standard"};
104+
Configurable<bool> cfgRequireNoCollInTimeRangeStrict{"cfgRequireNoCollInTimeRangeStrict", false, "require no collision in time range strict"};
105+
Configurable<bool> cfgRequireNoCollInITSROFStandard{"cfgRequireNoCollInITSROFStandard", false, "require no collision in time range standard"};
106+
Configurable<bool> cfgRequireNoCollInITSROFStrict{"cfgRequireNoCollInITSROFStrict", false, "require no collision in time range strict"};
104107
} eventcuts;
105108

106109
DielectronCut fDielectronCut;
@@ -157,12 +160,6 @@ struct SingleTrackQC {
157160
DimuonCut fDimuonCut;
158161
struct : ConfigurableGroup {
159162
std::string prefix = "dimuoncut_group";
160-
Configurable<float> cfg_min_mass{"cfg_min_mass", 0.0, "min mass"};
161-
Configurable<float> cfg_max_mass{"cfg_max_mass", 1e+10, "max mass"};
162-
Configurable<float> cfg_min_pair_pt{"cfg_min_pair_pt", 0.0, "min pair pt"};
163-
Configurable<float> cfg_max_pair_pt{"cfg_max_pair_pt", 1e+10, "max pair pt"};
164-
Configurable<float> cfg_min_pair_dcaxy{"cfg_min_pair_dcaxy", 0.0, "min pair dca3d in sigma"};
165-
Configurable<float> cfg_max_pair_dcaxy{"cfg_max_pair_dcaxy", 1e+10, "max pair dca3d in sigma"};
166163

167164
Configurable<uint8_t> cfg_track_type{"cfg_track_type", 3, "muon track type [0: MFT-MCH-MID, 3: MCH-MID]"};
168165
Configurable<float> cfg_min_pt_track{"cfg_min_pt_track", 0.1, "min pT for single track"};
@@ -199,8 +196,10 @@ struct SingleTrackQC {
199196
const AxisSpec axis_eta{20, -1.0, +1.0, "#eta_{e}"};
200197
const AxisSpec axis_phi{36, 0.0, 2 * M_PI, "#varphi_{e} (rad.)"};
201198
std::string dca_axis_title = "DCA_{e}^{3D} (#sigma)";
202-
if (cfgUseDCAxy) {
199+
if (cfgDCAType == 1) {
203200
dca_axis_title = "DCA_{e}^{XY} (#sigma)";
201+
} else if (cfgDCAType == 2) {
202+
dca_axis_title = "DCA_{e}^{Z} (#sigma)";
204203
}
205204
const AxisSpec axis_dca{ConfDCABins, dca_axis_title};
206205

@@ -311,6 +310,9 @@ struct SingleTrackQC {
311310
fEMEventCut.SetRequireVertexITSTPC(eventcuts.cfgRequireVertexITSTPC);
312311
fEMEventCut.SetRequireGoodZvtxFT0vsPV(eventcuts.cfgRequireGoodZvtxFT0vsPV);
313312
fEMEventCut.SetRequireNoCollInTimeRangeStandard(eventcuts.cfgRequireNoCollInTimeRangeStandard);
313+
fEMEventCut.SetRequireNoCollInTimeRangeStrict(eventcuts.cfgRequireNoCollInTimeRangeStrict);
314+
fEMEventCut.SetRequireNoCollInITSROFStandard(eventcuts.cfgRequireNoCollInITSROFStandard);
315+
fEMEventCut.SetRequireNoCollInITSROFStrict(eventcuts.cfgRequireNoCollInITSROFStrict);
314316
}
315317

316318
o2::analysis::MlResponseDielectronSingleTrack<float> mlResponseSingleTrack;
@@ -376,11 +378,6 @@ struct SingleTrackQC {
376378
{
377379
fDimuonCut = DimuonCut("fDimuonCut", "fDimuonCut");
378380

379-
// for pair
380-
fDimuonCut.SetMassRange(dimuoncuts.cfg_min_mass, dimuoncuts.cfg_max_mass);
381-
fDimuonCut.SetPairPtRange(dimuoncuts.cfg_min_pair_pt, dimuoncuts.cfg_max_pair_pt);
382-
fDimuonCut.SetPairDCAxyRange(dimuoncuts.cfg_min_pair_dcaxy, dimuoncuts.cfg_max_pair_dcaxy); // DCAxy in cm
383-
384381
// for track
385382
fDimuonCut.SetTrackType(dimuoncuts.cfg_track_type);
386383
fDimuonCut.SetTrackPtRange(dimuoncuts.cfg_min_pt_track, 1e10f);
@@ -405,8 +402,10 @@ struct SingleTrackQC {
405402
}
406403

407404
float dca = dca3DinSigma(track);
408-
if (cfgUseDCAxy) {
409-
dca = abs(track.dcaXY() / std::sqrt(track.cYY()));
405+
if (cfgDCAType == 1) {
406+
dca = dcaXYinSigma(track);
407+
} else if (cfgDCAType == 2) {
408+
dca = dcaZinSigma(track);
410409
}
411410

412411
if (track.sign() > 0) {

PWGEM/Dilepton/Core/SingleTrackQCMC.h

+14-4
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ struct SingleTrackQCMC {
8383
Configurable<int> cfgNtracksPV08Max{"cfgNtracksPV08Max", static_cast<int>(1e+9), "max. multNTracksPV"};
8484
Configurable<bool> cfgFillQA{"cfgFillQA", false, "flag to fill QA histograms"};
8585
Configurable<bool> cfgApplyWeightTTCA{"cfgApplyWeightTTCA", false, "flag to apply weighting by 1/N"};
86-
Configurable<bool> cfgUseDCAxy{"cfgUseDCAxy", false, "flag to use DCAxy, instead of DCA3D"};
86+
Configurable<uint8_t> cfgDCAType{"cfgDCAType", 0, "type of DCA for output. 0:3D, 1:XY, 2:Z, else:3D"};
8787

8888
ConfigurableAxis ConfPtlBins{"ConfPtlBins", {VARIABLE_WIDTH, 0.00, 0.05, 0.10, 0.15, 0.20, 0.30, 0.40, 0.50, 0.60, 0.70, 0.80, 0.90, 1.00, 1.10, 1.20, 1.30, 1.40, 1.50, 1.60, 1.70, 1.80, 1.90, 2.00, 2.50, 3.00, 3.50, 4.00, 4.50, 5.00, 6.00, 7.00, 8.00, 9.00, 10.00}, "pTl bins for output histograms"};
8989
ConfigurableAxis ConfDCABins{"ConfDCABins", {VARIABLE_WIDTH, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0}, "DCA bins for output histograms"};
@@ -105,6 +105,9 @@ struct SingleTrackQCMC {
105105
Configurable<float> cfgFT0COccupancyMin{"cfgFT0COccupancyMin", -2, "min. FT0C occupancy"};
106106
Configurable<float> cfgFT0COccupancyMax{"cfgFT0COccupancyMax", 1000000000, "max. FT0C occupancy"};
107107
Configurable<bool> cfgRequireNoCollInTimeRangeStandard{"cfgRequireNoCollInTimeRangeStandard", false, "require no collision in time range standard"};
108+
Configurable<bool> cfgRequireNoCollInTimeRangeStrict{"cfgRequireNoCollInTimeRangeStrict", false, "require no collision in time range strict"};
109+
Configurable<bool> cfgRequireNoCollInITSROFStandard{"cfgRequireNoCollInITSROFStandard", false, "require no collision in time range standard"};
110+
Configurable<bool> cfgRequireNoCollInITSROFStrict{"cfgRequireNoCollInITSROFStrict", false, "require no collision in time range strict"};
108111
} eventcuts;
109112

110113
DielectronCut fDielectronCut;
@@ -205,8 +208,10 @@ struct SingleTrackQCMC {
205208
const AxisSpec axis_phi{36, 0.0, 2 * M_PI, "#varphi_{e} (rad.)"};
206209
const AxisSpec axis_charge_gen{3, -1.5, +1.5, "true charge"};
207210
std::string dca_axis_title = "DCA_{e}^{3D} (#sigma)";
208-
if (cfgUseDCAxy) {
211+
if (cfgDCAType == 1) {
209212
dca_axis_title = "DCA_{e}^{XY} (#sigma)";
213+
} else if (cfgDCAType == 2) {
214+
dca_axis_title = "DCA_{e}^{Z} (#sigma)";
210215
}
211216
const AxisSpec axis_dca{ConfDCABins, dca_axis_title};
212217

@@ -357,6 +362,9 @@ struct SingleTrackQCMC {
357362
fEMEventCut.SetRequireVertexITSTPC(eventcuts.cfgRequireVertexITSTPC);
358363
fEMEventCut.SetRequireGoodZvtxFT0vsPV(eventcuts.cfgRequireGoodZvtxFT0vsPV);
359364
fEMEventCut.SetRequireNoCollInTimeRangeStandard(eventcuts.cfgRequireNoCollInTimeRangeStandard);
365+
fEMEventCut.SetRequireNoCollInTimeRangeStrict(eventcuts.cfgRequireNoCollInTimeRangeStrict);
366+
fEMEventCut.SetRequireNoCollInITSROFStandard(eventcuts.cfgRequireNoCollInITSROFStandard);
367+
fEMEventCut.SetRequireNoCollInITSROFStrict(eventcuts.cfgRequireNoCollInITSROFStrict);
360368
}
361369

362370
o2::analysis::MlResponseDielectronSingleTrack<float> mlResponseSingleTrack;
@@ -484,8 +492,10 @@ struct SingleTrackQCMC {
484492
{
485493
auto mctrack = track.template emmcparticle_as<TMCParticles>();
486494
float dca = dca3DinSigma(track);
487-
if (cfgUseDCAxy) {
488-
dca = abs(track.dcaXY() / std::sqrt(track.cYY()));
495+
if (cfgDCAType == 1) {
496+
dca = dcaXYinSigma(track);
497+
} else if (cfgDCAType == 2) {
498+
dca = dcaZinSigma(track);
489499
}
490500

491501
float weight = 1.f;

PWGEM/Dilepton/Tasks/vpPairQC.cxx

+6
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@ struct vpPairQC {
8181
Configurable<float> cfgFT0COccupancyMin{"cfgFT0COccupancyMin", -2, "min. FT0C occupancy"};
8282
Configurable<float> cfgFT0COccupancyMax{"cfgFT0COccupancyMax", 1000000000, "max. FT0C occupancy"};
8383
Configurable<bool> cfgRequireNoCollInTimeRangeStandard{"cfgRequireNoCollInTimeRangeStandard", false, "require no collision in time range standard"};
84+
Configurable<bool> cfgRequireNoCollInTimeRangeStrict{"cfgRequireNoCollInTimeRangeStrict", false, "require no collision in time range strict"};
85+
Configurable<bool> cfgRequireNoCollInITSROFStandard{"cfgRequireNoCollInITSROFStandard", false, "require no collision in time range standard"};
86+
Configurable<bool> cfgRequireNoCollInITSROFStrict{"cfgRequireNoCollInITSROFStrict", false, "require no collision in time range strict"};
8487
} eventcuts;
8588

8689
DielectronCut fDielectronCut;
@@ -277,6 +280,9 @@ struct vpPairQC {
277280
fEMEventCut.SetRequireVertexITSTPC(eventcuts.cfgRequireVertexITSTPC);
278281
fEMEventCut.SetRequireGoodZvtxFT0vsPV(eventcuts.cfgRequireGoodZvtxFT0vsPV);
279282
fEMEventCut.SetRequireNoCollInTimeRangeStandard(eventcuts.cfgRequireNoCollInTimeRangeStandard);
283+
fEMEventCut.SetRequireNoCollInTimeRangeStrict(eventcuts.cfgRequireNoCollInTimeRangeStrict);
284+
fEMEventCut.SetRequireNoCollInITSROFStandard(eventcuts.cfgRequireNoCollInITSROFStandard);
285+
fEMEventCut.SetRequireNoCollInITSROFStrict(eventcuts.cfgRequireNoCollInITSROFStrict);
280286
}
281287

282288
o2::analysis::MlResponseDielectronSingleTrack<float> mlResponseSingleTrack;

0 commit comments

Comments
 (0)