Skip to content

Commit 2b9f215

Browse files
author
Changhwan Choi
committed
GNN b-jet histograms revised
1 parent 25109b7 commit 2b9f215

File tree

1 file changed

+53
-27
lines changed

1 file changed

+53
-27
lines changed

PWGJE/Tasks/bjetTaggingGnn.cxx

Lines changed: 53 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -263,41 +263,48 @@ struct BjetTaggingGnn {
263263
registry.add("h_gnnfeat_trackPhi", "", {HistType::kTH1F, {{200, 0., 2. * M_PI, "#it{#phi}"}}});
264264
registry.add("h_gnnfeat_trackEta", "", {HistType::kTH1F, {{200, -0.9, 0.9, "#it{#eta}"}}});
265265
registry.add("h_gnnfeat_trackCharge", "", {HistType::kTH1F, {{3, -1., 2., "#it{q}"}}});
266-
registry.add("h_gnnfeat_trackDCAxy", "", {HistType::kTH1F, {{200, -5., 5., "DCA_#it{xy} (cm)"}}});
267-
registry.add("h_gnnfeat_trackSigmaDCAxy", "", {HistType::kTH1F, {{200, 0., 5., "#it{#sigma}_{{DCA_#it{xy}} (cm)"}}});
268-
registry.add("h_gnnfeat_trackDCAz", "", {HistType::kTH1F, {{200, -5., 5., "DCA_#it{z} (cm)"}}});
269-
registry.add("h_gnnfeat_trackSigmaDCAz", "", {HistType::kTH1F, {{200, 0., 5., "#it{#sigma}_{{DCA_#it{z}} (cm)"}}});
266+
registry.add("h_gnnfeat_trackDCAxy", "", {HistType::kTH1F, {{200, -5., 5., "DCA_{#it{xy}} (cm)"}}});
267+
registry.add("h_gnnfeat_trackSigmaDCAxy", "", {HistType::kTH1F, {{200, 0., 5., "#it{#sigma}_{{DCA_{#it{xy}}} (cm)"}}});
268+
registry.add("h_gnnfeat_trackDCAz", "", {HistType::kTH1F, {{200, -5., 5., "DCA_{#it{z}} (cm)"}}});
269+
registry.add("h_gnnfeat_trackSigmaDCAz", "", {HistType::kTH1F, {{200, 0., 5., "#it{#sigma}_{{DCA_{#it{z}}} (cm)"}}});
270270
registry.add("h_gnnfeat_trackITSChi2NCl", "", {HistType::kTH1F, {{200, 0., 40., "ITS #it{#chi}^{2}/ndf"}}});
271271
registry.add("h_gnnfeat_trackTPCChi2NCl", "", {HistType::kTH1F, {{200, 0., 5., "TPC #it{#chi}^{2}/ndf"}}});
272272
registry.add("h_gnnfeat_trackITSNCls", "", {HistType::kTH1F, {{8, 0., 8., "ITS NCls"}}});
273273
registry.add("h_gnnfeat_trackTPCNCls", "", {HistType::kTH1F, {{153, 0., 153., "TPC NCls"}}});
274274
registry.add("h_gnnfeat_trackTPCNCrossedRows", "", {HistType::kTH1F, {{153, 0., 153., "TPC NCrossedRows"}}});
275-
registry.add("h_gnnfeat_tracksIPxy", "", {HistType::kTH1F, {{200, -5., 5., "{sIP}_#it{xy}"}}});
276-
registry.add("h_gnnfeat_tracksIPz", "", {HistType::kTH1F, {{200, -5., 5., "{sIP}_#it{z}"}}});
275+
registry.add("h_gnnfeat_tracksIPxy", "", {HistType::kTH1F, {{200, -5., 5., "{sIP}_{#it{xy}}"}}});
276+
registry.add("h_gnnfeat_tracksIPz", "", {HistType::kTH1F, {{200, -5., 5., "{sIP}_{#it{z}}"}}});
277277

278278
if (doprocessDataTracks || doprocessMCDTracks) {
279279
registry.add("h_trackpT", "", {HistType::kTH1F, {axisTrackpT}}, callSumw2);
280280
registry.add("h_tracketa", "", {HistType::kTH1F, {{100, trackEtaMin, trackEtaMax, "#it{#eta}"}}}, callSumw2);
281281
registry.add("h_trackphi", "", {HistType::kTH1F, {{100, 0.0, 2.0 * M_PI, "#it{#phi}"}}}, callSumw2);
282+
registry.add("h_dcaXY", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{xy}}| (cm)"}}}, callSumw2);
283+
registry.add("h_dcaZ", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{z}}| (cm)"}}}, callSumw2);
282284
}
283285

284286
if (doprocessMCDTracks) {
285287
registry.add("h2_trackpT_partpT", "", {HistType::kTH2F, {axisTrackpT, axisTrackpT}}, callSumw2);
286288
registry.add("h_partpT_matched_fine", "", {HistType::kTH1F, {axisTrackpTFine}}, callSumw2);
287289
registry.add("h_partpT", "", {HistType::kTH1F, {axisTrackpT}}, callSumw2);
288290
registry.add("h_partpT_fine", "", {HistType::kTH1F, {axisTrackpTFine}}, callSumw2);
289-
registry.add("h_dcaXY_coll_matched", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_#it{xy}| (cm)"}}}, callSumw2);
290-
registry.add("h_dcaXY_coll_matched_b", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_#it{xy}| (cm)"}}}, callSumw2);
291-
registry.add("h_dcaXY_coll_matched_c", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_#it{xy}| (cm)"}}}, callSumw2);
292-
registry.add("h_dcaXY_coll_matched_lf", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_#it{xy}| (cm)"}}}, callSumw2);
293-
registry.add("h_dcaXY_coll_mismatched", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_#it{xy}| (cm)"}}}, callSumw2);
294-
registry.add("h_dcaXY_npp", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_#it{xy}| (cm)"}}}, callSumw2);
295-
registry.add("h_dcaZ_coll_matched", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_#it{z}| (cm)"}}}, callSumw2);
296-
registry.add("h_dcaZ_coll_matched_b", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_#it{z}| (cm)"}}}, callSumw2);
297-
registry.add("h_dcaZ_coll_matched_c", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_#it{z}| (cm)"}}}, callSumw2);
298-
registry.add("h_dcaZ_coll_matched_lf", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_#it{z}| (cm)"}}}, callSumw2);
299-
registry.add("h_dcaZ_coll_mismatched", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_#it{z}| (cm)"}}}, callSumw2);
300-
registry.add("h_dcaZ_npp", "", {HistType::kTH1F, {{200, 0., 5., "|DCA_#it{z}| (cm)"}}}, callSumw2);
291+
// DCA cut study histograms (pT > pTMin)
292+
registry.add("h_dcaXY_coll_fake", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{xy}}| (cm)"}}}, callSumw2); // tracks from fake collisions
293+
registry.add("h_dcaXY_fake", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{xy}}| (cm)"}}}, callSumw2); // fake tracks (no matched particle)
294+
registry.add("h_dcaXY_coll_matched", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{xy}}| (cm)"}}}, callSumw2); // tracks from matched collisions
295+
registry.add("h_dcaXY_coll_matched_b", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{xy}}| (cm)"}}}, callSumw2); // tracks from matched collisions, b hadron decay
296+
registry.add("h_dcaXY_coll_matched_c", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{xy}}| (cm)"}}}, callSumw2); // tracks from matched collisions, c hadron decay
297+
registry.add("h_dcaXY_coll_matched_lf", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{xy}}| (cm)"}}}, callSumw2); // tracks from matched collisions, others
298+
registry.add("h_dcaXY_coll_mismatched", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{xy}}| (cm)"}}}, callSumw2); // tracks from mismatched collisions
299+
registry.add("h_dcaXY_npp", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{xy}}| (cm)"}}}, callSumw2); // non-physical primary tracks (GenStatusCode=-1)
300+
registry.add("h_dcaZ_coll_fake", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{z}}| (cm)"}}}, callSumw2);
301+
registry.add("h_dcaZ_fake", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{z}}| (cm)"}}}, callSumw2);
302+
registry.add("h_dcaZ_coll_matched", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{z}}| (cm)"}}}, callSumw2);
303+
registry.add("h_dcaZ_coll_matched_b", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{z}}| (cm)"}}}, callSumw2);
304+
registry.add("h_dcaZ_coll_matched_c", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{z}}| (cm)"}}}, callSumw2);
305+
registry.add("h_dcaZ_coll_matched_lf", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{z}}| (cm)"}}}, callSumw2);
306+
registry.add("h_dcaZ_coll_mismatched", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{z}}| (cm)"}}}, callSumw2);
307+
registry.add("h_dcaZ_npp", "", {HistType::kTH1F, {{200, 0., 4., "|DCA_{#it{z}}| (cm)"}}}, callSumw2);
301308
}
302309

303310
if (doprocessDataJetsSel || doprocessMCDJetsSel) {
@@ -822,6 +829,10 @@ struct BjetTaggingGnn {
822829
registry.fill(HIST("h_trackpT"), track.pt());
823830
registry.fill(HIST("h_tracketa"), track.eta());
824831
registry.fill(HIST("h_trackphi"), track.phi());
832+
if (track.pt() >= trackPtMin) {
833+
registry.fill(HIST("h_dcaXY"), std::fabs(track.dcaXY()));
834+
registry.fill(HIST("h_dcaZ"), std::fabs(track.dcaZ()));
835+
}
825836
}
826837
}
827838
PROCESS_SWITCH(BjetTaggingGnn, processDataTracks, "track information in Data", false);
@@ -1095,17 +1106,34 @@ struct BjetTaggingGnn {
10951106
registry.fill(HIST("h_trackpT"), track.pt(), weightEvt);
10961107
registry.fill(HIST("h_tracketa"), track.eta(), weightEvt);
10971108
registry.fill(HIST("h_trackphi"), track.phi(), weightEvt);
1109+
if (track.pt() >= trackPtMin) {
1110+
registry.fill(HIST("h_dcaXY"), std::fabs(track.dcaXY()), weightEvt);
1111+
registry.fill(HIST("h_dcaZ"), std::fabs(track.dcaZ()), weightEvt);
1112+
}
10981113

1099-
if (!matchedMcColl || !track.has_mcParticle()) {
1114+
if (!matchedMcColl) {
1115+
if (track.pt() >= trackPtMin) {
1116+
registry.fill(HIST("h_dcaXY_coll_fake"), std::fabs(track.dcaXY()), weightEvt);
1117+
registry.fill(HIST("h_dcaZ_coll_fake"), std::fabs(track.dcaZ()), weightEvt);
1118+
}
1119+
continue;
1120+
}
1121+
if (!track.has_mcParticle()) {
1122+
if (track.pt() >= trackPtMin) {
1123+
registry.fill(HIST("h_dcaXY_fake"), std::fabs(track.dcaXY()), weightEvt);
1124+
registry.fill(HIST("h_dcaZ_fake"), std::fabs(track.dcaZ()), weightEvt);
1125+
}
11001126
continue;
11011127
}
11021128
auto particle = track.template mcParticle_as<aod::JetParticles>();
1103-
if (particle.isPhysicalPrimary()) {
1104-
if (particle.eta() > trackEtaMin && particle.eta() < trackEtaMax) {
1129+
if (particle.eta() > trackEtaMin && particle.eta() < trackEtaMax) {
1130+
if (particle.isPhysicalPrimary()) {
11051131
registry.fill(HIST("h2_trackpT_partpT"), track.pt(), particle.pt(), weightEvt);
11061132
registry.fill(HIST("h_partpT_matched_fine"), particle.pt(), weightEvt);
1133+
}
1134+
if (track.pt() >= trackPtMin) {
11071135
// Track association accuracy as a function of DCA
1108-
if (track.pt() >= trackPtMin) {
1136+
if (particle.isPhysicalPrimary()) {
11091137
if (particle.mcCollisionId() == collision.mcCollisionId()) {
11101138
registry.fill(HIST("h_dcaXY_coll_matched"), std::fabs(track.dcaXY()), weightEvt); // Matched to particle from the same MC collision
11111139
registry.fill(HIST("h_dcaZ_coll_matched"), std::fabs(track.dcaZ()), weightEvt);
@@ -1124,13 +1152,11 @@ struct BjetTaggingGnn {
11241152
registry.fill(HIST("h_dcaXY_coll_mismatched"), std::fabs(track.dcaXY()), weightEvt); // Matched to particle from a different MC collision
11251153
registry.fill(HIST("h_dcaZ_coll_mismatched"), std::fabs(track.dcaZ()), weightEvt);
11261154
}
1155+
} else {
1156+
registry.fill(HIST("h_dcaXY_npp"), std::fabs(track.dcaXY()), weightEvt);
1157+
registry.fill(HIST("h_dcaZ_npp"), std::fabs(track.dcaZ()), weightEvt);
11271158
}
11281159
}
1129-
} else {
1130-
if (particle.eta() > trackEtaMin && particle.eta() < trackEtaMax && track.pt() >= trackPtMin) {
1131-
registry.fill(HIST("h_dcaXY_npp"), std::fabs(track.dcaXY()), weightEvt);
1132-
registry.fill(HIST("h_dcaZ_npp"), std::fabs(track.dcaZ()), weightEvt);
1133-
}
11341160
}
11351161
}
11361162

0 commit comments

Comments
 (0)