Skip to content

Commit bc5950b

Browse files
torkjellsdatterIda Torkjellsdatter StorehaugIda Torkjellsdatter Storehaugalibuild
authored
[PWGDQ] MC Acceptance check added to DileptonTrack + minor fixes (#13419)
Co-authored-by: Ida Torkjellsdatter Storehaug <idats@eduroam-193-157-163-9.wlan.uio.no> Co-authored-by: Ida Torkjellsdatter Storehaug <idats@eduroam-193-157-167-231.wlan.uio.no> Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent a3001ce commit bc5950b

File tree

5 files changed

+53
-74
lines changed

5 files changed

+53
-74
lines changed

PWGDQ/Core/HistogramsLibrary.cxx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1808,6 +1808,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
18081808
hm->AddHistogram(histClass, "Pt_Track", "", false, 120, 0.0, 30.0, VarManager::kPt);
18091809
hm->AddHistogram(histClass, "Mass", "", false, 750, 0.0, 30.0, VarManager::kPairMass);
18101810
hm->AddHistogram(histClass, "Pt", "", false, 750, 0.0, 30.0, VarManager::kPairPt);
1811+
hm->AddHistogram(histClass, "Rap", "", false, 100, -10.0, 10.0, VarManager::kPairRap);
18111812
hm->AddHistogram(histClass, "Mass_Pt", "", false, 100, 0.0, 20.0, VarManager::kPairMass, 40, 0.0, 20.0, VarManager::kPairPt);
18121813
hm->AddHistogram(histClass, "Pt_Dilepton__Pt", "", false, 40, 0.0, 20.0, VarManager::kPairPtDau, 40, 0.0, 20.0, VarManager::kPairPt);
18131814
hm->AddHistogram(histClass, "Pt_Track__Pt", "", false, 40, 0.0, 20.0, VarManager::kPt, 40, 0.0, 20.0, VarManager::kPairPt);

PWGDQ/Core/VarManager.cxx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1142,6 +1142,8 @@ void VarManager::SetDefaultVarNames()
11421142
fgVariableUnits[kPairPt] = "GeV/c";
11431143
fgVariableNames[kPairEta] = "#eta";
11441144
fgVariableUnits[kPairEta] = "";
1145+
fgVariableNames[kPairRap] = "#rap";
1146+
fgVariableUnits[kPairRap] = "";
11451147
fgVariableNames[kPairPhi] = "#varphi";
11461148
fgVariableUnits[kPairPhi] = "rad.";
11471149
fgVariableNames[kPairPhiv] = "#varphi_{V}";
@@ -1881,6 +1883,7 @@ void VarManager::SetDefaultVarNames()
18811883
fgVarNamesMap["kPairPt"] = kPairPt;
18821884
fgVarNamesMap["kPairPtDau"] = kPairPtDau;
18831885
fgVarNamesMap["kPairEta"] = kPairEta;
1886+
fgVarNamesMap["kPairRap"] = kPairRap;
18841887
fgVarNamesMap["kPairPhi"] = kPairPhi;
18851888
fgVarNamesMap["kPairPhiv"] = kPairPhiv;
18861889
fgVarNamesMap["kDileptonHadronKstar"] = kDileptonHadronKstar;

PWGDQ/Core/VarManager.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -814,6 +814,7 @@ class VarManager : public TObject
814814
kPairPt,
815815
kPairPtDau,
816816
kPairEta,
817+
kPairRap,
817818
kPairPhi,
818819
kPairPhiv,
819820
kDeltaEta,
@@ -4336,6 +4337,7 @@ void VarManager::FillDileptonTrackVertexing(C const& collision, T1 const& lepton
43364337
values[VarManager::kMassDau] = mtrack;
43374338
values[VarManager::kDeltaMass] = v123.M() - v12.M();
43384339
values[VarManager::kPairPt] = v123.Pt();
4340+
values[VarManager::kPairRap] = -v123.Rapidity();
43394341
values[VarManager::kPairEta] = v123.Eta();
43404342
if (fgUsedVars[kPairMassDau] || fgUsedVars[kPairPtDau]) {
43414343
values[VarManager::kPairMassDau] = v12.M();

PWGDQ/Tasks/dqEfficiency_withAssoc.cxx

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ DECLARE_SOA_COLUMN(massBcandidate, MBcandidate, float);
8484
DECLARE_SOA_COLUMN(MassDileptonCandidate, massDileptonCandidate, float);
8585
DECLARE_SOA_COLUMN(deltaMassBcandidate, deltaMBcandidate, float);
8686
DECLARE_SOA_COLUMN(pTBcandidate, PtBcandidate, float);
87+
DECLARE_SOA_COLUMN(EtaBcandidate, etaBcandidate, float);
88+
DECLARE_SOA_COLUMN(PhiBcandidate, phiBcandidate, float);
89+
DECLARE_SOA_COLUMN(RapBcandidate, rapBcandidate, float);
8790
DECLARE_SOA_COLUMN(LxyBcandidate, lxyBcandidate, float);
8891
DECLARE_SOA_COLUMN(LxyzBcandidate, lxyzBcandidate, float);
8992
DECLARE_SOA_COLUMN(LzBcandidate, lzBcandidate, float);
@@ -118,12 +121,6 @@ DECLARE_SOA_COLUMN(TPCnsigmaPrleg1, tpcnsigmaPrleg1, float);
118121
DECLARE_SOA_COLUMN(TPCnsigmaElleg2, tpcnsigmaElleg2, float);
119122
DECLARE_SOA_COLUMN(TPCnsigmaPileg2, tpcnsigmaPileg2, float);
120123
DECLARE_SOA_COLUMN(TPCnsigmaPrleg2, tpcnsigmaPrleg2, float);
121-
DECLARE_SOA_COLUMN(DCAXYassoc, dcaXYassoc, float);
122-
DECLARE_SOA_COLUMN(DCAZassoc, dcaZassoc, float);
123-
DECLARE_SOA_COLUMN(DCAXYleg1, dcaXYleg1, float);
124-
DECLARE_SOA_COLUMN(DCAZleg1, dcaZleg1, float);
125-
DECLARE_SOA_COLUMN(DCAXYleg2, dcaXYleg2, float);
126-
DECLARE_SOA_COLUMN(DCAZleg2, dcaZleg2, float);
127124
DECLARE_SOA_COLUMN(ITSClusterMapassoc, itsClusterMapassoc, uint8_t);
128125
DECLARE_SOA_COLUMN(ITSClusterMapleg1, itsClusterMapleg1, uint8_t);
129126
DECLARE_SOA_COLUMN(ITSClusterMapleg2, itsClusterMapleg2, uint8_t);
@@ -173,7 +170,7 @@ DECLARE_SOA_TABLE(MuonAmbiguities, "AOD", "DQMUONAMB", dqanalysisflags::MuonAmbi
173170
DECLARE_SOA_TABLE(Prefilter, "AOD", "DQPREFILTER", dqanalysisflags::IsBarrelSelectedPrefilter); //! joinable to ReducedTracksAssoc
174171
DECLARE_SOA_TABLE(BmesonCandidates, "AOD", "DQBMESONS",
175172
dqanalysisflags::RunNumber, dqanalysisflags::EventIdx, dqanalysisflags::EventTimestamp,
176-
dqanalysisflags::massBcandidate, dqanalysisflags::MassDileptonCandidate, dqanalysisflags::deltaMassBcandidate, dqanalysisflags::pTBcandidate,
173+
dqanalysisflags::massBcandidate, dqanalysisflags::MassDileptonCandidate, dqanalysisflags::deltaMassBcandidate, dqanalysisflags::pTBcandidate, dqanalysisflags::EtaBcandidate, dqanalysisflags::PhiBcandidate, dqanalysisflags::RapBcandidate,
177174
dqanalysisflags::LxyBcandidate, dqanalysisflags::LxyzBcandidate, dqanalysisflags::LzBcandidate,
178175
dqanalysisflags::TauxyBcandidate, dqanalysisflags::TauzBcandidate, dqanalysisflags::CosPBcandidate, dqanalysisflags::Chi2Bcandidate,
179176
dqanalysisflags::GlobalIndexassoc, dqanalysisflags::GlobalIndexleg1, dqanalysisflags::GlobalIndexleg2,
@@ -182,7 +179,6 @@ DECLARE_SOA_TABLE(BmesonCandidates, "AOD", "DQBMESONS",
182179
dqanalysisflags::TPCnsigmaKaassoc, dqanalysisflags::TPCnsigmaPiassoc, dqanalysisflags::TPCnsigmaPrassoc, dqanalysisflags::TOFnsigmaKaassoc,
183180
dqanalysisflags::TPCnsigmaElleg1, dqanalysisflags::TPCnsigmaPileg1, dqanalysisflags::TPCnsigmaPrleg1,
184181
dqanalysisflags::TPCnsigmaElleg2, dqanalysisflags::TPCnsigmaPileg2, dqanalysisflags::TPCnsigmaPrleg2,
185-
dqanalysisflags::DCAXYassoc, dqanalysisflags::DCAZassoc, dqanalysisflags::DCAXYleg1, dqanalysisflags::DCAZleg1, dqanalysisflags::DCAXYleg2, dqanalysisflags::DCAZleg2,
186182
dqanalysisflags::ITSClusterMapassoc, dqanalysisflags::ITSClusterMapleg1, dqanalysisflags::ITSClusterMapleg2,
187183
dqanalysisflags::ITSChi2assoc, dqanalysisflags::ITSChi2leg1, dqanalysisflags::ITSChi2leg2,
188184
dqanalysisflags::TPCNclsassoc, dqanalysisflags::TPCNclsleg1, dqanalysisflags::TPCNclsleg2,
@@ -3803,7 +3799,10 @@ struct AnalysisDileptonTrack {
38033799
DefineHistograms(fHistMan, Form("MCTruthGen_%s", sig->GetName()), "");
38043800
DefineHistograms(fHistMan, Form("MCTruthGenSel_%s", sig->GetName()), "");
38053801
}
3806-
DefineHistograms(fHistMan, "MCTruthGenAccepted", "");
3802+
for (auto& sig : fRecMCSignals) {
3803+
DefineHistograms(fHistMan, Form("MCTruthGenSelBR_%s", sig->GetName()), "");
3804+
DefineHistograms(fHistMan, Form("MCTruthGenSelBRAccepted_%s", sig->GetName()), "");
3805+
}
38073806
}
38083807

38093808
TString addHistsStr = fConfigAddJSONHistograms.value;
@@ -3929,7 +3928,7 @@ struct AnalysisDileptonTrack {
39293928
}
39303929
// table to be written out for ML analysis
39313930
BmesonsTable(event.runNumber(), event.globalIndex(), event.timestamp(),
3932-
fValuesHadron[VarManager::kPairMass], dilepton.mass(), fValuesHadron[VarManager::kDeltaMass], fValuesHadron[VarManager::kPairPt],
3931+
fValuesHadron[VarManager::kPairMass], dilepton.mass(), fValuesHadron[VarManager::kDeltaMass], fValuesHadron[VarManager::kPairPt], fValuesHadron[VarManager::kPairEta], fValuesHadron[VarManager::kPairPhi], fValuesHadron[VarManager::kPairRap],
39333932
fValuesHadron[VarManager::kVertexingLxy], fValuesHadron[VarManager::kVertexingLxyz], fValuesHadron[VarManager::kVertexingLz],
39343933
fValuesHadron[VarManager::kVertexingTauxy], fValuesHadron[VarManager::kVertexingTauz], fValuesHadron[VarManager::kCosPointingAngle],
39353934
fValuesHadron[VarManager::kVertexingChi2PCA],
@@ -3938,7 +3937,6 @@ struct AnalysisDileptonTrack {
39383937
track.tpcNSigmaKa(), track.tpcNSigmaPi(), track.tpcNSigmaPr(), track.tofNSigmaKa(),
39393938
lepton1.tpcNSigmaEl(), lepton1.tpcNSigmaPi(), lepton1.tpcNSigmaPr(),
39403939
lepton2.tpcNSigmaEl(), lepton2.tpcNSigmaPi(), lepton2.tpcNSigmaPr(),
3941-
track.dcaXY(), track.dcaZ(), lepton1.dcaXY(), lepton1.dcaZ(), lepton2.dcaXY(), lepton2.dcaZ(),
39423940
track.itsClusterMap(), lepton1.itsClusterMap(), lepton2.itsClusterMap(),
39433941
track.itsChi2NCl(), lepton1.itsChi2NCl(), lepton2.itsChi2NCl(),
39443942
track.tpcNClsFound(), lepton1.tpcNClsFound(), lepton2.tpcNClsFound(),
@@ -4209,40 +4207,44 @@ struct AnalysisDileptonTrack {
42094207
}
42104208
}
42114209

4212-
/*for (auto& [t1, t2, t3] : combinations(groupedMCTracks, groupedMCTracks, groupedMCTracks)) {
4210+
// make a list of all MC tracks in the MC collision corresponding to the current reconstructed event
4211+
std::vector<size_t> mcTrackIndices;
4212+
for (auto& t : groupedMCTracks) {
4213+
mcTrackIndices.push_back(t.globalIndex());
4214+
}
42134215

4214-
if (! (t1.mcReducedFlags() & (uint16_t(1) << fConfigMCGenSignalDileptonLegPos.value))) {
4215-
continue;
4216-
}
4217-
if (t1.pt() < fConfigMCGenDileptonLegPtMin.value) {
4218-
continue;
4219-
}
4220-
if (std::abs(t1.eta()) > fConfigMCGenDileptonLegEtaAbs.value) {
4221-
continue;
4222-
}
4216+
// make a three nested for loop over all MC tracks in the vector
4217+
for (auto t1 : mcTrackIndices) {
4218+
auto track1 = mcTracks.rawIteratorAt(*(&t1));
4219+
for (auto t2 : mcTrackIndices) {
4220+
if (t1 == t2 || t2 < t1)
4221+
continue;
4222+
auto track2 = mcTracks.rawIteratorAt(*(&t2));
4223+
for (auto t3 : mcTrackIndices) {
4224+
if (t3 == t1 || t3 == t2)
4225+
continue;
4226+
auto track3 = mcTracks.rawIteratorAt(*(&t3));
42234227

4224-
if (! (t2.mcReducedFlags() & (uint16_t(1) << fConfigMCGenSignalDileptonLegNeg.value))) {
4225-
continue;
4226-
}
4227-
if (t2.pt() < fConfigMCGenDileptonLegPtMin.value) {
4228-
continue;
4229-
}
4230-
if (std::abs(t2.eta()) > fConfigMCGenDileptonLegEtaAbs.value) {
4231-
continue;
4232-
}
4228+
for (auto& sig : fRecMCSignals) {
4229+
if (sig->CheckSignal(true, track1, track2, track3)) {
4230+
fHistMan->FillHistClass(Form("MCTruthGenSelBR_%s", sig->GetName()), VarManager::fgValues);
42334231

4234-
if (! (t3.mcReducedFlags() & (uint16_t(1) << fConfigMCGenSignalHadron.value))) {
4235-
continue;
4236-
}
4237-
if (t3.pt() < fConfigMCGenHadronPtMin.value) {
4238-
continue;
4239-
}
4240-
if (std::abs(t3.eta()) > fConfigMCGenHadronEtaAbs.value) {
4241-
continue;
4232+
// apply kinematic cuts
4233+
if (track1.pt() < fConfigMCGenDileptonLegPtMin.value || std::abs(track1.eta()) > fConfigMCGenDileptonLegEtaAbs.value) {
4234+
continue;
4235+
}
4236+
if (track2.pt() < fConfigMCGenDileptonLegPtMin.value || std::abs(track2.eta()) > fConfigMCGenDileptonLegEtaAbs.value) {
4237+
continue;
4238+
}
4239+
if (track3.pt() < fConfigMCGenHadronPtMin.value || std::abs(track3.eta()) > fConfigMCGenHadronEtaAbs.value) {
4240+
continue;
4241+
}
4242+
fHistMan->FillHistClass(Form("MCTruthGenSelBRAccepted_%s", sig->GetName()), VarManager::fgValues);
4243+
}
4244+
}
4245+
}
42424246
}
4243-
4244-
fHistMan->FillHistClass("MCTruthGenSelAccepted", VarManager::fgValues);
4245-
}*/
4247+
}
42464248
} // end loop over reconstructed events
42474249
}
42484250

0 commit comments

Comments
 (0)