Skip to content

Commit 8970fed

Browse files
authored
[PWGEM/Dilepton] update dimuon analyses (#11526)
1 parent cb9ff1b commit 8970fed

File tree

10 files changed

+226
-99
lines changed

10 files changed

+226
-99
lines changed

PWGEM/Dilepton/Core/DielectronCut.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -359,13 +359,13 @@ class DielectronCut : public TNamed
359359
{
360360
switch (cut) {
361361
case DielectronCuts::kTrackPtRange:
362-
return track.pt() >= mMinTrackPt && track.pt() <= mMaxTrackPt;
362+
return track.pt() > mMinTrackPt && track.pt() < mMaxTrackPt;
363363

364364
case DielectronCuts::kTrackEtaRange:
365-
return track.eta() >= mMinTrackEta && track.eta() <= mMaxTrackEta;
365+
return track.eta() > mMinTrackEta && track.eta() < mMaxTrackEta;
366366

367367
case DielectronCuts::kTrackPhiRange:
368-
return track.phi() >= mMinTrackPhi && track.phi() <= mMaxTrackPhi;
368+
return track.phi() > mMinTrackPhi && track.phi() < mMaxTrackPhi;
369369

370370
case DielectronCuts::kTPCNCls:
371371
return track.tpcNClsFound() >= mMinNClustersTPC;
@@ -374,10 +374,10 @@ class DielectronCut : public TNamed
374374
return track.tpcNClsCrossedRows() >= mMinNCrossedRowsTPC;
375375

376376
case DielectronCuts::kTPCCrossedRowsOverNCls:
377-
return track.tpcCrossedRowsOverFindableCls() >= mMinNCrossedRowsOverFindableClustersTPC;
377+
return track.tpcCrossedRowsOverFindableCls() > mMinNCrossedRowsOverFindableClustersTPC;
378378

379379
case DielectronCuts::kTPCFracSharedClusters:
380-
return track.tpcFractionSharedCls() <= mMaxFracSharedClustersTPC;
380+
return track.tpcFractionSharedCls() < mMaxFracSharedClustersTPC;
381381

382382
case DielectronCuts::kRelDiffPin:
383383
return mMinRelDiffPin < (track.tpcInnerParam() - track.p()) / track.p() && (track.tpcInnerParam() - track.p()) / track.p() < mMaxRelDiffPin;
@@ -386,13 +386,13 @@ class DielectronCut : public TNamed
386386
return mMinChi2PerClusterTPC < track.tpcChi2NCl() && track.tpcChi2NCl() < mMaxChi2PerClusterTPC;
387387

388388
case DielectronCuts::kDCA3Dsigma:
389-
return mMinDca3D <= dca3DinSigma(track) && dca3DinSigma(track) <= mMaxDca3D; // in sigma for single leg
389+
return mMinDca3D < dca3DinSigma(track) && dca3DinSigma(track) < mMaxDca3D; // in sigma for single leg
390390

391391
case DielectronCuts::kDCAxy:
392-
return std::fabs(track.dcaXY()) <= ((mMaxDcaXYPtDep) ? mMaxDcaXYPtDep(track.pt()) : mMaxDcaXY);
392+
return std::fabs(track.dcaXY()) < ((mMaxDcaXYPtDep) ? mMaxDcaXYPtDep(track.pt()) : mMaxDcaXY);
393393

394394
case DielectronCuts::kDCAz:
395-
return std::fabs(track.dcaZ()) <= mMaxDcaZ;
395+
return std::fabs(track.dcaZ()) < mMaxDcaZ;
396396

397397
case DielectronCuts::kITSNCls:
398398
return mMinNClustersITS <= track.itsNCls() && track.itsNCls() <= mMaxNClustersITS;

PWGEM/Dilepton/Core/Dilepton.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,10 @@ struct Dilepton {
281281
Configurable<float> cfg_min_rabs{"cfg_min_rabs", 17.6, "min Radius at the absorber end"};
282282
Configurable<float> cfg_max_rabs{"cfg_max_rabs", 89.5, "max Radius at the absorber end"};
283283
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};
284+
Configurable<float> cfg_max_relDPt_wrt_matchedMCHMID{"cfg_max_relDPt_wrt_matchedMCHMID", 1e+10f, "max. relative dpt between MFT-MCH-MID and MCH-MID"};
285+
Configurable<float> cfg_max_DEta_wrt_matchedMCHMID{"cfg_max_DEta_wrt_matchedMCHMID", 1e+10f, "max. deta between MFT-MCH-MID and MCH-MID"};
286+
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<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"};
284288
} dimuoncuts;
285289

286290
o2::aod::rctsel::RCTFlagsChecker rctChecker;
@@ -749,6 +753,8 @@ struct Dilepton {
749753
fDimuonCut.SetDCAxy(0.f, dimuoncuts.cfg_max_dcaxy);
750754
fDimuonCut.SetRabs(dimuoncuts.cfg_min_rabs, dimuoncuts.cfg_max_rabs);
751755
fDimuonCut.SetMaxPDCARabsDep([&](float rabs) { return (rabs < 26.5 ? 594.f : 324.f); });
756+
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);
752758
}
753759

754760
template <typename TQvectors>

PWGEM/Dilepton/Core/DileptonMC.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,10 @@ struct DileptonMC {
273273
Configurable<float> cfg_min_rabs{"cfg_min_rabs", 17.6, "min Radius at the absorber end"};
274274
Configurable<float> cfg_max_rabs{"cfg_max_rabs", 89.5, "max Radius at the absorber end"};
275275
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};
276+
Configurable<float> cfg_max_relDPt_wrt_matchedMCHMID{"cfg_max_relDPt_wrt_matchedMCHMID", 1e+10f, "max. relative dpt between MFT-MCH-MID and MCH-MID"};
277+
Configurable<float> cfg_max_DEta_wrt_matchedMCHMID{"cfg_max_DEta_wrt_matchedMCHMID", 1e+10f, "max. deta between MFT-MCH-MID and MCH-MID"};
278+
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<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"};
276280
} dimuoncuts;
277281

