Skip to content

Commit 1c678c9

Browse files
authored
[PWGCF] add track type Qa task, add MC pt-Nch QA; (#10165)
1 parent 170ffb0 commit 1c678c9

File tree

3 files changed

+755
-0
lines changed

3 files changed

+755
-0
lines changed

PWGCF/Flow/Tasks/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ o2physics_add_dpl_workflow(flow-mc
2929
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::GFWCore
3030
COMPONENT_NAME Analysis)
3131

32+
o2physics_add_dpl_workflow(flow-qa
33+
SOURCES flowQa.cxx
34+
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::AnalysisCCDB O2Physics::GFWCore
35+
COMPONENT_NAME Analysis)
36+
3237
o2physics_add_dpl_workflow(flow-gfw-task
3338
SOURCES flowGfwTask.cxx
3439
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::GFWCore

PWGCF/Flow/Tasks/flowMc.cxx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,10 @@ struct FlowMc {
9999

100100
histos.add<TH1>("hPhi", "#phi distribution", HistType::kTH1D, {axisPhi});
101101
histos.add<TH1>("hPhiWeighted", "corrected #phi distribution", HistType::kTH1D, {axisPhi});
102+
histos.add<TH2>("hEPVsPhiMC", "hEPVsPhiMC;Event Plane Angle; #varphi", HistType::kTH2D, {axisPhi, axisPhi});
102103
histos.add<TH2>("hEPVsPhi", "hEPVsPhi;Event Plane Angle; #varphi", HistType::kTH2D, {axisPhi, axisPhi});
104+
histos.add<TH2>("hPtNchGenerated", "Reco production; pT (GeV/c); multiplicity", HistType::kTH2D, {axisPt, axisNch});
105+
histos.add<TH2>("hPtNchGlobal", "Global production; pT (GeV/c); multiplicity", HistType::kTH2D, {axisPt, axisNch});
103106

104107
if (cfgOutputNUAWeights) {
105108
o2::framework::AxisSpec axis = axisPt;
@@ -161,6 +164,7 @@ struct FlowMc {
161164
evPhi += constants::math::TwoPI;
162165

163166
int64_t nCh = 0;
167+
int64_t nChGlobal = 0;
164168
float weff = 1.;
165169
float wacc = 1.;
166170
auto bc = mcCollision.bc_as<aod::BCsWithTimestamps>();
@@ -171,6 +175,23 @@ struct FlowMc {
171175
histos.fill(HIST("hImpactParameter"), imp);
172176
histos.fill(HIST("hEventPlaneAngle"), evPhi);
173177

178+
for (auto const& mcParticle : mcParticles) {
179+
int pdgCode = std::abs(mcParticle.pdgCode());
180+
if (pdgCode != PDG_t::kElectron && pdgCode != PDG_t::kMuonMinus && pdgCode != PDG_t::kPiPlus && pdgCode != kKPlus && pdgCode != PDG_t::kProton)
181+
continue;
182+
if (!mcParticle.isPhysicalPrimary())
183+
continue;
184+
if (std::fabs(mcParticle.eta()) > 0.8) // main acceptance
185+
continue;
186+
if (mcParticle.has_tracks()) {
187+
auto const& tracks = mcParticle.tracks_as<RecoTracks>();
188+
for (auto const& track : tracks) {
189+
if (track.hasTPC() && track.hasITS())
190+
nChGlobal++;
191+
}
192+
}
193+
}
194+
174195
for (auto const& mcParticle : mcParticles) {
175196
// focus on bulk: e, mu, pi, k, p
176197
int pdgCode = std::abs(mcParticle.pdgCode());
@@ -189,6 +210,7 @@ struct FlowMc {
189210
deltaPhi -= constants::math::TwoPI;
190211
histos.fill(HIST("hPtVsPhiGenerated"), deltaPhi, mcParticle.pt());
191212
histos.fill(HIST("hBVsPtVsPhiGenerated"), imp, deltaPhi, mcParticle.pt());
213+
histos.fill(HIST("hPtNchGenerated"), mcParticle.pt(), nChGlobal);
192214

193215
nCh++;
194216

@@ -223,6 +245,10 @@ struct FlowMc {
223245
fWeights->fill(mcParticle.phi(), mcParticle.eta(), vtxz, mcParticle.pt(), 0, 0);
224246
if (!setCurrentParticleWeights(weff, wacc, mcParticle.phi(), mcParticle.eta(), mcParticle.pt(), vtxz))
225247
continue;
248+
if (withinPtRef) {
249+
histos.fill(HIST("hEPVsPhiMC"), evPhi, mcParticle.phi());
250+
}
251+
226252
if (validGlobal && withinPtRef) {
227253
histos.fill(HIST("hPhi"), mcParticle.phi());
228254
histos.fill(HIST("hPhiWeighted"), mcParticle.phi(), wacc);
@@ -233,6 +259,7 @@ struct FlowMc {
233259
if (validGlobal) {
234260
histos.fill(HIST("hPtVsPhiGlobal"), deltaPhi, mcParticle.pt(), wacc * weff);
235261
histos.fill(HIST("hBVsPtVsPhiGlobal"), imp, deltaPhi, mcParticle.pt(), wacc * weff);
262+
histos.fill(HIST("hPtNchGlobal"), mcParticle.pt(), nChGlobal);
236263
}
237264
// if any track present, fill
238265
if (validTrack)

0 commit comments

Comments
 (0)