@@ -187,8 +187,6 @@ struct TableMaker {
187187 Produces<ReducedEventsExtended> eventExtended;
188188 Produces<ReducedEventsVtxCov> eventVtxCov;
189189 Produces<ReducedEventsInfo> eventInfo;
190- Produces<ReducedEventsQvectorCentr> eventQvectorCentr;
191- Produces<ReducedEventsQvectorCentrExtra> eventQvectorCentrExtra;
192190 Produces<ReducedZdcs> zdc;
193191 Produces<ReducedFITs> fit;
194192 Produces<ReducedEventsMultPV> multPV;
@@ -209,6 +207,12 @@ struct TableMaker {
209207 Produces<ReducedMFTsExtra> mftTrackExtra;
210208 Produces<ReducedMFTAssoc> mftAssoc;
211209
210+ // Q-vector related tables, to be filled only if the user selects the corresponding option; since they are not needed for the skimming, we keep them in a separate group to avoid filling them when not needed
211+ struct : ProducesGroup {
212+ Produces<ReducedEventsQvectorCentr> eventQvectorCentr;
213+ Produces<ReducedEventsQvectorCentrExtra> eventQvectorCentrExtra;
214+ } qvecGroup;
215+
212216 OutputObj<THashList> fOutputList {" output" }; // ! the histogram manager output list
213217 OutputObj<TList> fStatsList {" Statistics" }; // ! skimming statistics
214218
@@ -289,6 +293,11 @@ struct TableMaker {
289293 Configurable<bool > fConfigSaveElectronSample {" cfgSaveElectronSample" , false , " If true, only save electron sample" };
290294 } fConfigPostCalibTPC ;
291295
296+ //
297+ struct : ConfigurableGroup {
298+ Configurable<bool > fConfigQvectCalibAvailable {" cfgQvectCalibAvailable" , false , " If true, qvector calibration objects are available in CCDB for this run" };
299+ } fConfigQvector ;
300+
292301 struct : ConfigurableGroup {
293302 // Track related options
294303 Configurable<bool > fPropTrack {" cfgPropTrack" , true , " Propagate tracks to associated collision to recalculate DCA and momentum vector" };
@@ -1179,11 +1188,12 @@ struct TableMaker {
11791188 eventInfo (collision.globalIndex ());
11801189
11811190 if constexpr ((TEventFillMap & VarManager::ObjTypes::CollisionQvectCentr) > 0 ) {
1182- eventQvectorCentr (collision.qvecFT0ARe (), collision.qvecFT0AIm (), collision.qvecFT0CRe (), collision.qvecFT0CIm (), collision.qvecFT0MRe (), collision.qvecFT0MIm (), collision.qvecFV0ARe (), collision.qvecFV0AIm (), collision.qvecTPCposRe (), collision.qvecTPCposIm (), collision.qvecTPCnegRe (), collision.qvecTPCnegIm (),
1183- collision.sumAmplFT0A (), collision.sumAmplFT0C (), collision.sumAmplFT0M (), collision.sumAmplFV0A (), collision.nTrkTPCpos (), collision.nTrkTPCneg ());
1184- eventQvectorCentrExtra (collision.qvecTPCallRe (), collision.qvecTPCallIm (), collision.nTrkTPCall ());
1191+ if (fConfigQvector .fConfigQvectCalibAvailable ) {
1192+ qvecGroup.eventQvectorCentr (collision.qvecFT0ARe (), collision.qvecFT0AIm (), collision.qvecFT0CRe (), collision.qvecFT0CIm (), collision.qvecFT0MRe (), collision.qvecFT0MIm (), collision.qvecFV0ARe (), collision.qvecFV0AIm (), collision.qvecTPCposRe (), collision.qvecTPCposIm (), collision.qvecTPCnegRe (), collision.qvecTPCnegIm (),
1193+ collision.sumAmplFT0A (), collision.sumAmplFT0C (), collision.sumAmplFT0M (), collision.sumAmplFV0A (), collision.nTrkTPCpos (), collision.nTrkTPCneg ());
1194+ qvecGroup.eventQvectorCentrExtra (collision.qvecTPCallRe (), collision.qvecTPCallIm (), collision.nTrkTPCall ());
1195+ }
11851196 }
1186-
11871197 if constexpr ((TEventFillMap & VarManager::ObjTypes::Zdc) > 0 ) {
11881198 if constexpr ((TEventFillMap & VarManager::ObjTypes::RapidityGapFilter) > 0 ) {
11891199 // The DQRapidityGapFilter contains the index of the bc we want to get ZDC info from
@@ -1918,33 +1928,33 @@ struct TableMaker {
19181928 }
19191929
19201930 // produce the full DQ skimmed data model typically for Pb-Pb (with centrality), no subscribtion to the DQ event filter
1921- void processPbPb (MyEventsWithCentAndMults const & collisions, MyBCs const & bcs,
1931+ void processPbPb (MyEventsWithCentAndMultsQvect const & collisions, MyBCs const & bcs,
19221932 MyBarrelTracksWithCov const & tracksBarrel,
19231933 MyMuonsWithCov const & muons, MFTTracks const & mftTracks,
19241934 TrackAssoc const & trackAssocs, FwdTrackAssoc const & fwdTrackAssocs,
1925- MFTTrackAssoc const & mftAssocs)
1935+ MFTTrackAssoc const & mftAssocs, aod::FT0s& ft0s, aod::FV0As& fv0as, aod::FDDs& fdds )
19261936 {
1927- fullSkimming<gkEventFillMapWithCentAndMults , gkTrackFillMapWithCov, gkMuonFillMapWithCov, gkMFTFillMap>(collisions, bcs, nullptr , tracksBarrel, muons, mftTracks, trackAssocs, fwdTrackAssocs, mftAssocs, nullptr , nullptr , nullptr , nullptr );
1937+ fullSkimming<gkEventFillMapWithCentAndMultsQvect , gkTrackFillMapWithCov, gkMuonFillMapWithCov, gkMFTFillMap>(collisions, bcs, nullptr , tracksBarrel, muons, mftTracks, trackAssocs, fwdTrackAssocs, mftAssocs, nullptr , ft0s, fv0as, fdds );
19281938 }
19291939
19301940 // produce the barrel only DQ skimmed data model typically for Pb-Pb (with centrality), no subscribtion to the DQ event filter
1931- void processPbPbBarrelOnly (MyEventsWithCentAndMults const & collisions, MyBCs const & bcs,
1941+ void processPbPbBarrelOnly (MyEventsWithCentAndMultsQvect const & collisions, MyBCs const & bcs,
19321942 MyBarrelTracksWithCov const & tracksBarrel,
1933- TrackAssoc const & trackAssocs)
1943+ TrackAssoc const & trackAssocs, aod::FT0s& ft0s, aod::FV0As& fv0as, aod::FDDs& fdds )
19341944 {
19351945 computeOccupancyEstimators (collisions, tracksPosWithCov, tracksNegWithCov, presliceWithCov, bcs);
19361946 computeCollMergingTag (collisions, tracksBarrel, presliceWithCov);
1937- fullSkimming<gkEventFillMapWithCentAndMults , gkTrackFillMapWithCov, 0u , 0u >(collisions, bcs, nullptr , tracksBarrel, nullptr , nullptr , trackAssocs, nullptr , nullptr , nullptr , nullptr , nullptr , nullptr );
1947+ fullSkimming<gkEventFillMapWithCentAndMultsQvect , gkTrackFillMapWithCov, 0u , 0u >(collisions, bcs, nullptr , tracksBarrel, nullptr , nullptr , trackAssocs, nullptr , nullptr , nullptr , ft0s, fv0as, fdds );
19381948 }
19391949
19401950 // produce the barrel only DQ skimmed data model typically for Pb-Pb (with centrality), no TOF
1941- void processPbPbBarrelOnlyNoTOF (MyEventsWithCentAndMults const & collisions, MyBCs const & bcs,
1951+ void processPbPbBarrelOnlyNoTOF (MyEventsWithCentAndMultsQvect const & collisions, MyBCs const & bcs,
19421952 MyBarrelTracksWithCovNoTOF const & tracksBarrel,
1943- TrackAssoc const & trackAssocs)
1953+ TrackAssoc const & trackAssocs, aod::FT0s& ft0s, aod::FV0As& fv0as, aod::FDDs& fdds )
19441954 {
19451955 computeOccupancyEstimators (collisions, tracksPosWithCovNoTOF, tracksNegWithCovNoTOF, presliceWithCovNoTOF, bcs);
19461956 computeCollMergingTag (collisions, tracksBarrel, presliceWithCovNoTOF);
1947- fullSkimming<gkEventFillMapWithCentAndMults , gkTrackFillMapNoTOF, 0u , 0u >(collisions, bcs, nullptr , tracksBarrel, nullptr , nullptr , trackAssocs, nullptr , nullptr , nullptr , nullptr , nullptr , nullptr );
1957+ fullSkimming<gkEventFillMapWithCentAndMultsQvect , gkTrackFillMapNoTOF, 0u , 0u >(collisions, bcs, nullptr , tracksBarrel, nullptr , nullptr , trackAssocs, nullptr , nullptr , nullptr , ft0s, fv0as, fdds );
19481958 }
19491959
19501960 // produce the barrel-only DQ skimmed data model typically for UPC Pb-Pb (no centrality), subscribe to the DQ rapidity gap event filter (filter-PbPb)
@@ -1958,23 +1968,23 @@ struct TableMaker {
19581968 }
19591969
19601970 // produce the barrel only DQ skimmed data model typically for Pb-Pb (with centrality), no subscribtion to the DQ event filter
1961- void processPbPbBarrelOnlyWithV0Bits (MyEventsWithCentAndMults const & collisions, MyBCs const & bcs,
1971+ void processPbPbBarrelOnlyWithV0Bits (MyEventsWithCentAndMultsQvect const & collisions, MyBCs const & bcs,
19621972 MyBarrelTracksWithV0Bits const & tracksBarrel,
1963- TrackAssoc const & trackAssocs)
1973+ TrackAssoc const & trackAssocs, aod::FT0s& ft0s, aod::FV0As& fv0as, aod::FDDs& fdds )
19641974 {
19651975 computeOccupancyEstimators (collisions, tracksPos, tracksNeg, preslice, bcs);
19661976 computeCollMergingTag (collisions, tracksBarrel, preslice);
1967- fullSkimming<gkEventFillMapWithCentAndMults , gkTrackFillMapWithV0Bits, 0u , 0u >(collisions, bcs, nullptr , tracksBarrel, nullptr , nullptr , trackAssocs, nullptr , nullptr , nullptr , nullptr , nullptr , nullptr );
1977+ fullSkimming<gkEventFillMapWithCentAndMultsQvect , gkTrackFillMapWithV0Bits, 0u , 0u >(collisions, bcs, nullptr , tracksBarrel, nullptr , nullptr , trackAssocs, nullptr , nullptr , nullptr , ft0s, fv0as, fdds );
19681978 }
19691979
19701980 // produce the barrel only DQ skimmed data model typically for Pb-Pb (with centrality), no subscribtion to the DQ event filter
1971- void processPbPbBarrelOnlyWithV0BitsNoTOF (MyEventsWithCentAndMults const & collisions, MyBCs const & bcs,
1981+ void processPbPbBarrelOnlyWithV0BitsNoTOF (MyEventsWithCentAndMultsQvect const & collisions, MyBCs const & bcs,
19721982 MyBarrelTracksWithV0BitsNoTOF const & tracksBarrel,
1973- TrackAssoc const & trackAssocs)
1983+ TrackAssoc const & trackAssocs, aod::FT0s& ft0s, aod::FV0As& fv0as, aod::FDDs& fdds )
19741984 {
19751985 computeOccupancyEstimators (collisions, tracksPosNoTOF, tracksNegNoTOF, presliceNoTOF, bcs);
19761986 computeCollMergingTag (collisions, tracksBarrel, presliceNoTOF);
1977- fullSkimming<gkEventFillMapWithCentAndMults , gkTrackFillMapWithV0BitsNoTOF, 0u , 0u >(collisions, bcs, nullptr , tracksBarrel, nullptr , nullptr , trackAssocs, nullptr , nullptr , nullptr , nullptr , nullptr , nullptr );
1987+ fullSkimming<gkEventFillMapWithCentAndMultsQvect , gkTrackFillMapWithV0BitsNoTOF, 0u , 0u >(collisions, bcs, nullptr , tracksBarrel, nullptr , nullptr , trackAssocs, nullptr , nullptr , nullptr , ft0s, fv0as, fdds );
19781988 }
19791989
19801990 // produce the muon only DQ skimmed data model typically for Pb-Pb (with centrality), no subscribtion to the DQ event filter
0 commit comments