278282
o2::aod::rctsel::RCTFlagsChecker rctChecker;
@@ -715,6 +719,8 @@ struct DileptonMC {
715719
fDimuonCut.SetDCAxy(0.f, dimuoncuts.cfg_max_dcaxy);
716720
fDimuonCut.SetRabs(dimuoncuts.cfg_min_rabs, dimuoncuts.cfg_max_rabs);
717721
fDimuonCut.SetMaxPDCARabsDep([&](float rabs) { return (rabs < 26.5 ? 594.f : 324.f); });
722+
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);
718724
}
719725

720726
template <typename TTrack, typename TMCParticles>

PWGEM/Dilepton/Core/DimuonCut.cxx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,3 +119,19 @@ 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)
123+
{
124+
mRequiredMFTDisks = hitMap;
125+
for (const auto& iDisk : mRequiredMFTDisks) {
126+
LOG(info) << "Dimuon Cut, require MFT hit on Disk: " << iDisk;
127+
}
128+
}
129+
void DimuonCut::SetMaxdPtdEtadPhiwrtMCHMID(float reldPtMax, float dEtaMax, float dPhiMax)
130+
{
131+
mMaxReldPtwrtMCHMID = reldPtMax;
132+
mMaxdEtawrtMCHMID = dEtaMax;
133+
mMaxdPhiwrtMCHMID = dPhiMax;
134+
LOG(info) << "Dimuon Cut, set max rel. dpt between MFT-MCH-MID and associated MCH-MID: " << mMaxReldPtwrtMCHMID;
135+
LOG(info) << "Dimuon Cut, set max deta between MFT-MCH-MID and associated MCH-MID: " << mMaxdEtawrtMCHMID;
136+
LOG(info) << "Dimuon Cut, set max dphi between MFT-MCH-MID and associated MCH-MID: " << mMaxdPhiwrtMCHMID;
137+
}

PWGEM/Dilepton/Core/DimuonCut.h

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ class DimuonCut : public TNamed
5959
kMatchingChi2MCHMID,
6060
kRabs,
6161
kPDCA,
62+
kMFTHitMap,
63+
kDPtDEtaDPhiwrtMCHMID,
6264
kNCuts
6365
};
6466

