Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions PWGCF/Femto/Core/collisionBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -585,11 +585,12 @@ class CollisionBuilder
}

// PbPb specific columns
if constexpr (modes::isFlagSet(system, modes::System::kPbPb)) {
if (mProduceQns) {
collisionProducts.producedQns(utils::qn(col));
}
}
// TODO: enable later update
// if constexpr (modes::isFlagSet(system, modes::System::kPbPb)) {
// if (mProduceQns) {
// collisionProducts.producedQns(utils::qn(col));
// }
// }

mCollisionAlreadyFilled = true;
}
Expand Down
12 changes: 9 additions & 3 deletions PWGCF/Femto/Core/mcBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -230,9 +230,15 @@ class McBuilder
template <modes::System system, typename T1, typename T2>
void fillMcCollision(T1 const& mcCol, T2& mcProducts)
{
mcProducts.producedMcCollisions(
mcCol.multMCNParticlesEta08(),
mcCol.centFT0M());
float centrality = -1;
if constexpr (modes::isFlagSet(system, modes::System::kPP)) {
centrality = mcCol.centFT0M();
}
if constexpr (modes::isFlagSet(system, modes::System::kPbPb)) {
centrality = mcCol.centFT0C();
}

mcProducts.producedMcCollisions(mcCol.multMCNParticlesEta08(), centrality);
mCollisionMap.emplace(mcCol.globalIndex(), mcProducts.producedMcCollisions.lastIndex());
}

Expand Down
1 change: 1 addition & 0 deletions PWGCF/Femto/Core/modes.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ enum class System : uint32_t {
kPP_Run3_MC = kPP | kRun3 | kMC,
kPP_Run2 = kPP | kRun2,
kPbPb_Run3 = kPbPb | kRun3,
kPbPb_Run3_MC = kPbPb | kRun3 | kMC,
kPbPb_Run2 = kPbPb | kRun2,
};

