Skip to content

Commit 6bb97e0

Browse files
authored
[PWGCF] Add dedicated PbPb processing function (#16283)
1 parent 350dfb6 commit 6bb97e0

4 files changed

Lines changed: 82 additions & 9 deletions

File tree

PWGCF/Femto/Core/collisionBuilder.h

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -585,11 +585,12 @@ class CollisionBuilder
585585
}
586586

587587
// PbPb specific columns
588-
if constexpr (modes::isFlagSet(system, modes::System::kPbPb)) {
589-
if (mProduceQns) {
590-
collisionProducts.producedQns(utils::qn(col));
591-
}
592-
}
588+
// TODO: enable later update
589+
// if constexpr (modes::isFlagSet(system, modes::System::kPbPb)) {
590+
// if (mProduceQns) {
591+
// collisionProducts.producedQns(utils::qn(col));
592+
// }
593+
// }
593594

594595
mCollisionAlreadyFilled = true;
595596
}

PWGCF/Femto/Core/mcBuilder.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -230,9 +230,15 @@ class McBuilder
230230
template <modes::System system, typename T1, typename T2>
231231
void fillMcCollision(T1 const& mcCol, T2& mcProducts)
232232
{
233-
mcProducts.producedMcCollisions(
234-
mcCol.multMCNParticlesEta08(),
235-
mcCol.centFT0M());
233+
float centrality = -1;
234+
if constexpr (modes::isFlagSet(system, modes::System::kPP)) {
235+
centrality = mcCol.centFT0M();
236+
}
237+
if constexpr (modes::isFlagSet(system, modes::System::kPbPb)) {
238+
centrality = mcCol.centFT0C();
239+
}
240+
241+
mcProducts.producedMcCollisions(mcCol.multMCNParticlesEta08(), centrality);
236242
mCollisionMap.emplace(mcCol.globalIndex(), mcProducts.producedMcCollisions.lastIndex());
237243
}
238244

PWGCF/Femto/Core/modes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ enum class System : uint32_t {
6969
kPP_Run3_MC = kPP | kRun3 | kMC,
7070
kPP_Run2 = kPP | kRun2,
7171
kPbPb_Run3 = kPbPb | kRun3,
72+
kPbPb_Run3_MC = kPbPb | kRun3 | kMC,
7273
kPbPb_Run2 = kPbPb | kRun2,
7374
};
7475

