Skip to content

Commit 81b0934

Browse files
authored
[PWGCF] FemtoUniverse: Adding CentFT0M() for pp collisions (#9297)
1 parent e830079 commit 81b0934

File tree

1 file changed

+69
-3
lines changed

1 file changed

+69
-3
lines changed

PWGCF/FemtoUniverse/TableProducer/femtoUniverseProducerTask.cxx

Lines changed: 69 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ namespace o2::aod
6666

6767
using FemtoFullCollision =
6868
soa::Join<aod::Collisions, aod::EvSels, aod::Mults>::iterator;
69+
using FemtoFullCollisionCentPP =
70+
soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Ms, aod::Mults>::iterator;
6971
using FemtoFullCollisionCentRun2 =
7072
soa::Join<aod::Collisions, aod::EvSels, aod::CentRun2V0Ms, aod::Mults>::iterator;
7173
using FemtoFullCollisionCentRun3 =
@@ -456,10 +458,10 @@ struct FemtoUniverseProducerTask {
456458

457459
void init(InitContext&)
458460
{
459-
if ((doprocessFullData || doprocessTrackPhiData || doprocessTrackData || doprocessTrackV0 || doprocessTrackCascadeData || doprocessTrackD0mesonData || doprocessTrackCentRun2Data || doprocessTrackCentRun3Data || doprocessV0CentRun3Data || doprocessCascadeCentRun3Data) == false && (doprocessFullMC || doprocessTrackMC || doprocessTrackMCTruth || doprocessTrackMCGen || doprocessTruthAndFullMC || doprocessFullMCCent) == false) {
461+
if ((doprocessFullData || doprocessTrackPhiData || doprocessTrackData || doprocessTrackV0 || doprocessTrackCascadeData || doprocessTrackD0mesonData || doprocessTrackCentRun2Data || doprocessTrackCentRun3Data || doprocessV0CentRun3Data || doprocessCascadeCentRun3Data || doprocessTrackDataCentPP) == false && (doprocessFullMC || doprocessTrackMC || doprocessTrackMCTruth || doprocessTrackMCGen || doprocessTruthAndFullMC || doprocessFullMCCent) == false) {
460462
LOGF(fatal, "Neither processFullData nor processFullMC enabled. Please choose one.");
461463
}
462-
if ((doprocessFullData || doprocessTrackPhiData || doprocessTrackData || doprocessTrackV0 || doprocessTrackCascadeData || doprocessTrackD0mesonData || doprocessTrackCentRun2Data || doprocessTrackCentRun3Data || doprocessV0CentRun3Data || doprocessCascadeCentRun3Data) == true && (doprocessFullMC || doprocessTrackMC || doprocessTrackMCTruth || doprocessTrackMCGen || doprocessTruthAndFullMC || doprocessFullMCCent) == true) {
464+
if ((doprocessFullData || doprocessTrackPhiData || doprocessTrackData || doprocessTrackV0 || doprocessTrackCascadeData || doprocessTrackD0mesonData || doprocessTrackCentRun2Data || doprocessTrackCentRun3Data || doprocessV0CentRun3Data || doprocessCascadeCentRun3Data || doprocessTrackDataCentPP) == true && (doprocessFullMC || doprocessTrackMC || doprocessTrackMCTruth || doprocessTrackMCGen || doprocessTruthAndFullMC || doprocessFullMCCent) == true) {
463465
LOGF(fatal,
464466
"Cannot enable process Data and process MC at the same time. "
465467
"Please choose one.");
@@ -809,6 +811,51 @@ struct FemtoUniverseProducerTask {
809811
return true;
810812
}
811813

814+
template <bool isMC, typename CollisionType, typename TrackType>
815+
bool fillCollisionsCentPP(CollisionType const& col, TrackType const& tracks)
816+
{
817+
const auto vtxZ = col.posZ();
818+
float mult = 0;
819+
int multNtr = 0;
820+
if (confIsRun3) {
821+
mult = col.centFT0M();
822+
multNtr = col.multNTracksPV();
823+
} else {
824+
mult = 0.5 * (col.multFV0M()); /// For benchmarking on Run 2, V0M in
825+
/// FemtoUniverseRun2 is defined V0M/2
826+
multNtr = col.multTracklets();
827+
}
828+
if (confEvtUseTPCmult) {
829+
multNtr = col.multTPC();
830+
}
831+
832+
// check whether the basic event selection criteria are fulfilled
833+
// if the basic selection is NOT fulfilled:
834+
// in case of skimming run - don't store such collisions
835+
// in case of trigger run - store such collisions but don't store any
836+
// particle candidates for such collisions
837+
if (!colCuts.isSelected(col)) {
838+
return false;
839+
} else {
840+
if (!confIsUsePileUp) {
841+
if (confDoSpher) {
842+
outputCollision(vtxZ, mult, multNtr, colCuts.computeSphericity(col, tracks), mMagField);
843+
} else {
844+
outputCollision(vtxZ, mult, multNtr, 2, mMagField);
845+
}
846+
} else {
847+
if (confDoSpher && (!confEvNoSameBunchPileup || col.selection_bit(aod::evsel::kNoSameBunchPileup)) && (!confEvIsGoodZvtxFT0vsPV || col.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV)) && (!confEvIsVertexITSTPC || col.selection_bit(aod::evsel::kIsVertexITSTPC))) {
848+
outputCollision(vtxZ, mult, multNtr, colCuts.computeSphericity(col, tracks), mMagField);
849+
} else {
850+
outputCollision(vtxZ, mult, multNtr, 2, mMagField);
851+
}
852+
}
853+
colCuts.fillQA(col);
854+
return true;
855+
}
856+
return true;
857+
}
858+
812859
template <typename CollisionType, typename TrackType>
813860
void fillMCTruthCollisions(CollisionType const& col, TrackType const& tracks)
814861
{
@@ -1678,7 +1725,7 @@ struct FemtoUniverseProducerTask {
16781725
{
16791726
// get magnetic field for run
16801727
getMagneticFieldTesla(col.bc_as<aod::BCsWithTimestamps>());
1681-
const double ir = 0.0; // fetch IR
1728+
const double ir = 1.0; // fetch IR
16821729
// fill the tables
16831730
const auto colcheck = fillCollisions<false>(col, tracks);
16841731
if (colcheck) {
@@ -1691,6 +1738,25 @@ struct FemtoUniverseProducerTask {
16911738
PROCESS_SWITCH(FemtoUniverseProducerTask, processTrackData,
16921739
"Provide experimental data for track track", true);
16931740

1741+
void processTrackDataCentPP(aod::FemtoFullCollisionCentPP const& col,
1742+
aod::BCsWithTimestamps const&,
1743+
aod::FemtoFullTracks const& tracks)
1744+
{
1745+
// get magnetic field for run
1746+
getMagneticFieldTesla(col.bc_as<aod::BCsWithTimestamps>());
1747+
const double ir = 1.0; // fetch IR
1748+
// fill the tables
1749+
const auto colcheck = fillCollisionsCentPP<false>(col, tracks);
1750+
if (colcheck) {
1751+
if (confFillCollExt) {
1752+
fillCollisionsCentRun3ColExtra<false>(col, ir);
1753+
}
1754+
fillTracks<false>(tracks);
1755+
}
1756+
}
1757+
PROCESS_SWITCH(FemtoUniverseProducerTask, processTrackDataCentPP,
1758+
"Provide experimental data for track track", true);
1759+
16941760
// using FilteredFemtoFullTracks = soa::Filtered<FemtoFullTracks>;
16951761
void processTrackPhiData(aod::FemtoFullCollision const& col,
16961762
aod::BCsWithTimestamps const&,

0 commit comments

Comments
 (0)