@@ -183,12 +183,12 @@ struct DerivedDataCreatorD0Calibration {
183183 }
184184
185185 // main function
186- template <bool withTrackQa, typename TTrackQa, typename TTracks>
186+ template <bool withTrackQa, bool withTrackOcc, typename TTrackQa, typename TTracks, typename TTrackMeanOccs >
187187 void runDataCreation (CollisionsWEvSel const & collisions,
188188 aod::TrackAssoc const & trackIndices,
189189 TTracks const &,
190190 aod::BCsWithTimestamps const &,
191- TrackMeanOccs const &,
191+ TTrackMeanOccs const &,
192192 TTrackQa const &)
193193 {
194194 std::map<int , int > selectedCollisions; // map with indices of selected collisions (key: original AOD Collision table index, value: D0 collision index)
@@ -514,18 +514,20 @@ struct DerivedDataCreatorD0Calibration {
514514 uint8_t twmoFT0CUnfm80{0u };
515515 uint8_t tmoRobustT0V0PrimUnfm80{0u };
516516 uint8_t twmoRobustT0V0PrimUnfm80{0u };
517- if (trackPos.has_tmo ()) {
518- auto tmoFromTrack = trackPos.template tmo_as <TrackMeanOccs>(); // obtain track mean occupancies
519- tmoPrimUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoPrimUnfm80 ());
520- tmoFV0AUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFV0AUnfm80 ());
521- tmoFT0AUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFT0AUnfm80 ());
522- tmoFT0CUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFT0CUnfm80 ());
523- twmoPrimUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoPrimUnfm80 ());
524- twmoFV0AUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFV0AUnfm80 ());
525- twmoFT0AUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFT0AUnfm80 ());
526- twmoFT0CUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFT0CUnfm80 ());
527- tmoRobustT0V0PrimUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoRobustT0V0PrimUnfm80 ());
528- twmoRobustT0V0PrimUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoRobustT0V0PrimUnfm80 ());
517+ if constexpr (withTrackOcc) {
518+ if (trackPos.has_tmo ()) {
519+ auto tmoFromTrack = trackPos.template tmo_as <TrackMeanOccs>(); // obtain track mean occupancies
520+ tmoPrimUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoPrimUnfm80 ());
521+ tmoFV0AUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFV0AUnfm80 ());
522+ tmoFT0AUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFT0AUnfm80 ());
523+ tmoFT0CUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFT0CUnfm80 ());
524+ twmoPrimUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoPrimUnfm80 ());
525+ twmoFV0AUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFV0AUnfm80 ());
526+ twmoFT0AUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFT0AUnfm80 ());
527+ twmoFT0CUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFT0CUnfm80 ());
528+ tmoRobustT0V0PrimUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoRobustT0V0PrimUnfm80 ());
529+ twmoRobustT0V0PrimUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoRobustT0V0PrimUnfm80 ());
530+ }
529531 }
530532 float tpcTime0{0 .f };
531533 float tpcdEdxNorm{0 .f };
@@ -679,18 +681,20 @@ struct DerivedDataCreatorD0Calibration {
679681 uint8_t twmoFT0CUnfm80{0u };
680682 uint8_t tmoRobustT0V0PrimUnfm80{0u };
681683 uint8_t twmoRobustT0V0PrimUnfm80{0u };
682- if (trackNeg.has_tmo ()) {
683- auto tmoFromTrack = trackNeg.template tmo_as <TrackMeanOccs>(); // obtain track mean occupancies
684- tmoPrimUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoPrimUnfm80 ());
685- tmoFV0AUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFV0AUnfm80 ());
686- tmoFT0AUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFT0AUnfm80 ());
687- tmoFT0CUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFT0CUnfm80 ());
688- twmoPrimUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoPrimUnfm80 ());
689- twmoFV0AUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFV0AUnfm80 ());
690- twmoFT0AUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFT0AUnfm80 ());
691- twmoFT0CUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFT0CUnfm80 ());
692- tmoRobustT0V0PrimUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoRobustT0V0PrimUnfm80 ());
693- twmoRobustT0V0PrimUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoRobustT0V0PrimUnfm80 ());
684+ if constexpr (withTrackOcc) {
685+ if (trackNeg.has_tmo ()) {
686+ auto tmoFromTrack = trackNeg.template tmo_as <TrackMeanOccs>(); // obtain track mean occupancies
687+ tmoPrimUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoPrimUnfm80 ());
688+ tmoFV0AUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFV0AUnfm80 ());
689+ tmoFT0AUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFT0AUnfm80 ());
690+ tmoFT0CUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFT0CUnfm80 ());
691+ twmoPrimUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoPrimUnfm80 ());
692+ twmoFV0AUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFV0AUnfm80 ());
693+ twmoFT0AUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFT0AUnfm80 ());
694+ twmoFT0CUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFT0CUnfm80 ());
695+ tmoRobustT0V0PrimUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoRobustT0V0PrimUnfm80 ());
696+ twmoRobustT0V0PrimUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoRobustT0V0PrimUnfm80 ());
697+ }
694698 }
695699 float tpcTime0{0 .f };
696700 float tpcdEdxNorm{0 .f };
@@ -873,7 +877,7 @@ struct DerivedDataCreatorD0Calibration {
873877 TrackMeanOccs const & occ,
874878 aod::TracksQAVersion const & trackQa)
875879 {
876- runDataCreation<true >(collisions, trackIndices, tracks, bcs, occ, trackQa);
880+ runDataCreation<true , true >(collisions, trackIndices, tracks, bcs, occ, trackQa);
877881 }
878882 PROCESS_SWITCH (DerivedDataCreatorD0Calibration, processWithTrackQa, " Process with trackQA enabled" , false );
879883
@@ -883,9 +887,18 @@ struct DerivedDataCreatorD0Calibration {
883887 aod::BCsWithTimestamps const & bcs,
884888 TrackMeanOccs const & occ)
885889 {
886- runDataCreation<false >(collisions, trackIndices, tracks, bcs, occ, nullptr );
890+ runDataCreation<false , true >(collisions, trackIndices, tracks, bcs, occ, nullptr );
891+ }
892+ PROCESS_SWITCH (DerivedDataCreatorD0Calibration, processNoTrackQa, " Process without trackQA enabled" , false );
893+
894+ void processNoTrackQaAndOcc (CollisionsWEvSel const & collisions,
895+ aod::TrackAssoc const & trackIndices,
896+ TracksWCovExtraPid const & tracks,
897+ aod::BCsWithTimestamps const & bcs)
898+ {
899+ runDataCreation<false , false >(collisions, trackIndices, tracks, bcs, nullptr , nullptr );
887900 }
888- PROCESS_SWITCH (DerivedDataCreatorD0Calibration, processNoTrackQa , " Process without trackQA enabled" , true );
901+ PROCESS_SWITCH (DerivedDataCreatorD0Calibration, processNoTrackQaAndOcc , " Process without trackQA and trackMeanOcc enabled" , true );
889902};
890903
891904WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
0 commit comments