Skip to content

Commit d5e3394

Browse files
lauraserLaura Serksnyte
andauthored
[PWGCF] Option to have centrality for PbPb (#8679)
Co-authored-by: Laura Serksnyte <laura.serksnyte@cern.ch>
1 parent ec2beeb commit d5e3394

File tree

1 file changed

+42
-10
lines changed

1 file changed

+42
-10
lines changed

PWGCF/FemtoDream/TableProducer/femtoDreamProducerTask.cxx

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,10 @@ namespace o2::aod
5151

5252
using FemtoFullCollision = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Ms>::iterator;
5353
using FemtoFullCollision_noCent = soa::Join<aod::Collisions, aod::EvSels, aod::Mults>::iterator;
54+
using FemtoFullCollision_CentPbPb = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Cs>::iterator;
5455
using FemtoFullCollisionMC = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Ms, aod::McCollisionLabels>::iterator;
5556
using FemtoFullCollision_noCent_MC = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::McCollisionLabels>::iterator;
57+
using FemtoFullCollisionMC_CentPbPb = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Cs, aod::McCollisionLabels>::iterator;
5658
using FemtoFullMCgenCollisions = soa::Join<aod::McCollisions, MultsExtraMC>;
5759
using FemtoFullMCgenCollision = FemtoFullMCgenCollisions::iterator;
5860

@@ -102,7 +104,6 @@ struct femtoDreamProducerTask {
102104
Configurable<bool> ConfIsDebug{"ConfIsDebug", true, "Enable Debug tables"};
103105
Configurable<bool> ConfIsRun3{"ConfIsRun3", false, "Running on Run3 or pilot"};
104106
Configurable<bool> ConfIsForceGRP{"ConfIsForceGRP", false, "Set true if the magnetic field configuration is not available in the usual CCDB directory (e.g. for Run 2 converted data or unanchorad Monte Carlo)"};
105-
106107
/// Event cuts
107108
FemtoDreamCollisionSelection colCuts;
108109
// Event cuts - Triggers
@@ -202,10 +203,10 @@ struct femtoDreamProducerTask {
202203

203204
void init(InitContext&)
204205
{
205-
if (doprocessData == false && doprocessData_noCentrality == false && doprocessMC == false && doprocessMC_noCentrality == false) {
206+
if (doprocessData == false && doprocessData_noCentrality == false && doprocessData_CentPbPb == false && doprocessMC == false && doprocessMC_noCentrality == false && doprocessMC_CentPbPb == false) {
206207
LOGF(fatal, "Neither processData nor processMC enabled. Please choose one.");
207208
}
208-
if ((doprocessData == true && doprocessMC == true) || (doprocessData == true && doprocessMC_noCentrality == true) || (doprocessMC == true && doprocessMC_noCentrality == true) || (doprocessData_noCentrality == true && doprocessData == true) || (doprocessData_noCentrality == true && doprocessMC == true) || (doprocessData_noCentrality == true && doprocessMC_noCentrality == true)) {
209+
if ((doprocessData == true && doprocessMC == true) || (doprocessData == true && doprocessMC_noCentrality == true) || (doprocessMC == true && doprocessMC_noCentrality == true) || (doprocessData_noCentrality == true && doprocessData == true) || (doprocessData_noCentrality == true && doprocessMC == true) || (doprocessData_noCentrality == true && doprocessMC_noCentrality == true) || (doprocessData_CentPbPb == true && doprocessData == true) || (doprocessData_CentPbPb == true && doprocessData_noCentrality == true) || (doprocessData_CentPbPb == true && doprocessMC == true) || (doprocessData_CentPbPb == true && doprocessMC_noCentrality == true) || (doprocessData_CentPbPb == true && doprocessMC_CentPbPb == true)) {
209210
LOGF(fatal,
210211
"Cannot enable more than one process switch at the same time. "
211212
"Please choose one.");
@@ -462,7 +463,7 @@ struct femtoDreamProducerTask {
462463
outputCollsMCLabels(-1);
463464
}
464465
}
465-
template <bool isMC, bool useCentrality, typename V0Type, typename TrackType, typename CollisionType>
466+
template <bool isMC, bool useCentrality, bool analysePbPb, typename V0Type, typename TrackType, typename CollisionType>
466467
void fillCollisionsAndTracksAndV0(CollisionType const& col, TrackType const& tracks, V0Type const& fullV0s)
467468
{
468469
// If triggering is enabled, select only events which were triggered wit our triggers
@@ -479,7 +480,11 @@ struct femtoDreamProducerTask {
479480
int multNtr = 0;
480481
if (ConfIsRun3) {
481482
if constexpr (useCentrality) {
482-
mult = col.centFT0M();
483+
if constexpr (analysePbPb) {
484+
mult = col.centFT0C();
485+
} else {
486+
mult = col.centFT0M();
487+
}
483488
} else {
484489
mult = 0;
485490
}
@@ -731,7 +736,7 @@ struct femtoDreamProducerTask {
731736
// get magnetic field for run
732737
initCCDB_Mag_Trig(col.bc_as<aod::BCsWithTimestamps>());
733738
// fill the tables
734-
fillCollisionsAndTracksAndV0<false, true>(col, tracks, fullV0s);
739+
fillCollisionsAndTracksAndV0<false, true, false>(col, tracks, fullV0s);
735740
}
736741
PROCESS_SWITCH(femtoDreamProducerTask, processData,
737742
"Provide experimental data", true);
@@ -745,11 +750,25 @@ struct femtoDreamProducerTask {
745750
// get magnetic field for run
746751
initCCDB_Mag_Trig(col.bc_as<aod::BCsWithTimestamps>());
747752
// fill the tables
748-
fillCollisionsAndTracksAndV0<false, false>(col, tracks, fullV0s);
753+
fillCollisionsAndTracksAndV0<false, false, false>(col, tracks, fullV0s);
749754
}
750755
PROCESS_SWITCH(femtoDreamProducerTask, processData_noCentrality,
751756
"Provide experimental data without centrality information", false);
752757

758+
void
759+
processData_CentPbPb(aod::FemtoFullCollision_CentPbPb const& col,
760+
aod::BCsWithTimestamps const&,
761+
aod::FemtoFullTracks const& tracks,
762+
o2::aod::V0Datas const& fullV0s)
763+
{
764+
// get magnetic field for run
765+
initCCDB_Mag_Trig(col.bc_as<aod::BCsWithTimestamps>());
766+
// fill the tables
767+
fillCollisionsAndTracksAndV0<false, true, true>(col, tracks, fullV0s);
768+
}
769+
PROCESS_SWITCH(femtoDreamProducerTask, processData_CentPbPb,
770+
"Provide experimental data with centrality information for PbPb collisions", false);
771+
753772
void processMC(aod::FemtoFullCollisionMC const& col,
754773
aod::BCsWithTimestamps const&,
755774
soa::Join<aod::FemtoFullTracks, aod::McTrackLabels> const& tracks,
@@ -760,7 +779,7 @@ struct femtoDreamProducerTask {
760779
// get magnetic field for run
761780
initCCDB_Mag_Trig(col.bc_as<aod::BCsWithTimestamps>());
762781
// fill the tables
763-
fillCollisionsAndTracksAndV0<true, true>(col, tracks, fullV0s);
782+
fillCollisionsAndTracksAndV0<true, true, false>(col, tracks, fullV0s);
764783
}
765784
PROCESS_SWITCH(femtoDreamProducerTask, processMC, "Provide MC data", false);
766785

@@ -774,11 +793,24 @@ struct femtoDreamProducerTask {
774793
// get magnetic field for run
775794
initCCDB_Mag_Trig(col.bc_as<aod::BCsWithTimestamps>());
776795
// fill the tables
777-
fillCollisionsAndTracksAndV0<true, false>(col, tracks, fullV0s);
796+
fillCollisionsAndTracksAndV0<true, false, false>(col, tracks, fullV0s);
778797
}
779798
PROCESS_SWITCH(femtoDreamProducerTask, processMC_noCentrality, "Provide MC data without requiring a centrality calibration", false);
780-
};
781799

800+
void processMC_CentPbPb(aod::FemtoFullCollisionMC_CentPbPb const& col,
801+
aod::BCsWithTimestamps const&,
802+
soa::Join<aod::FemtoFullTracks, aod::McTrackLabels> const& tracks,
803+
aod::FemtoFullMCgenCollisions const&,
804+
aod::McParticles const&,
805+
soa::Join<o2::aod::V0Datas, aod::McV0Labels> const& fullV0s) /// \todo with FilteredFullV0s
806+
{
807+
// get magnetic field for run
808+
initCCDB_Mag_Trig(col.bc_as<aod::BCsWithTimestamps>());
809+
// fill the tables
810+
fillCollisionsAndTracksAndV0<true, true, true>(col, tracks, fullV0s);
811+
}
812+
PROCESS_SWITCH(femtoDreamProducerTask, processMC_CentPbPb, "Provide MC data with centrality information for PbPb collisions", false);
813+
};
782814
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
783815
{
784816
WorkflowSpec workflow{adaptAnalysisTask<femtoDreamProducerTask>(cfgc)};

0 commit comments

Comments
 (0)