Skip to content

Commit 669c7f8

Browse files
authored
[PWGLF] added histos for prim, sec and sec from v0 (#10240)
1 parent e067b9a commit 669c7f8

File tree

1 file changed

+70
-41
lines changed

1 file changed

+70
-41
lines changed

PWGLF/Tasks/QC/lfITSTPCMatchingSecondaryTracksQA.cxx

Lines changed: 70 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -94,18 +94,22 @@ struct LfITSTPCMatchingSecondaryTracksQA {
9494
// Event Counters
9595
if (doprocessData) {
9696
registryData.add("number_of_events_data", "number of events in data", HistType::kTH1D, {{20, 0, 20, "Event Cuts"}});
97-
registryData.add("gloPionTPC", "gloPionTPC", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
98-
registryData.add("gloPionTPC_ITS", "gloPionTPC_ITS", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
97+
registryData.add("primPionTPC", "primPionTPC", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
98+
registryData.add("primPionTPC_ITS", "primPionTPC_ITS", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
9999
registryData.add("secPionTPC", "secPionTPC", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
100100
registryData.add("secPionTPC_ITS", "secPionTPC_ITS", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
101+
registryData.add("secPionV0TPC", "secPionV0TPC", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
102+
registryData.add("secPionV0TPC_ITS", "secPionV0TPC_ITS", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
101103
}
102104

103105
if (doprocessMC) {
104106
registryMC.add("number_of_events_mc", "number of events in mc", HistType::kTH1D, {{20, 0, 20, "Event Cuts"}});
105-
registryMC.add("gloPionTPC_MC", "gloPionTPC_MC", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
106-
registryMC.add("gloPionTPC_ITS_MC", "gloPionTPC_ITS_MC", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
107+
registryMC.add("primPionTPC_MC", "primPionTPC_MC", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
108+
registryMC.add("primPionTPC_ITS_MC", "primPionTPC_ITS_MC", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
107109
registryMC.add("secPionTPC_MC", "secPionTPC_MC", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
108110
registryMC.add("secPionTPC_ITS_MC", "secPionTPC_ITS_MC", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
111+
registryMC.add("secPionV0TPC_MC", "secPionV0TPC_MC", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
112+
registryMC.add("secPionV0TPC_ITS_MC", "secPionV0TPC_ITS_MC", HistType::kTH3D, {{100, 0, 10, "#it{p}_{T} (GeV/#it{c})"}, {16, -0.8, 0.8, "#eta"}, {100, 0, TwoPI, "#phi"}});
109113
}
110114
}
111115

@@ -115,8 +119,8 @@ struct LfITSTPCMatchingSecondaryTracksQA {
115119
return (itsClsmap & testBit);
116120
}
117121

118-
template <typename TpcTrackGlo>
119-
bool passedTrackSelectionTpcGlobal(const TpcTrackGlo& track)
122+
template <typename TpcPrimTrack>
123+
bool passedTrackSelectionTpcPrimary(const TpcPrimTrack& track)
120124
{
121125
if (!track.hasTPC())
122126
return false;
@@ -128,14 +132,33 @@ struct LfITSTPCMatchingSecondaryTracksQA {
128132
return false;
129133
if (track.eta() < etaMin || track.eta() > etaMax)
130134
return false;
131-
if (std::sqrt(track.dcaXY() * track.dcaXY() + track.dcaZ() * track.dcaZ()) < dcaMin)
135+
if (std::fabs(track.dcaXY()) > dcaxyMax)
136+
return false;
137+
if (std::fabs(track.dcaZ()) > dcazMax)
132138
return false;
139+
return true;
140+
}
133141

142+
template <typename TpcSecTrack>
143+
bool passedTrackSelectionTpcSecondary(const TpcSecTrack& track)
144+
{
145+
if (!track.hasTPC())
146+
return false;
147+
if (track.tpcNClsCrossedRows() < minNCrossedRowsTPC)
148+
return false;
149+
if ((static_cast<float>(track.tpcNClsCrossedRows()) / static_cast<float>(track.tpcNClsFindable())) < minNCrossedRowsOverFindable)
150+
return false;
151+
if (track.tpcChi2NCl() > maxChi2TPC)
152+
return false;
153+
if (track.eta() < etaMin || track.eta() > etaMax)
154+
return false;
155+
if (std::sqrt(track.dcaXY() * track.dcaXY() + track.dcaZ() * track.dcaZ()) < dcaMin)
156+
return false;
134157
return true;
135158
}
136159

137-
template <typename TpcTrack>
138-
bool passedTrackSelectionTpc(const TpcTrack& track)
160+
template <typename v0Track>
161+
bool passedTrackSelectionV0daughTPC(const v0Track& track)
139162
{
140163
if (!track.hasTPC())
141164
return false;
@@ -218,11 +241,17 @@ struct LfITSTPCMatchingSecondaryTracksQA {
218241

219242
for (const auto& track : tracks) {
220243

221-
if (passedTrackSelectionTpcGlobal(track) && passedPionSelection(track))
222-
registryData.fill(HIST("gloPionTPC"), track.pt(), track.eta(), TVector2::Phi_0_2pi(track.phi()));
223-
224-
if (passedTrackSelectionTpcGlobal(track) && passedPionSelection(track) && track.hasITS())
225-
registryData.fill(HIST("gloPionTPC_ITS"), track.pt(), track.eta(), TVector2::Phi_0_2pi(track.phi()));
244+
// Primary Tracks
245+
if (passedTrackSelectionTpcPrimary(track) && passedPionSelection(track))
246+
registryData.fill(HIST("primPionTPC"), track.pt(), track.eta(), TVector2::Phi_0_2pi(track.phi()));
247+
if (passedTrackSelectionTpcPrimary(track) && passedPionSelection(track) && passedTrackSelectionIts(track))
248+
registryData.fill(HIST("primPionTPC_ITS"), track.pt(), track.eta(), TVector2::Phi_0_2pi(track.phi()));
249+
250+
// Secondary Tracks
251+
if (passedTrackSelectionTpcSecondary(track) && passedPionSelection(track))
252+
registryData.fill(HIST("secPionTPC"), track.pt(), track.eta(), TVector2::Phi_0_2pi(track.phi()));
253+
if (passedTrackSelectionTpcSecondary(track) && passedPionSelection(track) && track.hasITS())
254+
registryData.fill(HIST("secPionTPC_ITS"), track.pt(), track.eta(), TVector2::Phi_0_2pi(track.phi()));
226255
}
227256

228257
for (const auto& v0 : fullV0s) {
@@ -232,17 +261,14 @@ struct LfITSTPCMatchingSecondaryTracksQA {
232261
if (!passedK0ShortSelection(v0))
233262
continue;
234263

235-
if (passedTrackSelectionTpc(posTrack) && passedPionSelection(posTrack))
236-
registryData.fill(HIST("secPionTPC"), posTrack.pt(), posTrack.eta(), TVector2::Phi_0_2pi(posTrack.phi()));
237-
238-
if (passedTrackSelectionTpc(negTrack) && passedPionSelection(negTrack))
239-
registryData.fill(HIST("secPionTPC"), negTrack.pt(), negTrack.eta(), TVector2::Phi_0_2pi(negTrack.phi()));
240-
241-
if (passedTrackSelectionTpc(posTrack) && passedPionSelection(posTrack) && posTrack.hasITS())
242-
registryData.fill(HIST("secPionTPC_ITS"), posTrack.pt(), posTrack.eta(), TVector2::Phi_0_2pi(posTrack.phi()));
243-
244-
if (passedTrackSelectionTpc(negTrack) && passedPionSelection(negTrack) && negTrack.hasITS())
245-
registryData.fill(HIST("secPionTPC_ITS"), negTrack.pt(), negTrack.eta(), TVector2::Phi_0_2pi(negTrack.phi()));
264+
if (passedTrackSelectionV0daughTPC(posTrack) && passedPionSelection(posTrack))
265+
registryData.fill(HIST("secPionV0TPC"), posTrack.pt(), posTrack.eta(), TVector2::Phi_0_2pi(posTrack.phi()));
266+
if (passedTrackSelectionV0daughTPC(negTrack) && passedPionSelection(negTrack))
267+
registryData.fill(HIST("secPionV0TPC"), negTrack.pt(), negTrack.eta(), TVector2::Phi_0_2pi(negTrack.phi()));
268+
if (passedTrackSelectionV0daughTPC(posTrack) && passedPionSelection(posTrack) && posTrack.hasITS())
269+
registryData.fill(HIST("secPionV0TPC_ITS"), posTrack.pt(), posTrack.eta(), TVector2::Phi_0_2pi(posTrack.phi()));
270+
if (passedTrackSelectionV0daughTPC(negTrack) && passedPionSelection(negTrack) && negTrack.hasITS())
271+
registryData.fill(HIST("secPionV0TPC_ITS"), negTrack.pt(), negTrack.eta(), TVector2::Phi_0_2pi(negTrack.phi()));
246272
}
247273
}
248274
PROCESS_SWITCH(LfITSTPCMatchingSecondaryTracksQA, processData, "Process data", true);
@@ -264,11 +290,17 @@ struct LfITSTPCMatchingSecondaryTracksQA {
264290

265291
for (const auto& track : tracksPerColl) {
266292

267-
if (passedTrackSelectionTpcGlobal(track) && passedPionSelection(track))
268-
registryMC.fill(HIST("gloPionTPC_MC"), track.pt(), track.eta(), TVector2::Phi_0_2pi(track.phi()));
269-
270-
if (passedTrackSelectionTpcGlobal(track) && passedPionSelection(track) && track.hasITS())
271-
registryMC.fill(HIST("gloPionTPC_ITS_MC"), track.pt(), track.eta(), TVector2::Phi_0_2pi(track.phi()));
293+
// Primary Tracks
294+
if (passedTrackSelectionTpcPrimary(track) && passedPionSelection(track))
295+
registryMC.fill(HIST("primPionTPC_MC"), track.pt(), track.eta(), TVector2::Phi_0_2pi(track.phi()));
296+
if (passedTrackSelectionTpcPrimary(track) && passedPionSelection(track) && passedTrackSelectionIts(track))
297+
registryMC.fill(HIST("primPionTPC_ITS_MC"), track.pt(), track.eta(), TVector2::Phi_0_2pi(track.phi()));
298+
299+
// Secondary Tracks
300+
if (passedTrackSelectionTpcSecondary(track) && passedPionSelection(track))
301+
registryMC.fill(HIST("secPionTPC_MC"), track.pt(), track.eta(), TVector2::Phi_0_2pi(track.phi()));
302+
if (passedTrackSelectionTpcSecondary(track) && passedPionSelection(track) && track.hasITS())
303+
registryMC.fill(HIST("secPionTPC_ITS_MC"), track.pt(), track.eta(), TVector2::Phi_0_2pi(track.phi()));
272304
}
273305

274306
for (const auto& v0 : v0sPerColl) {
@@ -278,17 +310,14 @@ struct LfITSTPCMatchingSecondaryTracksQA {
278310
if (!passedK0ShortSelection(v0))
279311
continue;
280312

281-
if (passedTrackSelectionTpc(posTrack) && passedPionSelection(posTrack))
282-
registryMC.fill(HIST("secPionTPC_MC"), posTrack.pt(), posTrack.eta(), TVector2::Phi_0_2pi(posTrack.phi()));
283-
284-
if (passedTrackSelectionTpc(negTrack) && passedPionSelection(negTrack))
285-
registryMC.fill(HIST("secPionTPC_MC"), negTrack.pt(), negTrack.eta(), TVector2::Phi_0_2pi(negTrack.phi()));
286-
287-
if (passedTrackSelectionTpc(posTrack) && passedPionSelection(posTrack) && posTrack.hasITS())
288-
registryMC.fill(HIST("secPionTPC_ITS_MC"), posTrack.pt(), posTrack.eta(), TVector2::Phi_0_2pi(posTrack.phi()));
289-
290-
if (passedTrackSelectionTpc(negTrack) && passedPionSelection(negTrack) && negTrack.hasITS())
291-
registryMC.fill(HIST("secPionTPC_ITS_MC"), negTrack.pt(), negTrack.eta(), TVector2::Phi_0_2pi(negTrack.phi()));
313+
if (passedTrackSelectionV0daughTPC(posTrack) && passedPionSelection(posTrack))
314+
registryMC.fill(HIST("secPionV0TPC_MC"), posTrack.pt(), posTrack.eta(), TVector2::Phi_0_2pi(posTrack.phi()));
315+
if (passedTrackSelectionV0daughTPC(negTrack) && passedPionSelection(negTrack))
316+
registryMC.fill(HIST("secPionV0TPC_MC"), negTrack.pt(), negTrack.eta(), TVector2::Phi_0_2pi(negTrack.phi()));
317+
if (passedTrackSelectionV0daughTPC(posTrack) && passedPionSelection(posTrack) && posTrack.hasITS())
318+
registryMC.fill(HIST("secPionV0TPC_ITS_MC"), posTrack.pt(), posTrack.eta(), TVector2::Phi_0_2pi(posTrack.phi()));
319+
if (passedTrackSelectionV0daughTPC(negTrack) && passedPionSelection(negTrack) && negTrack.hasITS())
320+
registryMC.fill(HIST("secPionV0TPC_ITS_MC"), negTrack.pt(), negTrack.eta(), TVector2::Phi_0_2pi(negTrack.phi()));
292321
}
293322
}
294323
}

0 commit comments

Comments
 (0)