3838#include " Common/DataModel/Multiplicity.h"
3939#include " Common/DataModel/PIDResponseTOF.h"
4040#include " Common/DataModel/PIDResponseTPC.h"
41+ #include " Common/DataModel/Qvectors.h"
4142#include " Common/DataModel/TrackSelectionTables.h"
4243#include " Tools/ML/MlResponse.h"
4344
@@ -129,6 +130,7 @@ using MyEventsWithMultsAndRapidityGapFilter = soa::Join<aod::Collisions, aod::Ev
129130using MyEventsWithCent = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms>;
130131using MyEventsWithCentAndMults = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms, aod::Mults, aod::MultsExtra>;
131132using MyEventsWithMultsExtra = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::MultsExtra>;
133+ using MyEventsWithCentAndMultsQvect = soa::Join<aod::Collisions, aod::EvSels, aod::QvectorFT0Cs, aod::QvectorFT0As, aod::QvectorFT0Ms, aod::QvectorFV0As, aod::QvectorTPCposs, aod::QvectorTPCnegs, aod::QvectorTPCalls, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::Mults, aod::MultsExtra>;
132134using MyMuons = soa::Join<aod::FwdTracks, aod::FwdTracksDCA>;
133135using MyMuonsWithCov = soa::Join<aod::FwdTracks, aod::FwdTracksCov, aod::FwdTracksDCA>;
134136using MyMuonsRealignWithCov = soa::Join<aod::FwdTracksReAlign, aod::FwdTrksCovReAlign, aod::FwdTracksDCA>;
@@ -149,6 +151,7 @@ constexpr static uint32_t gkEventFillMapWithMultsEventFilterZdc = VarManager::Ob
149151constexpr static uint32_t gkEventFillMapWithMultsRapidityGapFilterZdcFit = VarManager::ObjTypes::BC | VarManager::ObjTypes::Collision | VarManager::ObjTypes::CollisionMult | VarManager::ObjTypes::CollisionMultExtra | VarManager::ObjTypes::RapidityGapFilter | VarManager::ObjTypes::Zdc | VarManager::ObjTypes::Fit;
150152// constexpr static uint32_t gkEventFillMapWithCent = VarManager::ObjTypes::BC | VarManager::ObjTypes::Collision | VarManager::ObjTypes::CollisionCent;
151153constexpr static uint32_t gkEventFillMapWithCentAndMults = VarManager::ObjTypes::BC | VarManager::ObjTypes::Collision | VarManager::ObjTypes::CollisionCent | VarManager::CollisionMult | VarManager::ObjTypes::CollisionMultExtra;
154+ constexpr static uint32_t gkEventFillMapWithCentAndMultsQvect = VarManager::ObjTypes::BC | VarManager::ObjTypes::Collision | VarManager::ObjTypes::CollisionCent | VarManager::CollisionMult | VarManager::ObjTypes::CollisionMultExtra | VarManager::ObjTypes::CollisionQvectCentr;
152155constexpr static uint32_t gkEventFillMapWithMultsExtra = VarManager::ObjTypes::BC | VarManager::ObjTypes::Collision | VarManager::CollisionMult | VarManager::ObjTypes::CollisionMultExtra;
153156// constexpr static uint32_t gkEventFillMapWithCentRun2 = VarManager::ObjTypes::BC | VarManager::ObjTypes::Collision | VarManager::ObjTypes::CollisionCentRun2; // Unused variable
154157// constexpr static uint32_t gkTrackFillMap = VarManager::ObjTypes::Track | VarManager::ObjTypes::TrackExtra | VarManager::ObjTypes::TrackDCA | VarManager::ObjTypes::TrackPID | VarManager::ObjTypes::TrackPIDExtra;
@@ -183,6 +186,8 @@ struct TableMaker {
183186 Produces<ReducedEventsExtended> eventExtended;
184187 Produces<ReducedEventsVtxCov> eventVtxCov;
185188 Produces<ReducedEventsInfo> eventInfo;
189+ Produces<ReducedEventsQvectorCentr> eventQvectorCentr;
190+ Produces<ReducedEventsQvectorCentrExtra> eventQvectorCentrExtra;
186191 Produces<ReducedZdcs> zdc;
187192 Produces<ReducedFITs> fit;
188193 Produces<ReducedEventsMultPV> multPV;
@@ -467,7 +472,7 @@ struct TableMaker {
467472 context.mOptions .get <bool >(" processPbPbWithFilterBarrelOnly" ) || context.mOptions .get <bool >(" processPPBarrelOnlyWithV0s" ) || context.mOptions .get <bool >(" processPbPbBarrelOnlyNoTOF" );
468473
469474 bool enableMuonHistos = (context.mOptions .get <bool >(" processPPWithFilter" ) || context.mOptions .get <bool >(" processPPWithFilterMuonOnly" ) || context.mOptions .get <bool >(" processPPWithFilterMuonMFT" ) || context.mOptions .get <bool >(" processPPMuonOnly" ) || context.mOptions .get <bool >(" processPPRealignedMuonOnly" ) || context.mOptions .get <bool >(" processPPMuonMFT" ) || context.mOptions .get <bool >(" processPPMuonMFTWithMultsExtra" ) ||
470- context.mOptions .get <bool >(" processPbPb" ) || context.mOptions .get <bool >(" processPbPbMuonOnly" ) || context.mOptions .get <bool >(" processPbPbRealignedMuonOnly" ) || context.mOptions .get <bool >(" processPbPbMuonMFT" ));
475+ context.mOptions .get <bool >(" processPbPb" ) || context.mOptions .get <bool >(" processPbPbMuonOnly" ) || context.mOptions .get <bool >(" processPbPbMuonOnlyWithQvect " ) || context. mOptions . get < bool >( " processPbPbRealignedMuonOnly" ) || context.mOptions .get <bool >(" processPbPbMuonMFT" ));
471476
472477 if (enableBarrelHistos) {
473478 // Barrel track histograms, before selections
@@ -1053,6 +1058,9 @@ struct TableMaker {
10531058 VarManager::ResetValues (0 , VarManager::kNEventWiseVariables );
10541059 VarManager::FillBC (bc);
10551060 VarManager::FillEvent<TEventFillMap>(collision); // extract event information and place it in the fValues array
1061+ if constexpr ((TEventFillMap & VarManager::ObjTypes::CollisionQvectCentr) > 0 ) {
1062+ VarManager::FillQVectorFromCentralFW (collision);
1063+ }
10561064 if constexpr ((TEventFillMap & VarManager::ObjTypes::Zdc) > 0 ) {
10571065 if constexpr ((TEventFillMap & VarManager::ObjTypes::RapidityGapFilter) > 0 ) {
10581066 // The DQRapidityGapFilter contains the index of the bc we want to get ZDC info from
@@ -1168,6 +1176,13 @@ struct TableMaker {
11681176 multTPC, multFV0A, multFV0C, multFT0A, multFT0C, multFDDA, multFDDC, multZNA, multZNC, multTracklets, multTracksPV, centFT0C, centFT0A, centFT0M);
11691177 eventVtxCov (collision.covXX (), collision.covXY (), collision.covXZ (), collision.covYY (), collision.covYZ (), collision.covZZ (), collision.chi2 ());
11701178 eventInfo (collision.globalIndex ());
1179+
1180+ if constexpr ((TEventFillMap & VarManager::ObjTypes::CollisionQvectCentr) > 0 ) {
1181+ 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 (),
1182+ collision.sumAmplFT0A (), collision.sumAmplFT0C (), collision.sumAmplFT0M (), collision.sumAmplFV0A (), collision.nTrkTPCpos (), collision.nTrkTPCneg ());
1183+ eventQvectorCentrExtra (collision.qvecTPCallRe (), collision.qvecTPCallIm (), collision.nTrkTPCall ());
1184+ }
1185+
11711186 if constexpr ((TEventFillMap & VarManager::ObjTypes::Zdc) > 0 ) {
11721187 if constexpr ((TEventFillMap & VarManager::ObjTypes::RapidityGapFilter) > 0 ) {
11731188 // The DQRapidityGapFilter contains the index of the bc we want to get ZDC info from
@@ -1958,6 +1973,13 @@ struct TableMaker {
19581973 fullSkimming<gkEventFillMapWithCentAndMults, 0u , gkMuonFillMapWithCov, 0u >(collisions, bcs, nullptr , nullptr , muons, nullptr , nullptr , fwdTrackAssocs, nullptr , nullptr , ft0s, fv0as, fdds);
19591974 }
19601975
1976+ // produce the muon only DQ skimmed data model typically for Pb-Pb (with centrality and flow), no subscribtion to the DQ event filter
1977+ void processPbPbMuonOnlyWithQvect (MyEventsWithCentAndMultsQvect const & collisions, MyBCs const & bcs,
1978+ MyMuonsWithCov const & muons, FwdTrackAssoc const & fwdTrackAssocs, aod::FT0s& ft0s, aod::FV0As& fv0as, aod::FDDs& fdds)
1979+ {
1980+ fullSkimming<gkEventFillMapWithCentAndMultsQvect, 0u , gkMuonFillMapWithCov, 0u >(collisions, bcs, nullptr , nullptr , muons, nullptr , nullptr , fwdTrackAssocs, nullptr , nullptr , ft0s, fv0as, fdds);
1981+ }
1982+
19611983 // produce the realigned muon only DQ skimmed data model typically for Pb-Pb (with centrality), no subscribtion to the DQ event filter
19621984 void processPbPbRealignedMuonOnly (MyEventsWithCentAndMults const & collisions, MyBCs const & bcs,
19631985 MyMuonsRealignWithCov const & muons, FwdTrackAssoc const & fwdTrackAssocs)
@@ -2010,6 +2032,7 @@ struct TableMaker {
20102032 PROCESS_SWITCH (TableMaker, processPbPbBarrelOnlyWithV0Bits, " Build barrel only DQ skimmed data model typically for Pb-Pb, w/ V0 bits, w/o event filtering" , false );
20112033 PROCESS_SWITCH (TableMaker, processPbPbBarrelOnlyWithV0BitsNoTOF, " Build barrel only DQ skimmed data model typically for Pb-Pb, w/ V0 bits, no TOF, w/o event filtering" , false );
20122034 PROCESS_SWITCH (TableMaker, processPbPbMuonOnly, " Build muon only DQ skimmed data model typically for Pb-Pb, w/o event filtering" , false );
2035+ PROCESS_SWITCH (TableMaker, processPbPbMuonOnlyWithQvect, " Build muon only DQ skimmed data model for Pb-Pb, with event properties and flow" , false );
20132036 PROCESS_SWITCH (TableMaker, processPbPbRealignedMuonOnly, " Build realigned muon only DQ skimmed data model typically for Pb-Pb, w/o event filtering" , false );
20142037 PROCESS_SWITCH (TableMaker, processPbPbMuonMFT, " Build muon + mft DQ skimmed data model typically for Pb-Pb, w/o event filtering" , false );
20152038 PROCESS_SWITCH (TableMaker, processOnlyBCs, " Analyze the BCs to store sampled lumi" , false );
0 commit comments