Skip to content

Commit b7c799e

Browse files
authored
[PWGEM/Dilepton] update in DimuonCut (#11536)
1 parent 3174ec6 commit b7c799e

File tree

6 files changed

+17
-9
lines changed

6 files changed

+17
-9
lines changed

PWGEM/Dilepton/Core/Dilepton.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ struct Dilepton {
284284
Configurable<float> cfg_max_relDPt_wrt_matchedMCHMID{"cfg_max_relDPt_wrt_matchedMCHMID", 1e+10f, "max. relative dpt between MFT-MCH-MID and MCH-MID"};
285285
Configurable<float> cfg_max_DEta_wrt_matchedMCHMID{"cfg_max_DEta_wrt_matchedMCHMID", 1e+10f, "max. deta between MFT-MCH-MID and MCH-MID"};
286286
Configurable<float> cfg_max_DPhi_wrt_matchedMCHMID{"cfg_max_DPhi_wrt_matchedMCHMID", 1e+10f, "max. dphi between MFT-MCH-MID and MCH-MID"};
287+
Configurable<bool> requireMFTHitMap{"requireMFTHitMap", false, "flag to apply MFT hit map"};
287288
Configurable<std::vector<int>> requiredMFTDisks{"requiredMFTDisks", std::vector<int>{0}, "hit map on MFT disks [0,1,2,3,4]. logical-OR of each double-sided disk"};
288289
} dimuoncuts;
289290

@@ -754,7 +755,7 @@ struct Dilepton {
754755
fDimuonCut.SetRabs(dimuoncuts.cfg_min_rabs, dimuoncuts.cfg_max_rabs);
755756
fDimuonCut.SetMaxPDCARabsDep([&](float rabs) { return (rabs < 26.5 ? 594.f : 324.f); });
756757
fDimuonCut.SetMaxdPtdEtadPhiwrtMCHMID(dimuoncuts.cfg_max_relDPt_wrt_matchedMCHMID, dimuoncuts.cfg_max_DEta_wrt_matchedMCHMID, dimuoncuts.cfg_max_DPhi_wrt_matchedMCHMID); // this is relevant for global muons
757-
fDimuonCut.SetMFTHitMap(dimuoncuts.requiredMFTDisks);
758+
fDimuonCut.SetMFTHitMap(dimuoncuts.requireMFTHitMap, dimuoncuts.requiredMFTDisks);
758759
}
759760

760761
template <typename TQvectors>

PWGEM/Dilepton/Core/DileptonMC.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ struct DileptonMC {
276276
Configurable<float> cfg_max_relDPt_wrt_matchedMCHMID{"cfg_max_relDPt_wrt_matchedMCHMID", 1e+10f, "max. relative dpt between MFT-MCH-MID and MCH-MID"};
277277
Configurable<float> cfg_max_DEta_wrt_matchedMCHMID{"cfg_max_DEta_wrt_matchedMCHMID", 1e+10f, "max. deta between MFT-MCH-MID and MCH-MID"};
278278
Configurable<float> cfg_max_DPhi_wrt_matchedMCHMID{"cfg_max_DPhi_wrt_matchedMCHMID", 1e+10f, "max. dphi between MFT-MCH-MID and MCH-MID"};
279+
Configurable<bool> requireMFTHitMap{"requireMFTHitMap", false, "flag to apply MFT hit map"};
279280
Configurable<std::vector<int>> requiredMFTDisks{"requiredMFTDisks", std::vector<int>{0}, "hit map on MFT disks [0,1,2,3,4]. logical-OR of each double-sided disk"};
280281
} dimuoncuts;
281282

@@ -720,7 +721,7 @@ struct DileptonMC {
720721
fDimuonCut.SetRabs(dimuoncuts.cfg_min_rabs, dimuoncuts.cfg_max_rabs);
721722
fDimuonCut.SetMaxPDCARabsDep([&](float rabs) { return (rabs < 26.5 ? 594.f : 324.f); });
722723
fDimuonCut.SetMaxdPtdEtadPhiwrtMCHMID(dimuoncuts.cfg_max_relDPt_wrt_matchedMCHMID, dimuoncuts.cfg_max_DEta_wrt_matchedMCHMID, dimuoncuts.cfg_max_DPhi_wrt_matchedMCHMID); // this is relevant for global muons
723-
fDimuonCut.SetMFTHitMap(dimuoncuts.requiredMFTDisks);
724+
fDimuonCut.SetMFTHitMap(dimuoncuts.requireMFTHitMap, dimuoncuts.requiredMFTDisks);
724725
}
725726

726727
template <typename TTrack, typename TMCParticles>

PWGEM/Dilepton/Core/DimuonCut.cxx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,14 @@ void DimuonCut::SetMaxPDCARabsDep(std::function<float(float)> RabsDepCut)
119119
mMaxPDCARabsDep = RabsDepCut;
120120
LOG(info) << "Dimuon Cut, set max pDCA as a function of Rabs: " << mMaxPDCARabsDep(10.0);
121121
}
122-
void DimuonCut::SetMFTHitMap(std::vector<int> hitMap)
122+
void DimuonCut::SetMFTHitMap(bool flag, std::vector<int> hitMap)
123123
{
124+
mApplyMFTHitMap = flag;
124125
mRequiredMFTDisks = hitMap;
125-
for (const auto& iDisk : mRequiredMFTDisks) {
126-
LOG(info) << "Dimuon Cut, require MFT hit on Disk: " << iDisk;
126+
if (mApplyMFTHitMap) {
127+
for (const auto& iDisk : mRequiredMFTDisks) {
128+
LOG(info) << "Dimuon Cut, require MFT hit on Disk: " << iDisk;
129+
}
127130
}
128131
}
129132
void DimuonCut::SetMaxdPtdEtadPhiwrtMCHMID(float reldPtMax, float dEtaMax, float dPhiMax)

PWGEM/Dilepton/Core/DimuonCut.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ class DimuonCut : public TNamed
156156
if (!IsSelectedTrack(track, DimuonCuts::kRabs)) {
157157
return false;
158158
}
159-
if (track.trackType() == static_cast<uint8_t>(o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack) && !IsSelectedTrack(track, DimuonCuts::kMFTHitMap)) {
159+
if (mApplyMFTHitMap && track.trackType() == static_cast<uint8_t>(o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack) && !IsSelectedTrack(track, DimuonCuts::kMFTHitMap)) {
160160
return false;
161161
}
162162
if (track.trackType() == static_cast<uint8_t>(o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack) && !IsSelectedTrack(track, DimuonCuts::kDPtDEtaDPhiwrtMCHMID)) {
@@ -243,7 +243,7 @@ class DimuonCut : public TNamed
243243
void SetDCAxy(float min, float max); // in cm
244244
void SetRabs(float min, float max); // in cm
245245
void SetMaxPDCARabsDep(std::function<float(float)> RabsDepCut);
246-
void SetMFTHitMap(std::vector<int> hitMap);
246+
void SetMFTHitMap(bool flag, std::vector<int> hitMap);
247247
void SetMaxdPtdEtadPhiwrtMCHMID(float reldPtMax, float dEtaMax, float dPhiMax); // this is relevant for global muons
248248

249249
private:
@@ -273,6 +273,7 @@ class DimuonCut : public TNamed
273273
float mMinRabs{17.6}, mMaxRabs{89.5};
274274
float mMinDcaXY{0.0f}, mMaxDcaXY{1e10f};
275275
float mMaxReldPtwrtMCHMID{1e10f}, mMaxdEtawrtMCHMID{1e10f}, mMaxdPhiwrtMCHMID{1e10f};
276+
bool mApplyMFTHitMap{false};
276277
std::vector<int> mRequiredMFTDisks{};
277278

278279
ClassDef(DimuonCut, 1);

PWGEM/Dilepton/Core/SingleTrackQC.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ struct SingleTrackQC {
204204
Configurable<float> cfg_max_relDPt_wrt_matchedMCHMID{"cfg_max_relDPt_wrt_matchedMCHMID", 1e+10f, "max. relative dpt between MFT-MCH-MID and MCH-MID"};
205205
Configurable<float> cfg_max_DEta_wrt_matchedMCHMID{"cfg_max_DEta_wrt_matchedMCHMID", 1e+10f, "max. deta between MFT-MCH-MID and MCH-MID"};
206206
Configurable<float> cfg_max_DPhi_wrt_matchedMCHMID{"cfg_max_DPhi_wrt_matchedMCHMID", 1e+10f, "max. dphi between MFT-MCH-MID and MCH-MID"};
207+
Configurable<bool> requireMFTHitMap{"requireMFTHitMap", false, "flag to apply MFT hit map"};
207208
Configurable<std::vector<int>> requiredMFTDisks{"requiredMFTDisks", std::vector<int>{0}, "hit map on MFT disks [0,1,2,3,4]. logical-OR of each double-sided disk"};
208209
} dimuoncuts;
209210

@@ -458,7 +459,7 @@ struct SingleTrackQC {
458459
fDimuonCut.SetRabs(dimuoncuts.cfg_min_rabs, dimuoncuts.cfg_max_rabs);
459460
fDimuonCut.SetMaxPDCARabsDep([&](float rabs) { return (rabs < 26.5 ? 594.f : 324.f); });
460461
fDimuonCut.SetMaxdPtdEtadPhiwrtMCHMID(dimuoncuts.cfg_max_relDPt_wrt_matchedMCHMID, dimuoncuts.cfg_max_DEta_wrt_matchedMCHMID, dimuoncuts.cfg_max_DPhi_wrt_matchedMCHMID); // this is relevant for global muons
461-
fDimuonCut.SetMFTHitMap(dimuoncuts.requiredMFTDisks);
462+
fDimuonCut.SetMFTHitMap(dimuoncuts.requireMFTHitMap, dimuoncuts.requiredMFTDisks);
462463
}
463464

464465
template <typename TTrack>

PWGEM/Dilepton/Core/SingleTrackQCMC.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ struct SingleTrackQCMC {
210210
Configurable<float> cfg_max_relDPt_wrt_matchedMCHMID{"cfg_max_relDPt_wrt_matchedMCHMID", 1e+10f, "max. relative dpt between MFT-MCH-MID and MCH-MID"};
211211
Configurable<float> cfg_max_DEta_wrt_matchedMCHMID{"cfg_max_DEta_wrt_matchedMCHMID", 1e+10f, "max. deta between MFT-MCH-MID and MCH-MID"};
212212
Configurable<float> cfg_max_DPhi_wrt_matchedMCHMID{"cfg_max_DPhi_wrt_matchedMCHMID", 1e+10f, "max. dphi between MFT-MCH-MID and MCH-MID"};
213+
Configurable<bool> requireMFTHitMap{"requireMFTHitMap", false, "flag to apply MFT hit map"};
213214
Configurable<std::vector<int>> requiredMFTDisks{"requiredMFTDisks", std::vector<int>{0}, "hit map on MFT disks [0,1,2,3,4]. logical-OR of each double-sided disk"};
214215
} dimuoncuts;
215216

@@ -517,7 +518,7 @@ struct SingleTrackQCMC {
517518
fDimuonCut.SetRabs(dimuoncuts.cfg_min_rabs, dimuoncuts.cfg_max_rabs);
518519
fDimuonCut.SetMaxPDCARabsDep([&](float rabs) { return (rabs < 26.5 ? 594.f : 324.f); });
519520
fDimuonCut.SetMaxdPtdEtadPhiwrtMCHMID(dimuoncuts.cfg_max_relDPt_wrt_matchedMCHMID, dimuoncuts.cfg_max_DEta_wrt_matchedMCHMID, dimuoncuts.cfg_max_DPhi_wrt_matchedMCHMID); // this is relevant for global muons
520-
fDimuonCut.SetMFTHitMap(dimuoncuts.requiredMFTDisks);
521+
fDimuonCut.SetMFTHitMap(dimuoncuts.requireMFTHitMap, dimuoncuts.requiredMFTDisks);
521522
}
522523

523524
template <bool isSmeared, typename T>

0 commit comments

Comments
 (0)