@@ -154,6 +156,12 @@ class DimuonCut : public TNamed
154156
if (!IsSelectedTrack(track, DimuonCuts::kRabs)) {
155157
return false;
156158
}
159+
if (track.trackType() == static_cast<uint8_t>(o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack) && !IsSelectedTrack(track, DimuonCuts::kMFTHitMap)) {
160+
return false;
161+
}
162+
if (track.trackType() == static_cast<uint8_t>(o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack) && !IsSelectedTrack(track, DimuonCuts::kDPtDEtaDPhiwrtMCHMID)) {
163+
return false;
164+
}
157165

158166
return true;
159167
}
@@ -198,6 +206,19 @@ class DimuonCut : public TNamed
198206
case DimuonCuts::kRabs:
199207
return mMinRabs < track.rAtAbsorberEnd() && track.rAtAbsorberEnd() < mMaxRabs;
200208

209+
case DimuonCuts::kMFTHitMap: {
210+
std::vector<bool> mftHitMap{checkMFTHitMap<0, 1>(track), checkMFTHitMap<2, 3>(track), checkMFTHitMap<4, 5>(track), checkMFTHitMap<6, 7>(track), checkMFTHitMap<8, 9>(track)};
211+
for (const auto& iDisk : mRequiredMFTDisks) {
212+
if (!mftHitMap[iDisk]) {
213+
return false;
214+
}
215+
}
216+
return true;
217+
}
218+
219+
case DimuonCuts::kDPtDEtaDPhiwrtMCHMID:
220+
return std::fabs(track.ptMatchedMCHMID() - track.pt()) / track.pt() < mMaxReldPtwrtMCHMID && std::sqrt(std::pow((track.etaMatchedMCHMID() - track.eta()) / mMaxdEtawrtMCHMID, 2) + std::pow((track.phiMatchedMCHMID() - track.phi()) / mMaxdPhiwrtMCHMID, 2)) < 1.f;
221+
201222
default:
202223
return false;
203224
}
@@ -222,6 +243,8 @@ class DimuonCut : public TNamed
222243
void SetDCAxy(float min, float max); // in cm
223244
void SetRabs(float min, float max); // in cm
224245
void SetMaxPDCARabsDep(std::function<float(float)> RabsDepCut);
246+
void SetMFTHitMap(std::vector<int> hitMap);
247+
void SetMaxdPtdEtadPhiwrtMCHMID(float reldPtMax, float dEtaMax, float dPhiMax); // this is relevant for global muons
225248

226249
private:
227250
// pair cuts
@@ -249,6 +272,8 @@ class DimuonCut : public TNamed
249272

250273
float mMinRabs{17.6}, mMaxRabs{89.5};
251274
float mMinDcaXY{0.0f}, mMaxDcaXY{1e10f};
275+
float mMaxReldPtwrtMCHMID{1e10f}, mMaxdEtawrtMCHMID{1e10f}, mMaxdPhiwrtMCHMID{1e10f};
276+
std::vector<int> mRequiredMFTDisks{};
252277

253278
ClassDef(DimuonCut, 1);
254279
};

PWGEM/Dilepton/Core/SingleTrackQC.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,10 @@ struct SingleTrackQC {
201201
Configurable<float> cfg_min_rabs{"cfg_min_rabs", 17.6, "min Radius at the absorber end"};
202202
Configurable<float> cfg_max_rabs{"cfg_max_rabs", 89.5, "max Radius at the absorber end"};
203203
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};
204+
Configurable<float> cfg_max_relDPt_wrt_matchedMCHMID{"cfg_max_relDPt_wrt_matchedMCHMID", 1e+10f, "max. relative dpt between MFT-MCH-MID and MCH-MID"};
205+
Configurable<float> cfg_max_DEta_wrt_matchedMCHMID{"cfg_max_DEta_wrt_matchedMCHMID", 1e+10f, "max. deta between MFT-MCH-MID and MCH-MID"};
206+
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<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"};
204208
} dimuoncuts;
205209