PWGCF/Femto/TableProducer/femtoProducer.cxx

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,12 @@ namespace consumeddata
5454
{
5555
using Run3PpCollisions = o2::soa::Join<o2::aod::Collisions, o2::aod::EvSels, o2::aod::Mults, o2::aod::CentFT0As, o2::aod::CentFT0Cs, o2::aod::CentFT0Ms>;
5656
using Run3PpMcRecoCollisions = o2::soa::Join<Run3PpCollisions, o2::aod::McCollisionLabels>;
57-
using Run3PpMcGenCollisions = o2::soa::Join<o2::aod::McCollisions, o2::aod::MultsExtraMC, o2::aod::McCentFT0Ms>;
57+
using Run3PpMcGenCollisions = o2::soa::Join<o2::aod::McCollisions, o2::aod::MultsExtraMC, o2::aod::McCentFT0As, o2::aod::McCentFT0Cs, o2::aod::McCentFT0Ms>;
58+
59+
using Run3PbPbCollisions = o2::soa::Join<o2::aod::Collisions, o2::aod::EvSels, o2::aod::Mults, o2::aod::CentFT0As, o2::aod::CentFT0Cs, o2::aod::CentFT0Ms>;
60+
61+
using Run3PbPbMcRecoCollisions = o2::soa::Join<Run3PbPbCollisions, o2::aod::McCollisionLabels>;
62+
using Run3PbPbMcGenCollisions = o2::soa::Join<o2::aod::McCollisions, o2::aod::MultsExtraMC, o2::aod::McCentFT0As, o2::aod::McCentFT0Cs, o2::aod::McCentFT0Ms>;
5863

5964
using Run3FullPidTracks =
6065
soa::Join<o2::aod::Tracks, o2::aod::TracksExtra, o2::aod::TracksDCA,
@@ -288,6 +293,19 @@ struct FemtoProducer {
288293
}
289294
PROCESS_SWITCH(FemtoProducer, processTracksRun3pp, "Process tracks", true);
290295

296+
void processTracksRun3PbPb(consumeddata::Run3PbPbCollisions::iterator const& col,
297+
o2::aod::BCsWithTimestamps const& bcs,
298+
consumeddata::Run3FullPidTracks const& tracks)
299+
{
300+
if (!processCollisions<modes::System::kPbPb_Run3>(col, bcs, tracks)) {
301+
return;
302+
}
303+
auto tracksWithItsPid = o2::soa::Attach<consumeddata::Run3FullPidTracks, o2::aod::pidits::ITSNSigmaEl, o2::aod::pidits::ITSNSigmaPi, o2::aod::pidits::ITSNSigmaKa,
304+
o2::aod::pidits::ITSNSigmaPr, o2::aod::pidits::ITSNSigmaDe, o2::aod::pidits::ITSNSigmaTr, o2::aod::pidits::ITSNSigmaHe>(tracks);
305+
processTracks<modes::System::kPbPb_Run3>(col, tracksWithItsPid);
306+
}
307+
PROCESS_SWITCH(FemtoProducer, processTracksRun3PbPb, "Process tracks in PbPB collisions", false);
308+
291309
// process tracks and v0s
292310
void processTracksV0sRun3pp(consumeddata::Run3PpCollisions::iterator const& col,
293311
o2::aod::BCsWithTimestamps const& bcs,
@@ -304,6 +322,21 @@ struct FemtoProducer {
304322
};
305323
PROCESS_SWITCH(FemtoProducer, processTracksV0sRun3pp, "Process tracks and v0s", false);
306324

325+
void processTracksV0sRun3PbPb(consumeddata::Run3PbPbCollisions::iterator const& col,
326+
o2::aod::BCsWithTimestamps const& bcs,
327+
consumeddata::Run3FullPidTracks const& tracks,
328+
consumeddata::Run3Vzeros const& v0s)
329+
{
330+
if (!processCollisions<modes::System::kPbPb_Run3>(col, bcs, tracks)) {
331+
return;
332+
}
333+
auto tracksWithItsPid = o2::soa::Attach<consumeddata::Run3FullPidTracks, o2::aod::pidits::ITSNSigmaEl, o2::aod::pidits::ITSNSigmaPi, o2::aod::pidits::ITSNSigmaKa,
334+
o2::aod::pidits::ITSNSigmaPr, o2::aod::pidits::ITSNSigmaDe, o2::aod::pidits::ITSNSigmaTr, o2::aod::pidits::ITSNSigmaHe>(tracks);
335+
processTracks<modes::System::kPbPb_Run3>(col, tracksWithItsPid);
336+
processV0s<modes::System::kPbPb_Run3>(col, tracks, v0s);
337+
};
338+
PROCESS_SWITCH(FemtoProducer, processTracksV0sRun3PbPb, "Process tracks and v0s in PbPB collisions", false);
339+
307340
// process tracks and kinks
308341
void processTracksKinksRun3pp(consumeddata::Run3PpCollisions::iterator const& col,
309342
o2::aod::BCsWithTimestamps const& bcs,
@@ -374,6 +407,21 @@ struct FemtoProducer {
374407
}
375408
PROCESS_SWITCH(FemtoProducer, processTracksRun3ppMc, "Provide reconstructed and generated Tracks", false);
376409

410+
void processTracksRun3PbPbMc(consumeddata::Run3PbPbMcRecoCollisions::iterator const& col,
411+
consumeddata::Run3PbPbMcGenCollisions const& mcCols,
412+
o2::aod::BCsWithTimestamps const& bcs,
413+
consumeddata::Run3McRecoTracks const& tracks,
414+
consumeddata::Run3McGenParticles const& mcParticles)
415+
{
416+
if (!processMcCollisions<modes::System::kPbPb_Run3_MC>(col, mcCols, bcs, tracks, mcParticles)) {
417+
return;
418+
}
419+
auto tracksWithItsPid = o2::soa::Attach<consumeddata::Run3McRecoTracks, o2::aod::pidits::ITSNSigmaEl, o2::aod::pidits::ITSNSigmaPi, o2::aod::pidits::ITSNSigmaKa,
420+
o2::aod::pidits::ITSNSigmaPr, o2::aod::pidits::ITSNSigmaDe, o2::aod::pidits::ITSNSigmaTr, o2::aod::pidits::ITSNSigmaHe>(tracks);
421+
processMcTracks<modes::System::kPbPb_Run3_MC>(col, mcCols, tracks, tracksWithItsPid, mcParticles);
422+
}
423+
PROCESS_SWITCH(FemtoProducer, processTracksRun3PbPbMc, "Provide reconstructed and generated Tracks in PbPb collisions", false);
424+
377425
// process monte carlo tracks and v0s
378426
void processTracksV0sRun3ppMc(consumeddata::Run3PpMcRecoCollisions::iterator const& col,
379427
consumeddata::Run3PpMcGenCollisions const& mcCols,
@@ -392,6 +440,23 @@ struct FemtoProducer {
392440
}
393441
PROCESS_SWITCH(FemtoProducer, processTracksV0sRun3ppMc, "Provide reconstructed and generated tracks and v0s", false);
394442

443+
void processTracksV0sRun3PbPbMc(consumeddata::Run3PbPbMcRecoCollisions::iterator const& col,
444+
consumeddata::Run3PbPbMcGenCollisions const& mcCols,
445+
o2::aod::BCsWithTimestamps const& bcs,
446+
consumeddata::Run3McRecoTracks const& tracks,
447+
consumeddata::Run3RecoVzeros const& v0s,
448+
consumeddata::Run3McGenParticles const& mcParticles)
449+
{
450+
if (!processMcCollisions<modes::System::kPbPb_Run3_MC>(col, mcCols, bcs, tracks, mcParticles)) {
451+
return;
452+
}
453+
auto tracksWithItsPid = o2::soa::Attach<consumeddata::Run3McRecoTracks, o2::aod::pidits::ITSNSigmaEl, o2::aod::pidits::ITSNSigmaPi, o2::aod::pidits::ITSNSigmaKa,
454+
o2::aod::pidits::ITSNSigmaPr, o2::aod::pidits::ITSNSigmaDe, o2::aod::pidits::ITSNSigmaTr, o2::aod::pidits::ITSNSigmaHe>(tracks);
455+
processMcTracks<modes::System::kPbPb_Run3_MC>(col, mcCols, tracks, tracksWithItsPid, mcParticles);
456+
processMcV0s<modes::System::kPbPb_Run3_MC>(col, mcCols, tracks, v0s, mcParticles);
457+
}
458+
PROCESS_SWITCH(FemtoProducer, processTracksV0sRun3PbPbMc, "Provide reconstructed and generated tracks and v0s in PbPb collisions", false);
459+
395460
// process monte carlo tracks and kinks
396461
void processTracksKinksRun3ppMc(consumeddata::Run3PpMcRecoCollisions::iterator const& col,
397462
consumeddata::Run3PpMcGenCollisions const& mcCols,

0 commit comments

Comments
 (0)