@@ -51,8 +51,10 @@ namespace o2::aod
5151
5252using FemtoFullCollision = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Ms>::iterator;
5353using 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;
5455using FemtoFullCollisionMC = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Ms, aod::McCollisionLabels>::iterator;
5556using 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;
5658using FemtoFullMCgenCollisions = soa::Join<aod::McCollisions, MultsExtraMC>;
5759using 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+ };
782814WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
783815{
784816 WorkflowSpec workflow{adaptAnalysisTask<femtoDreamProducerTask>(cfgc)};
0 commit comments