206210
o2::aod::rctsel::RCTFlagsChecker rctChecker;
@@ -282,6 +286,7 @@ struct SingleTrackQC {
282286
// track info
283287
fRegistry.add("Track/positive/hs", "rec. single muon", kTHnSparseD, {axis_pt, axis_eta, axis_phi, axis_dca}, true);
284288
fRegistry.add("Track/positive/hEtaPhi_MatchMCHMID", "#eta vs. #varphi of matched MCHMID", kTH2F, {{180, 0, 2.f * M_PI}, {100, -6, -1}}, false);
289+
fRegistry.add("Track/positive/hdEtadPhi", "#Delta#eta vs. #Delta#varphi between MFT-MCH-MID and MCH-MID;#varphi_{sa} - #varphi_{gl} (rad.);#eta_{sa} - #eta_{gl}", kTH2F, {{90, -M_PI / 4, M_PI / 4}, {100, -0.5, +0.5}}, false);
285290
fRegistry.add("Track/positive/hQoverPt", "q/pT;q/p_{T} (GeV/c)^{-1}", kTH1F, {{400, -20, 20}}, false);
286291
fRegistry.add("Track/positive/hTrackType", "track type", kTH1F, {{6, -0.5f, 5.5}}, false);
287292
fRegistry.add("Track/positive/hDCAxy", "DCA x vs. y;DCA_{x} (cm);DCA_{y} (cm)", kTH2F, {{200, -0.5f, 0.5f}, {200, -0.5f, 0.5f}}, false);
@@ -452,6 +457,8 @@ struct SingleTrackQC {
452457
fDimuonCut.SetDCAxy(0.f, dimuoncuts.cfg_max_dcaxy);
453458
fDimuonCut.SetRabs(dimuoncuts.cfg_min_rabs, dimuoncuts.cfg_max_rabs);
454459
fDimuonCut.SetMaxPDCARabsDep([&](float rabs) { return (rabs < 26.5 ? 594.f : 324.f); });
460+
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);
455462
}
456463

