@@ -117,8 +117,9 @@ struct DerivedDataCreatorD0Calibration {
117117 std::string prefix = " ml" ;
118118 } cfgMl;
119119
120- using TracksWCovExtraPid = soa::Join<aod::Tracks, aod::TrackToTmo, aod::TracksCov, aod::TracksExtra, aod::TrackSelection, aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa>;
121- using TracksWCovExtraPidAndQa = soa::Join<aod::Tracks, aod::TrackToTmo, aod::TrackToTracksQA, aod::TracksCov, aod::TracksExtra, aod::TrackSelection, aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa>;
120+ using TracksWCovExtraPid = soa::Join<aod::Tracks, aod::TracksCov, aod::TracksExtra, aod::TrackSelection, aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa>;
121+ using TracksWCovExtraTmoPid = soa::Join<aod::Tracks, aod::TrackToTmo, aod::TracksCov, aod::TracksExtra, aod::TrackSelection, aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa>;
122+ using TracksWCovExtraTmoPidAndQa = soa::Join<aod::Tracks, aod::TrackToTmo, aod::TrackToTracksQA, aod::TracksCov, aod::TracksExtra, aod::TrackSelection, aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa>;
122123 using CollisionsWEvSel = soa::Join<aod::Collisions, aod::CentFT0Cs, aod::EvSels>;
123124 using TrackMeanOccs = soa::Join<aod::TmoTrackIds, aod::TmoPrim, aod::TmoT0V0, aod::TmoRT0V0Prim, aod::TwmoPrim, aod::TwmoT0V0, aod::TwmoRT0V0Prim>;
124125
@@ -183,12 +184,12 @@ struct DerivedDataCreatorD0Calibration {
183184 }
184185
185186 // main function
186- template <bool withTrackQa, typename TTrackQa, typename TTracks>
187+ template <bool withTrackQa, bool withTrackOcc, typename TTrackQa, typename TTracks, typename TTrackMeanOccs >
187188 void runDataCreation (CollisionsWEvSel const & collisions,
188189 aod::TrackAssoc const & trackIndices,
189190 TTracks const &,
190191 aod::BCsWithTimestamps const &,
191- TrackMeanOccs const &,
192+ TTrackMeanOccs const &,
192193 TTrackQa const &)
193194 {
194195 std::map<int , int > selectedCollisions; // map with indices of selected collisions (key: original AOD Collision table index, value: D0 collision index)
@@ -514,18 +515,20 @@ struct DerivedDataCreatorD0Calibration {
514515 uint8_t twmoFT0CUnfm80{0u };
515516 uint8_t tmoRobustT0V0PrimUnfm80{0u };
516517 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 ());
518+ if constexpr (withTrackOcc) {
519+ if (trackPos.has_tmo ()) {
520+ auto tmoFromTrack = trackPos.template tmo_as <TrackMeanOccs>(); // obtain track mean occupancies
521+ tmoPrimUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoPrimUnfm80 ());
522+ tmoFV0AUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFV0AUnfm80 ());
523+ tmoFT0AUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFT0AUnfm80 ());
524+ tmoFT0CUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFT0CUnfm80 ());
525+ twmoPrimUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoPrimUnfm80 ());
526+ twmoFV0AUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFV0AUnfm80 ());
527+ twmoFT0AUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFT0AUnfm80 ());
528+ twmoFT0CUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFT0CUnfm80 ());
529+ tmoRobustT0V0PrimUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoRobustT0V0PrimUnfm80 ());
530+ twmoRobustT0V0PrimUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoRobustT0V0PrimUnfm80 ());
531+ }
529532 }
530533 float tpcTime0{0 .f };
531534 float tpcdEdxNorm{0 .f };
@@ -679,18 +682,20 @@ struct DerivedDataCreatorD0Calibration {
679682 uint8_t twmoFT0CUnfm80{0u };
680683 uint8_t tmoRobustT0V0PrimUnfm80{0u };
681684 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 ());
685+ if constexpr (withTrackOcc) {
686+ if (trackNeg.has_tmo ()) {
687+ auto tmoFromTrack = trackNeg.template tmo_as <TrackMeanOccs>(); // obtain track mean occupancies
688+ tmoPrimUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoPrimUnfm80 ());
689+ tmoFV0AUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFV0AUnfm80 ());
690+ tmoFT0AUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFT0AUnfm80 ());
691+ tmoFT0CUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoFT0CUnfm80 ());
692+ twmoPrimUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoPrimUnfm80 ());
693+ twmoFV0AUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFV0AUnfm80 ());
694+ twmoFT0AUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFT0AUnfm80 ());
695+ twmoFT0CUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoFT0CUnfm80 ());
696+ tmoRobustT0V0PrimUnfm80 = getCompressedOccupancy (tmoFromTrack.tmoRobustT0V0PrimUnfm80 ());
697+ twmoRobustT0V0PrimUnfm80 = getCompressedOccupancy (tmoFromTrack.twmoRobustT0V0PrimUnfm80 ());
698+ }
694699 }
695700 float tpcTime0{0 .f };
696701 float tpcdEdxNorm{0 .f };
@@ -868,24 +873,33 @@ struct DerivedDataCreatorD0Calibration {
868873 // process functions
869874 void processWithTrackQa (CollisionsWEvSel const & collisions,
870875 aod::TrackAssoc const & trackIndices,
871- TracksWCovExtraPidAndQa const & tracks,
876+ TracksWCovExtraTmoPidAndQa const & tracks,
872877 aod::BCsWithTimestamps const & bcs,
873878 TrackMeanOccs const & occ,
874879 aod::TracksQAVersion const & trackQa)
875880 {
876- runDataCreation<true >(collisions, trackIndices, tracks, bcs, occ, trackQa);
881+ runDataCreation<true , true >(collisions, trackIndices, tracks, bcs, occ, trackQa);
877882 }
878883 PROCESS_SWITCH (DerivedDataCreatorD0Calibration, processWithTrackQa, " Process with trackQA enabled" , false );
879884
880885 void processNoTrackQa (CollisionsWEvSel const & collisions,
881886 aod::TrackAssoc const & trackIndices,
882- TracksWCovExtraPid const & tracks,
887+ TracksWCovExtraTmoPid const & tracks,
883888 aod::BCsWithTimestamps const & bcs,
884889 TrackMeanOccs const & occ)
885890 {
886- runDataCreation<false >(collisions, trackIndices, tracks, bcs, occ, nullptr );
891+ runDataCreation<false , true >(collisions, trackIndices, tracks, bcs, occ, nullptr );
892+ }
893+ PROCESS_SWITCH (DerivedDataCreatorD0Calibration, processNoTrackQa, " Process without trackQA enabled" , false );
894+
895+ void processNoTrackQaAndOcc (CollisionsWEvSel const & collisions,
896+ aod::TrackAssoc const & trackIndices,
897+ TracksWCovExtraPid const & tracks,
898+ aod::BCsWithTimestamps const & bcs)
899+ {
900+ runDataCreation<false , false >(collisions, trackIndices, tracks, bcs, nullptr , nullptr );
887901 }
888- PROCESS_SWITCH (DerivedDataCreatorD0Calibration, processNoTrackQa , " Process without trackQA enabled" , true );
902+ PROCESS_SWITCH (DerivedDataCreatorD0Calibration, processNoTrackQaAndOcc , " Process without trackQA and trackMeanOcc enabled" , true );
889903};
890904
891905WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
0 commit comments