Expand Down
67 changes: 66 additions & 1 deletion PWGCF/Femto/TableProducer/femtoProducer.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,12 @@ namespace consumeddata
{
using Run3PpCollisions = o2::soa::Join<o2::aod::Collisions, o2::aod::EvSels, o2::aod::Mults, o2::aod::CentFT0As, o2::aod::CentFT0Cs, o2::aod::CentFT0Ms>;
using Run3PpMcRecoCollisions = o2::soa::Join<Run3PpCollisions, o2::aod::McCollisionLabels>;
using Run3PpMcGenCollisions = o2::soa::Join<o2::aod::McCollisions, o2::aod::MultsExtraMC, o2::aod::McCentFT0Ms>;
using Run3PpMcGenCollisions = o2::soa::Join<o2::aod::McCollisions, o2::aod::MultsExtraMC, o2::aod::McCentFT0As, o2::aod::McCentFT0Cs, o2::aod::McCentFT0Ms>;

using Run3PbPbCollisions = o2::soa::Join<o2::aod::Collisions, o2::aod::EvSels, o2::aod::Mults, o2::aod::CentFT0As, o2::aod::CentFT0Cs, o2::aod::CentFT0Ms>;

using Run3PbPbMcRecoCollisions = o2::soa::Join<Run3PbPbCollisions, o2::aod::McCollisionLabels>;
using Run3PbPbMcGenCollisions = o2::soa::Join<o2::aod::McCollisions, o2::aod::MultsExtraMC, o2::aod::McCentFT0As, o2::aod::McCentFT0Cs, o2::aod::McCentFT0Ms>;

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

void processTracksRun3PbPb(consumeddata::Run3PbPbCollisions::iterator const& col,
o2::aod::BCsWithTimestamps const& bcs,
consumeddata::Run3FullPidTracks const& tracks)
{
if (!processCollisions<modes::System::kPbPb_Run3>(col, bcs, tracks)) {
return;
}
auto tracksWithItsPid = o2::soa::Attach<consumeddata::Run3FullPidTracks, o2::aod::pidits::ITSNSigmaEl, o2::aod::pidits::ITSNSigmaPi, o2::aod::pidits::ITSNSigmaKa,
o2::aod::pidits::ITSNSigmaPr, o2::aod::pidits::ITSNSigmaDe, o2::aod::pidits::ITSNSigmaTr, o2::aod::pidits::ITSNSigmaHe>(tracks);
processTracks<modes::System::kPbPb_Run3>(col, tracksWithItsPid);
}
PROCESS_SWITCH(FemtoProducer, processTracksRun3PbPb, "Process tracks in PbPB collisions", false);

// process tracks and v0s
void processTracksV0sRun3pp(consumeddata::Run3PpCollisions::iterator const& col,
o2::aod::BCsWithTimestamps const& bcs,
Expand All @@ -304,6 +322,21 @@ struct FemtoProducer {
};
PROCESS_SWITCH(FemtoProducer, processTracksV0sRun3pp, "Process tracks and v0s", false);

void processTracksV0sRun3PbPb(consumeddata::Run3PbPbCollisions::iterator const& col,
o2::aod::BCsWithTimestamps const& bcs,
consumeddata::Run3FullPidTracks const& tracks,
consumeddata::Run3Vzeros const& v0s)
{
if (!processCollisions<modes::System::kPbPb_Run3>(col, bcs, tracks)) {
return;
}
auto tracksWithItsPid = o2::soa::Attach<consumeddata::Run3FullPidTracks, o2::aod::pidits::ITSNSigmaEl, o2::aod::pidits::ITSNSigmaPi, o2::aod::pidits::ITSNSigmaKa,
o2::aod::pidits::ITSNSigmaPr, o2::aod::pidits::ITSNSigmaDe, o2::aod::pidits::ITSNSigmaTr, o2::aod::pidits::ITSNSigmaHe>(tracks);
processTracks<modes::System::kPbPb_Run3>(col, tracksWithItsPid);
processV0s<modes::System::kPbPb_Run3>(col, tracks, v0s);
};
PROCESS_SWITCH(FemtoProducer, processTracksV0sRun3PbPb, "Process tracks and v0s in PbPB collisions", false);

// process tracks and kinks
void processTracksKinksRun3pp(consumeddata::Run3PpCollisions::iterator const& col,
o2::aod::BCsWithTimestamps const& bcs,
Expand Down Expand Up @@ -374,6 +407,21 @@ struct FemtoProducer {
}
PROCESS_SWITCH(FemtoProducer, processTracksRun3ppMc, "Provide reconstructed and generated Tracks", false);

void processTracksRun3PbPbMc(consumeddata::Run3PbPbMcRecoCollisions::iterator const& col,
consumeddata::Run3PbPbMcGenCollisions const& mcCols,
o2::aod::BCsWithTimestamps const& bcs,
consumeddata::Run3McRecoTracks const& tracks,
consumeddata::Run3McGenParticles const& mcParticles)
{
if (!processMcCollisions<modes::System::kPbPb_Run3_MC>(col, mcCols, bcs, tracks, mcParticles)) {
return;
}
auto tracksWithItsPid = o2::soa::Attach<consumeddata::Run3McRecoTracks, o2::aod::pidits::ITSNSigmaEl, o2::aod::pidits::ITSNSigmaPi, o2::aod::pidits::ITSNSigmaKa,
o2::aod::pidits::ITSNSigmaPr, o2::aod::pidits::ITSNSigmaDe, o2::aod::pidits::ITSNSigmaTr, o2::aod::pidits::ITSNSigmaHe>(tracks);
processMcTracks<modes::System::kPbPb_Run3_MC>(col, mcCols, tracks, tracksWithItsPid, mcParticles);
}
PROCESS_SWITCH(FemtoProducer, processTracksRun3PbPbMc, "Provide reconstructed and generated Tracks in PbPb collisions", false);

// process monte carlo tracks and v0s
void processTracksV0sRun3ppMc(consumeddata::Run3PpMcRecoCollisions::iterator const& col,
consumeddata::Run3PpMcGenCollisions const& mcCols,
Expand All @@ -392,6 +440,23 @@ struct FemtoProducer {
}
PROCESS_SWITCH(FemtoProducer, processTracksV0sRun3ppMc, "Provide reconstructed and generated tracks and v0s", false);

void processTracksV0sRun3PbPbMc(consumeddata::Run3PbPbMcRecoCollisions::iterator const& col,
consumeddata::Run3PbPbMcGenCollisions const& mcCols,
o2::aod::BCsWithTimestamps const& bcs,
consumeddata::Run3McRecoTracks const& tracks,
consumeddata::Run3RecoVzeros const& v0s,
consumeddata::Run3McGenParticles const& mcParticles)
{
if (!processMcCollisions<modes::System::kPbPb_Run3_MC>(col, mcCols, bcs, tracks, mcParticles)) {
return;
}
auto tracksWithItsPid = o2::soa::Attach<consumeddata::Run3McRecoTracks, o2::aod::pidits::ITSNSigmaEl, o2::aod::pidits::ITSNSigmaPi, o2::aod::pidits::ITSNSigmaKa,
o2::aod::pidits::ITSNSigmaPr, o2::aod::pidits::ITSNSigmaDe, o2::aod::pidits::ITSNSigmaTr, o2::aod::pidits::ITSNSigmaHe>(tracks);
processMcTracks<modes::System::kPbPb_Run3_MC>(col, mcCols, tracks, tracksWithItsPid, mcParticles);
processMcV0s<modes::System::kPbPb_Run3_MC>(col, mcCols, tracks, v0s, mcParticles);
}
PROCESS_SWITCH(FemtoProducer, processTracksV0sRun3PbPbMc, "Provide reconstructed and generated tracks and v0s in PbPb collisions", false);

// process monte carlo tracks and kinks
void processTracksKinksRun3ppMc(consumeddata::Run3PpMcRecoCollisions::iterator const& col,
consumeddata::Run3PpMcGenCollisions const& mcCols,
Expand Down
Loading