457464
template <typename TTrack>
@@ -560,9 +567,15 @@ struct SingleTrackQC {
560567
weight = map_weight[track.globalIndex()];
561568
}
562569
float dca_xy = fwdDcaXYinSigma(track);
570+
571+
float deta = track.etaMatchedMCHMID() - track.eta();
572+
float dphi = track.phiMatchedMCHMID() - track.phi();
573+
o2::math_utils::bringToPMPi(dphi);
574+
563575
if (track.sign() > 0) {
564576
fRegistry.fill(HIST("Track/positive/hs"), track.pt(), track.eta(), track.phi(), dca_xy, weight);
565577
fRegistry.fill(HIST("Track/positive/hEtaPhi_MatchMCHMID"), track.phiMatchedMCHMID(), track.etaMatchedMCHMID(), weight);
578+
fRegistry.fill(HIST("Track/positive/hdEtadPhi"), dphi, deta, weight);
566579
fRegistry.fill(HIST("Track/positive/hQoverPt"), track.sign() / track.pt());
567580
fRegistry.fill(HIST("Track/positive/hTrackType"), track.trackType());
568581
fRegistry.fill(HIST("Track/positive/hDCAxy"), track.fwdDcaX(), track.fwdDcaY());
@@ -580,6 +593,7 @@ struct SingleTrackQC {
580593
} else {
581594
fRegistry.fill(HIST("Track/negative/hs"), track.pt(), track.eta(), track.phi(), dca_xy, weight);
582595
fRegistry.fill(HIST("Track/negative/hEtaPhi_MatchMCHMID"), track.phiMatchedMCHMID(), track.etaMatchedMCHMID(), weight);
596+
fRegistry.fill(HIST("Track/negative/hdEtadPhi"), dphi, deta, weight);
583597
fRegistry.fill(HIST("Track/negative/hQoverPt"), track.sign() / track.pt());
584598
fRegistry.fill(HIST("Track/negative/hTrackType"), track.trackType());
585599
fRegistry.fill(HIST("Track/negative/hDCAxy"), track.fwdDcaX(), track.fwdDcaY());

PWGEM/Dilepton/Core/SingleTrackQCMC.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,10 @@ struct SingleTrackQCMC {
207207
Configurable<float> cfg_min_rabs{"cfg_min_rabs", 17.6, "min Radius at the absorber end"};
208208
Configurable<float> cfg_max_rabs{"cfg_max_rabs", 89.5, "max Radius at the absorber end"};
209209
Configurable<bool> enableTTCA{"enableTTCA", true, "Flag to enable or disable TTCA"};
210+
Configurable<float> cfg_max_relDPt_wrt_matchedMCHMID{"cfg_max_relDPt_wrt_matchedMCHMID", 1e+10f, "max. relative dpt between MFT-MCH-MID and MCH-MID"};
211+
Configurable<float> cfg_max_DEta_wrt_matchedMCHMID{"cfg_max_DEta_wrt_matchedMCHMID", 1e+10f, "max. deta between MFT-MCH-MID and MCH-MID"};
212+
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<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"};
210214
} dimuoncuts;
211215

212216
o2::aod::rctsel::RCTFlagsChecker rctChecker;
@@ -339,6 +343,7 @@ struct SingleTrackQCMC {
339343
fRegistry.add("Track/lf/positive/hs", "rec. single muon", kTHnSparseD, {axis_pt, axis_eta, axis_phi, axis_dca, axis_charge_gen}, true);
340344
if (cfgFillQA) {
341345
fRegistry.add("Track/lf/positive/hEtaPhi_MatchMCHMID", "#eta vs. #varphi of matched MCHMID", kTH2F, {{180, 0, 2.f * M_PI}, {100, -6, -1}}, false);
346+
fRegistry.add("Track/lf/positive/hdEtadPhi", "#Delta#eta vs. #Delta#varphi between MFT-MCH-MID and MCH-MID;#varphi_{sa} - #varphi_{gl} (rad.);#eta_{sa} - #eta_{gl}", kTH2F, {{90, -M_PI / 4, M_PI / 4}, {100, -0.5, +0.5}}, false);
342347
fRegistry.add("Track/lf/positive/hQoverPt", "q/pT;q/p_{T} (GeV/c)^{-1}", kTH1F, {{400, -20, 20}}, false);
343348
fRegistry.add("Track/lf/positive/hTrackType", "track type", kTH1F, {{6, -0.5f, 5.5}}, false);
344349
fRegistry.add("Track/lf/positive/hDCAxy", "DCA x vs. y;DCA_{x} (cm);DCA_{y} (cm)", kTH2F, {{200, -0.5f, 0.5f}, {200, -0.5f, 0.5f}}, false);
@@ -511,6 +516,8 @@ struct SingleTrackQCMC {
511516
fDimuonCut.SetDCAxy(0.f, dimuoncuts.cfg_max_dcaxy);
512517
fDimuonCut.SetRabs(dimuoncuts.cfg_min_rabs, dimuoncuts.cfg_max_rabs);
513518
fDimuonCut.SetMaxPDCARabsDep([&](float rabs) { return (rabs < 26.5 ? 594.f : 324.f); });
519+
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);
514521
}
515522

516523
template <bool isSmeared, typename T>
@@ -670,6 +677,9 @@ struct SingleTrackQCMC {
670677
{
671678
auto mctrack = track.template emmcparticle_as<TMCParticles>();
672679
float dca_xy = fwdDcaXYinSigma(track);
680+
float deta = track.etaMatchedMCHMID() - track.eta();
681+
float dphi = track.phiMatchedMCHMID() - track.phi();
682+
o2::math_utils::bringToPMPi(dphi);
673683

674684
float weight = 1.f;
675685
if (cfgApplyWeightTTCA) {
@@ -681,6 +691,7 @@ struct SingleTrackQCMC {
681691
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hs"), track.pt(), track.eta(), track.phi(), dca_xy, -mctrack.pdgCode() / pdg_lepton, weight);
682692
if (cfgFillQA) {
683693
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hEtaPhi_MatchMCHMID"), track.phiMatchedMCHMID(), track.etaMatchedMCHMID(), weight);
694+
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hdEtadPhi"), dphi, deta, weight);
684695
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hQoverPt"), track.sign() / track.pt());
685696
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hTrackType"), track.trackType());
686697
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hDCAxy"), track.fwdDcaX(), track.fwdDcaY());
@@ -703,6 +714,7 @@ struct SingleTrackQCMC {
703714
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hs"), track.pt(), track.eta(), track.phi(), dca_xy, -mctrack.pdgCode() / pdg_lepton, weight);
704715
if (cfgFillQA) {
705716
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hEtaPhi_MatchMCHMID"), track.phiMatchedMCHMID(), track.etaMatchedMCHMID(), weight);
717+
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hdEtadPhi"), dphi, deta, weight);
706718
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hQoverPt"), track.sign() / track.pt());
707719
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hTrackType"), track.trackType());
708720
fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hDCAxy"), track.fwdDcaX(), track.fwdDcaY());

0 commit comments

Comments
 (0)