Skip to content

Commit e3a6be0

Browse files
added output, both as histograms and in the tree, to check the production vertex of nuclei from material
1 parent c44c99d commit e3a6be0

3 files changed

Lines changed: 27 additions & 3 deletions

File tree

PWGLF/DataModel/LFSlimNucleiTables.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,11 @@ DECLARE_SOA_COLUMN(AbsoDecL, absoDecL, float);
5656
DECLARE_SOA_COLUMN(McProcess, mcProcess, uint64_t);
5757
DECLARE_SOA_COLUMN(gEventMask, genEventMask, uint8_t);
5858

59-
DECLARE_SOA_COLUMN(NsigmaTpc, nsigmaTpc, uint8_t);
60-
DECLARE_SOA_COLUMN(NsigmaTof, nsigmaTof, uint8_t);
59+
DECLARE_SOA_COLUMN(NsigmaTpc, nsigmaTpc, float);
60+
DECLARE_SOA_COLUMN(NsigmaTof, nsigmaTof, float);
61+
62+
DECLARE_SOA_COLUMN(Vx, vx, float);
63+
DECLARE_SOA_COLUMN(Vy, vy, float);
6164

6265
} // namespace NucleiTableNS
6366

@@ -245,6 +248,10 @@ DECLARE_SOA_TABLE(NucleiTableMCExtension, "AOD", "NUCTABLEMCSEL",
245248
DECLARE_SOA_TABLE(NucleiTableExt, "AOD", "NUCLEITABLEEXT",
246249
NucleiTableNS::NsigmaTpc,
247250
NucleiTableNS::NsigmaTof);
251+
// Extended table for studies on nuclei from material
252+
DECLARE_SOA_TABLE(NucleiTableMat, "AOD", "NUCLEITABLEMAT",
253+
NucleiTableNS::Vx,
254+
NucleiTableNS::Vy);
248255

249256
} // namespace o2::aod
250257

PWGLF/TableProducer/QC/nucleiQC.cxx

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ struct nucleiQC {
162162
std::array<bool, nuclei::Species::kNspecies> mFillSpecies{false};
163163
Produces<aod::NucleiTableRed> mNucleiTableRed;
164164
Produces<aod::NucleiTableExt> mNucleiTableExt;
165+
Produces<aod::NucleiTableMat> mNucleiTableMat;
165166

166167
std::vector<nuclei::SlimCandidate> mNucleiCandidates;
167168
std::vector<int> mFilledMcParticleIds;
@@ -209,6 +210,7 @@ struct nucleiQC {
209210

210211
nuclei::createHistogramRegistryNucleus<kSpeciesCt>(mHistograms);
211212
mHistograms.add(fmt::format("{}/hTrackQuality", nuclei::cNames[kSpeciesRt]).c_str(), (fmt::format("{} track quality;", nuclei::cNames[kSpeciesRt]) + std::string("#it{p}_{T} / #it{Z} (GeV/#it{c}); Selection step; Counts")).c_str(), o2::framework::HistType::kTH2D, {{400, -10.0f, 10.0f}, {trackQuality::kNtrackQuality, -0.5f, static_cast<float>(trackQuality::kNtrackQuality) - 0.5f}});
213+
mHistograms.add(fmt::format("{}/h2Productionvertex", nuclei::cNames[kSpeciesRt]).c_str(), (fmt::format("{} production vertex;", nuclei::cNames[kSpeciesRt]) + std::string("#it{x} (cm); #it{y} (cm); Counts")).c_str(), o2::framework::HistType::kTH2D, {{400, -100.0f, 100.0f}, {400, -100.0f, 100.0f}});
212214
for (size_t iSel = 0; iSel < trackQuality::kNtrackQuality; iSel++) {
213215
mHistograms.get<TH2>(HIST(nuclei::cNames[kSpeciesRt]) + HIST("/hTrackQuality"))->GetYaxis()->SetBinLabel(iSel + 1, trackQualityLabels[iSel].c_str());
214216
}
@@ -383,6 +385,14 @@ struct nucleiQC {
383385
candidate.flags |= nuclei::QcFlags::kQcIsSecondaryFromWeakDecay;
384386
} else {
385387
candidate.flags |= nuclei::QcFlags::kQcIsSecondaryFromMaterial;
388+
static_for<0, nuclei::kNspecies - 1>([&](auto iSpeciesCtV) {
389+
constexpr int kSpeciesCt = decltype(iSpeciesCtV)::value;
390+
if (nuclei::getSpeciesFromPdg(particle.pdgCode()) == kSpeciesCt) {
391+
mHistograms.fill(HIST(nuclei::cNames[kSpeciesCt]) + HIST("/h2Productionvertex"), particle.vx(), particle.vy());
392+
}
393+
candidate.vx = particle.vx();
394+
candidate.vy = particle.vy();
395+
});
386396
}
387397
}
388398

@@ -443,7 +453,9 @@ struct nucleiQC {
443453
.centrality = nuclei::getCentrality(collision, cfgCentralityEstimator, mHistFailCentrality),
444454
.mcProcess = TMCProcess::kPNoProcess,
445455
.nsigmaTpc = mPidManagers[iSpecies].getNSigmaTPC(track),
446-
.nsigmaTof = mPidManagers[iSpecies].getNSigmaTOF(track)};
456+
.nsigmaTof = mPidManagers[iSpecies].getNSigmaTOF(track),
457+
.vx = -999.f,
458+
.vy = -999.f};
447459

448460
fillNucleusFlagsPdgs(collision, track, candidate);
449461

@@ -527,6 +539,9 @@ struct nucleiQC {
527539
mNucleiTableExt(
528540
candidate.nsigmaTpc,
529541
candidate.nsigmaTof);
542+
mNucleiTableMat(
543+
candidate.vx,
544+
candidate.vy);
530545
}
531546

532547
void processMc(const Collisions& collisions, const TrackCandidatesMC& tracks, const aod::BCsWithTimestamps&, const aod::McParticles& mcParticles, const aod::McCollisions& /*mcCollisions*/)

PWGLF/Utils/nucleiUtils.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,8 @@ struct SlimCandidate {
122122
uint64_t mcProcess = TMCProcess::kPNoProcess;
123123
float nsigmaTpc = -999.f;
124124
float nsigmaTof = -999.f;
125+
float vx = -999.f; // production vertex x coordinate
126+
float vy = -999.f;
125127
};
126128

127129
enum Species {

0 commit comments

Comments
 (0)