Skip to content

Commit 36d396d

Browse files
authored
[PWGUD] Remove true tau info from MC tree (#17675)
1 parent 765596e commit 36d396d

2 files changed

Lines changed: 70 additions & 18 deletions

File tree

PWGUD/DataModel/TauThreeProngEventTables.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,10 @@ DECLARE_SOA_COLUMN(TrueChannel, trueChannel, int);
124124
// DECLARE_SOA_COLUMN(TruePosX, truePosX, float);
125125
// DECLARE_SOA_COLUMN(TruePosY, truePosY, float);
126126
DECLARE_SOA_COLUMN(TruePosZ, truePosZ, float);
127-
// truth tau particles // index 0: tau+ // index 1: tau -
128-
DECLARE_SOA_COLUMN(TrueTauPx, trueTauPx, float[2]);
129-
DECLARE_SOA_COLUMN(TrueTauPy, trueTauPy, float[2]);
130-
DECLARE_SOA_COLUMN(TrueTauPz, trueTauPz, float[2]);
127+
// // truth tau particles // index 0: tau+ // index 1: tau -
128+
// DECLARE_SOA_COLUMN(TrueTauPx, trueTauPx, float[2]);
129+
// DECLARE_SOA_COLUMN(TrueTauPy, trueTauPy, float[2]);
130+
// DECLARE_SOA_COLUMN(TrueTauPz, trueTauPz, float[2]);
131131
// truth tau daughter particles - 4 particles
132132
DECLARE_SOA_COLUMN(TrueDaugPx, trueDaugPx, float[4]);
133133
DECLARE_SOA_COLUMN(TrueDaugPy, trueDaugPy, float[4]);
@@ -197,15 +197,15 @@ DECLARE_SOA_TABLE(TrueTauFourTracks, "AOD", "TRUETAU",
197197
tautree::TrueChannel,
198198
// tautree::TrueHasRecoColl,
199199
tautree::TruePosZ,
200-
tautree::TrueTauPx, tautree::TrueTauPy, tautree::TrueTauPz,
200+
// tautree::TrueTauPx, tautree::TrueTauPy, tautree::TrueTauPz,
201201
tautree::TrueDaugPx, tautree::TrueDaugPy, tautree::TrueDaugPz,
202202
tautree::TrueDaugPdgCode,
203203
tautree::Problem);
204204

205205
DECLARE_SOA_TABLE(GenTauFourTracks, "AOD", "GENTAU",
206206
tautree::TrueChannel,
207207
tautree::TruePosZ,
208-
tautree::TrueTauPx, tautree::TrueTauPy, tautree::TrueTauPz,
208+
// tautree::TrueTauPx, tautree::TrueTauPy, tautree::TrueTauPz,
209209
tautree::TrueDaugPx, tautree::TrueDaugPy, tautree::TrueDaugPz,
210210
tautree::TrueDaugPdgCode,
211211
tautree::Problem,
@@ -266,15 +266,15 @@ DECLARE_SOA_TABLE(TrueTauSixTracks, "AOD", "TRUETAUSIX",
266266
tautree::TrueChannel,
267267
// tautree::TrueHasRecoColl,
268268
tautree::TruePosZ,
269-
tautree::TrueTauPx, tautree::TrueTauPy, tautree::TrueTauPz,
269+
// tautree::TrueTauPx, tautree::TrueTauPy, tautree::TrueTauPz,
270270
tautree::True6DaugPx, tautree::True6DaugPy, tautree::True6DaugPz,
271271
tautree::True6DaugPdgCode,
272272
tautree::Problem);
273273

274274
DECLARE_SOA_TABLE(GenTauSixTracks, "AOD", "GENTAUSIX",
275275
tautree::TrueChannel,
276276
tautree::TruePosZ,
277-
tautree::TrueTauPx, tautree::TrueTauPy, tautree::TrueTauPz,
277+
// tautree::TrueTauPx, tautree::TrueTauPy, tautree::TrueTauPz,
278278
tautree::True6DaugPx, tautree::True6DaugPy, tautree::True6DaugPz,
279279
tautree::True6DaugPdgCode,
280280
tautree::Problem,

PWGUD/TableProducer/tauThreeProngEventTableProducer.cxx

Lines changed: 62 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -262,14 +262,21 @@ struct TauThreeProngEventTableProducer {
262262
registrySkim.add("skim/nTof", ";N_{TOFtrk};events", {HistType::kTH1F, {{10, -1., 9.}}});
263263
}
264264
if (doprocessMonteCarlo) {
265-
registrySkim.add("skim/efficiencyMC", ";efficeincy;events", {HistType::kTH1D, {{10, 0., 10.}}});
265+
registrySkim.add("skim/efficiencyMC", ";efficiency;events", {HistType::kTH1D, {{15, 0., 15.}}});
266266
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(1, "1: All");
267267
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(2, "2: N^{#tau}=2");
268268
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(3, "3: |y^{#tau}| <= 0.9");
269269
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(4, "4: |#eta^{ch}|<0.9");
270270
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(5, "5: 4 or 6 trk");
271-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(6, "6: 4 trk");
272-
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(7, "7: 6 trk");
271+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(6, "e+3#pi");
272+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(7, "#mu+3#pi");
273+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(8, "#pi+3#pi");
274+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(9, "6#pi");
275+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(10, "rec");
276+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(11, "rec e+3#pi");
277+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(12, "rec #mu+3#pi");
278+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(13, "rec #pi+3#pi");
279+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->GetXaxis()->SetBinLabel(14, "rec 6#pi");
273280

274281
registrySkim.add("skim/problemMC", ";problem;events", {HistType::kTH1D, {{10, 0., 10.}}});
275282

@@ -280,13 +287,14 @@ struct TauThreeProngEventTableProducer {
280287
registrySkim.add("skim/tauPtMC", ";p_{T}^{#tau};events", {HistType::kTH1F, {{100, 0, 5.}}});
281288
registrySkim.add("skim/tauDeltaEtaMC", ";#Delta#eta^{#tau};events ", {HistType::kTH1F, {{100, -5., 5.}}});
282289
registrySkim.add("skim/tauDeltaPhiMC", ";#Delta#phi^{#tau}(deg.);events", {HistType::kTH1F, {{100, 131., 181}}});
290+
registrySkim.add("skim/ditauInvMassMC", ";M_{inv}^{#tau#tau}(GeV/#it{c}^{2});events", {HistType::kTH1F, {{100, 3.4, 13.4}}});
283291
registrySkim.add("skim/nChPartMC", ";N^{ch. part};events", {HistType::kTH1F, {{10, 0, 10.}}});
284292
registrySkim.add("skim/daughterPhiMC", ";#phi^{daughter};events", {HistType::kTH1F, {{100, 0, 6.4}}});
285293
registrySkim.add("skim/daughterEtaMC", ";#eta^{daughter};events", {HistType::kTH1F, {{100, -4., 4.}}});
286294
registrySkim.add("skim/daughterPtMC", ";p_{T}^{daughter};events", {HistType::kTH1F, {{100, 0, 5.0}}});
287295
}
288296
if (doprocessGenerated) {
289-
registrySkim.add("gen/efficiencyMC", ";efficeincy;events", {HistType::kTH1D, {{10, 0., 10.}}});
297+
registrySkim.add("gen/efficiencyMC", ";efficiency;events", {HistType::kTH1D, {{15, 0., 15.}}});
290298
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(1, "All");
291299
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(2, "N^{#tau}=2");
292300
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(3, "|y^{#tau}| <=0.9");
@@ -299,6 +307,10 @@ struct TauThreeProngEventTableProducer {
299307
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(8, "#pi+3#pi");
300308
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(9, "6#pi");
301309
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(10, "rec");
310+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(11, "rec e+3#pi");
311+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(12, "rec #mu+3#pi");
312+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(13, "rec #pi+3#pi");
313+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->GetXaxis()->SetBinLabel(14, "rec 6#pi");
302314

303315
registrySkim.add("gen/problemMC", ";problem;events", {HistType::kTH1D, {{10, 0., 10.}}});
304316
registrySkim.get<TH1>(HIST("gen/problemMC"))->GetXaxis()->SetBinLabel(1, "1: NoProblem");
@@ -315,6 +327,7 @@ struct TauThreeProngEventTableProducer {
315327
registrySkim.add("gen/tauPtMC", ";p_{T}^{#tau};events", {HistType::kTH1F, {{100, 0, 5.}}});
316328
registrySkim.add("gen/tauDeltaEtaMC", ";#Delta#eta^{#tau};events ", {HistType::kTH1F, {{100, -5., 5.}}});
317329
registrySkim.add("gen/tauDeltaPhiMC", ";#Delta#phi^{#tau}(deg.);events", {HistType::kTH1F, {{100, 131., 181}}});
330+
registrySkim.add("gen/ditauInvMassMC", ";M_{inv}^{#tau#tau}(GeV/#it{c}^{2});events", {HistType::kTH1F, {{100, 3.4, 13.4}}});
318331
registrySkim.add("gen/nChPartMC", ";N^{ch. part};events", {HistType::kTH1F, {{10, 0, 10.}}});
319332
registrySkim.add("gen/daughterPhiMC", ";#phi^{daughter};events", {HistType::kTH1F, {{100, 0, 6.4}}});
320333
registrySkim.add("gen/daughterEtaMC", ";#eta^{daughter};events", {HistType::kTH1F, {{100, -4., 4.}}});
@@ -1212,6 +1225,13 @@ struct TauThreeProngEventTableProducer {
12121225
registrySkim.get<TH1>(HIST("skim/tauDeltaEtaMC"))->Fill(trueTauEta[0] - trueTauEta[1]);
12131226
registrySkim.get<TH1>(HIST("skim/tauDeltaPhiMC"))->Fill(calculateDeltaPhi(trueTauPhi[0], trueTauPhi[1]) * 180. / o2::constants::math::PI);
12141227

1228+
// inv mass of two taus
1229+
ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double>> tau1;
1230+
ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double>> tau2;
1231+
tau1.SetXYZT(trueTauX[0], trueTauY[0], trueTauZ[0], RecoDecay::e(trueTauX[0], trueTauY[0], trueTauZ[0], MassTauPlus));
1232+
tau2.SetXYZT(trueTauX[1], trueTauY[1], trueTauZ[1], RecoDecay::e(trueTauX[1], trueTauY[1], trueTauZ[1], MassTauPlus));
1233+
registrySkim.get<TH1>(HIST("skim/ditauInvMassMC"))->Fill((tau1 + tau2).M());
1234+
12151235
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->Fill(2., 1.); // |y_tau| <= 0.9
12161236
countMothers = 0;
12171237
int nChargedDaughtersTau[2] = {0, 0};
@@ -1385,6 +1405,17 @@ struct TauThreeProngEventTableProducer {
13851405
if (verbose)
13861406
LOGF(info, "--- MC Collision has reconstructed collision!");
13871407
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->Fill(9., 1.);
1408+
// reconstruction in a given channel
1409+
if (nElec == oneProng && nPi == threeProng) { // 1 + 3
1410+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->Fill(10., 1.);
1411+
} else if (nMuon == oneProng && nPi == threeProng) { // 1 + 3
1412+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->Fill(11., 1.);
1413+
} else if (nPi == fourTracks) { // 4
1414+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->Fill(12., 1.);
1415+
} else if (nPi == sixTracks) { // 6
1416+
registrySkim.get<TH1>(HIST("skim/efficiencyMC"))->Fill(13., 1.);
1417+
}
1418+
13881419
// trueHasRecoColl = true;
13891420
// check there is exactly one reco-level collision associated to generated collision
13901421
if (collFromMcColls.size() > 1) {
@@ -1641,7 +1672,7 @@ struct TauThreeProngEventTableProducer {
16411672
trueChannel,
16421673
// trueHasRecoColl,
16431674
mccoll.posZ(),
1644-
trueTauX, trueTauY, trueTauZ,
1675+
// trueTauX, trueTauY, trueTauZ,
16451676
trueDaugX, trueDaugY, trueDaugZ,
16461677
trueDaugPdgCode, problem);
16471678
} else if (nChargedDaughtersTau[0] + nChargedDaughtersTau[1] == sixTracks) { // 6
@@ -1673,7 +1704,7 @@ struct TauThreeProngEventTableProducer {
16731704
trueChannel,
16741705
// trueHasRecoColl,
16751706
mccoll.posZ(),
1676-
trueTauX, trueTauY, trueTauZ,
1707+
// trueTauX, trueTauY, trueTauZ,
16771708
trueDaugX, trueDaugY, trueDaugZ,
16781709
trueDaugPdgCode, problem);
16791710
} // end of saving the output
@@ -1795,6 +1826,13 @@ struct TauThreeProngEventTableProducer {
17951826
registrySkim.get<TH1>(HIST("gen/tauDeltaEtaMC"))->Fill(trueTauEta[0] - trueTauEta[1]);
17961827
registrySkim.get<TH1>(HIST("gen/tauDeltaPhiMC"))->Fill(calculateDeltaPhi(trueTauPhi[0], trueTauPhi[1]) * 180. / o2::constants::math::PI);
17971828

1829+
// inv mass of two taus
1830+
ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double>> tau1;
1831+
ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double>> tau2;
1832+
tau1.SetXYZT(trueTauX[0], trueTauY[0], trueTauZ[0], RecoDecay::e(trueTauX[0], trueTauY[0], trueTauZ[0], MassTauPlus));
1833+
tau2.SetXYZT(trueTauX[1], trueTauY[1], trueTauZ[1], RecoDecay::e(trueTauX[1], trueTauY[1], trueTauZ[1], MassTauPlus));
1834+
registrySkim.get<TH1>(HIST("gen/ditauInvMassMC"))->Fill((tau1 + tau2).M());
1835+
17981836
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->Fill(2., 1.); // |y_tau| <= 0.9
17991837
countMothers = 0;
18001838
int nChargedDaughtersTau[2] = {0, 0};
@@ -1954,6 +1992,18 @@ struct TauThreeProngEventTableProducer {
19541992
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->Fill(9., 1.);
19551993
if (verbose)
19561994
LOGF(info, "--- MC Collision has reconstructed collision!");
1995+
1996+
// reconstruction in a given channel
1997+
if (nElec == oneProng && nPi == threeProng) { // 1 + 3
1998+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->Fill(10., 1.);
1999+
} else if (nMuon == oneProng && nPi == threeProng) { // 1 + 3
2000+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->Fill(11., 1.);
2001+
} else if (nPi == fourTracks) { // 4
2002+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->Fill(12., 1.);
2003+
} else if (nPi == sixTracks) { // 6
2004+
registrySkim.get<TH1>(HIST("gen/efficiencyMC"))->Fill(13., 1.);
2005+
}
2006+
19572007
} else { // get only the truth information.
19582008
if (verbose)
19592009
LOGF(info, "MC Collision has NO reconstructed collision!");
@@ -1965,17 +2015,19 @@ struct TauThreeProngEventTableProducer {
19652015
genTauFourTracks(
19662016
trueChannel,
19672017
mccoll.posZ(),
1968-
trueTauX, trueTauY, trueTauZ,
2018+
// trueTauX, trueTauY, trueTauZ,
19692019
trueDaugX, trueDaugY, trueDaugZ,
1970-
trueDaugPdgCode, problem,
2020+
trueDaugPdgCode,
2021+
problem,
19712022
trueHasRecoColl);
19722023
} else if (nChargedDaughtersTau[0] + nChargedDaughtersTau[1] == sixTracks) { // 6
19732024
genTauSixTracks(
19742025
trueChannel,
19752026
mccoll.posZ(),
1976-
trueTauX, trueTauY, trueTauZ,
2027+
// trueTauX, trueTauY, trueTauZ,
19772028
trueDaugX, trueDaugY, trueDaugZ,
1978-
trueDaugPdgCode, problem,
2029+
trueDaugPdgCode,
2030+
problem,
19792031
trueHasRecoColl);
19802032
} // end of writing output
19812033

0 commit comments

Comments
 (0)