Skip to content

Commit c7819f0

Browse files
committed
Add direct estimator data
1 parent 9448302 commit c7819f0

2 files changed

Lines changed: 31 additions & 8 deletions

File tree

‎PWGDQ/TableProducer/globalTrackEstimator.cxx‎

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ struct GlobalTrackEstimator {
6262
Configurable<float> cfgExponentDCAxy{"cfgExponentDCAxy", 1.1, "Exponent of the pT dependency of the DCAxy paramterization"};
6363
Configurable<float> cfgMaxDCAz{"cfgMaxDCAz", 2.0, "Maximum DCAz"};
6464
Configurable<float> cfgMinPt{"cfgMinPt", 0.1, "Minimum required pT"};
65-
Configurable<float> cfgEtaRange{"cfgEtaRange", 0.8, "Pseudorapidity range"};
65+
Configurable<float> cfgEtaRange{"cfgEtaRange", 0.8, "Absolute pseudorapidity range"};
6666
Configurable<float> cfgMinTPCCluster{"cfgMinTPCCluster", 70, "Minimum number of crossed TPC rows"};
6767
Configurable<float> cfgRatioTPCClusterOverFindableCluster{"cfgRatioTPCClusterOverFindableCluster", 0.8, "Minimum ratio of crossed TPC rows over findable clusters"};
6868
Configurable<float> cfgMaxChi2TPC{"cfgMaxChi2TPC", 4.0, "Maximum chi2 per cluster in TPC"};
@@ -73,9 +73,6 @@ struct GlobalTrackEstimator {
7373
o2::framework::Preslice<o2::aod::ReducedTracksAssoc> preslice = o2::aod::reducedtrack_association::reducedeventId;
7474
o2::framework::Preslice<o2::aod::TrackAssoc> presliceDirect = o2::aod::track_association::collisionId;
7575

76-
o2::framework::expressions::Filter trackFilter = (o2::aod::reducedtrack::pt >= cfgMinPt) && (nabs(o2::aod::reducedtrack::eta) <= cfgEtaRange) && (o2::aod::track::tpcChi2NCl <= cfgMaxChi2TPC) && (o2::aod::track::itsChi2NCl <= cfgMaxChi2ITS);
77-
o2::framework::expressions::Filter trackDirectFilter = (o2::aod::track::pt >= cfgMinPt) && (nabs(o2::aod::track::eta) <= cfgEtaRange) && (o2::aod::track::tpcChi2NCl <= cfgMaxChi2TPC) && (o2::aod::track::itsChi2NCl <= cfgMaxChi2ITS);
78-
7976
void init(InitContext& context)
8077
{
8178
bool isSkimmedEnabled = context.mOptions.get<bool>("processGlobalTracksSkimmed");
@@ -110,6 +107,14 @@ struct GlobalTrackEstimator {
110107
VarManager::FillTrackCollision<fillMap>(track, event);
111108
}
112109

110+
if (track.pt() < cfgMinPt || abs(track.eta()) > cfgEtaRange) {
111+
return false;
112+
}
113+
114+
if (track.tpcChi2NCl() > cfgMaxChi2TPC || track.itsChi2NCl() > cfgMaxChi2ITS) {
115+
return false;
116+
}
117+
113118
const int nFindable = track.tpcNClsFindable();
114119
const int nCrossedRows = track.tpcNClsCrossedRows();
115120

@@ -142,7 +147,7 @@ struct GlobalTrackEstimator {
142147
return true;
143148
}
144149

145-
void processGlobalTracksSkimmed(MyEventsBasic const& events, o2::aod::ReducedTracksAssoc const& assocs, o2::soa::Filtered<MyBarrelTracks> const& tracks)
150+
void processGlobalTracksSkimmed(MyEventsBasic const& events, o2::aod::ReducedTracksAssoc const& assocs, MyBarrelTracks const& tracks)
146151
{
147152
std::unordered_set<int64_t> selectedTrackIds;
148153
selectedTrackIds.reserve(tracks.size());
@@ -164,7 +169,7 @@ struct GlobalTrackEstimator {
164169
continue;
165170
}
166171

167-
auto track = assoc.template reducedtrack_as<o2::soa::Filtered<MyBarrelTracks>>();
172+
auto track = assoc.template reducedtrack_as<MyBarrelTracks>();
168173

169174
if (!isTrackSelected<GkTrackFillMap>(track, event)) {
170175
continue;
@@ -179,7 +184,7 @@ struct GlobalTrackEstimator {
179184

180185
PROCESS_SWITCH(GlobalTrackEstimator, processGlobalTracksSkimmed, "Count global tracks from skimmed data model", false);
181186

182-
void processGlobalTracksDirect(MyEventsDirect const& events, TrackAssoc const& assocs, o2::soa::Filtered<MyTracksDirect> const& tracks)
187+
void processGlobalTracksDirect(MyEventsDirect const& events, TrackAssoc const& assocs, MyTracksDirect const& tracks)
183188
{
184189
std::unordered_set<int64_t> selectedTrackIds;
185190
selectedTrackIds.reserve(tracks.size());
@@ -201,7 +206,7 @@ struct GlobalTrackEstimator {
201206
continue;
202207
}
203208

204-
auto track = assoc.template track_as<o2::soa::Filtered<MyTracksDirect>>();
209+
auto track = assoc.template track_as<MyTracksDirect>();
205210

206211
if (!isTrackSelected<GkTrackDirectFillMap>(track, event)) {
207212
continue;

‎PWGDQ/Tasks/tableReader_withAssoc_direct.cxx‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,10 @@ DECLARE_SOA_TABLE(BmesonCandidates, "AOD", "DQBMESONS",
224224

225225
// Using definitions (data-only)
226226
using MyEvents = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::MultsExtra>;
227+
using MyEventsGlobalMult = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::MultsExtra, aod::ReducedEventsGlobalTrk>;
227228
using MyEventsQvectorCentr = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::MultsExtra, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms, aod::QvectorFT0Cs, aod::QvectorFT0As, aod::QvectorFT0Ms, aod::QvectorFV0As, aod::QvectorTPCposs, aod::QvectorTPCnegs, aod::QvectorTPCalls>;
228229
using MyEventsSelected = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::MultsExtra, aod::EventCuts>;
230+
using MyEventsGlobalMultSelected = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::MultsExtra, aod::ReducedEventsGlobalTrk, aod::EventCuts>;
229231
using MyEventsQvectorCentrSelected = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::MultsExtra, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms, aod::QvectorFT0Cs, aod::QvectorFT0As, aod::QvectorFT0Ms, aod::QvectorFV0As, aod::QvectorTPCposs, aod::QvectorTPCnegs, aod::QvectorTPCalls, aod::EventCuts>;
230232
using MyEventsHashSelected = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::MultsExtra, aod::EventCuts, aod::MixingHashes>;
231233
using MyEventsHashSelectedQvectorCentr = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::MultsExtra, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms, aod::QvectorFT0Cs, aod::QvectorFT0As, aod::QvectorFT0Ms, aod::QvectorFV0As, aod::QvectorTPCposs, aod::QvectorTPCnegs, aod::QvectorTPCalls, aod::EventCuts, aod::MixingHashes>;
@@ -249,6 +251,7 @@ using MyDielectronCandidates = soa::Join<aod::Dielectrons, aod::DielectronsExtra
249251

250252
// bit maps used for the Fill functions of the VarManager
251253
constexpr static uint32_t gkEventFillMapWithMults = VarManager::ObjTypes::BC | VarManager::ObjTypes::Collision | VarManager::ObjTypes::CollisionMult | VarManager::ObjTypes::CollisionMultExtra;
254+
constexpr static uint32_t gkEventFillMapWithGlobalMults = VarManager::ObjTypes::BC | VarManager::ObjTypes::Collision | VarManager::ObjTypes::CollisionMult | VarManager::ReducedEventGlobalMult;
252255
constexpr static uint32_t gkEventFillMapWithQvectorCentr = VarManager::ObjTypes::BC | VarManager::ObjTypes::Collision | VarManager::ObjTypes::CollisionCent | VarManager::CollisionMult | VarManager::ObjTypes::CollisionMultExtra | VarManager::ObjTypes::CollisionQvectCentr;
253256
constexpr static uint32_t gkTrackFillMapWithCov = VarManager::ObjTypes::Track | VarManager::ObjTypes::TrackExtra | VarManager::ObjTypes::TrackDCA | VarManager::ObjTypes::TrackCov | VarManager::ObjTypes::TrackPID;
254257
constexpr static uint32_t gkTrackFillMapWithCovPIDExtra = VarManager::ObjTypes::Track | VarManager::ObjTypes::TrackExtra | VarManager::ObjTypes::TrackDCA | VarManager::ObjTypes::TrackCov | VarManager::ObjTypes::TrackPID | VarManager::ObjTypes::TrackPIDExtra;
@@ -631,6 +634,12 @@ struct AnalysisEventSelection {
631634
publishSelections<gkEventFillMapWithMults>(events);
632635
}
633636

637+
void processDirectGlobalMult(MyEventsGlobalMult const& events, BCsWithTimestamps const& bcs)
638+
{
639+
runEventSelection<gkEventFillMapWithGlobalMults>(events, bcs);
640+
publishSelections<gkEventFillMapWithGlobalMults>(events);
641+
}
642+
634643
void processDirectWithQvectorCentr(MyEventsQvectorCentr const& events, BCsWithTimestamps const& bcs)
635644
{
636645
runEventSelection<gkEventFillMapWithQvectorCentr>(events, bcs);
@@ -640,6 +649,7 @@ struct AnalysisEventSelection {
640649
void processDummy(aod::Collisions&) {}
641650

642651
PROCESS_SWITCH(AnalysisEventSelection, processDirect, "Run event selection on framework AO2Ds", false);
652+
PROCESS_SWITCH(AnalysisEventSelection, processDirectGlobalMult, "Run event selection with global track estimation on framework AO2Ds", false);
643653
PROCESS_SWITCH(AnalysisEventSelection, processDirectWithQvectorCentr, "Run event selection on skimmed data with Q-vector and centrality", false);
644654
PROCESS_SWITCH(AnalysisEventSelection, processDummy, "Dummy function", true);
645655
};
@@ -2004,6 +2014,13 @@ struct AnalysisSameEventPairing {
20042014
runSameEventPairing<true, VarManager::kDecayToEE, gkEventFillMapWithMults, gkTrackFillMapWithCov>(events, bcs, trackAssocsPerCollision, barrelAssocs, barrelTracks);
20052015
}
20062016

2017+
void processBarrelOnlyWithGlobalMults(MyEventsGlobalMultSelected const& events, BCsWithTimestamps const& bcs,
2018+
soa::Join<aod::TrackAssoc, aod::BarrelTrackCuts, aod::Prefilter> const& barrelAssocs,
2019+
MyBarrelTracksWithCovWithAmbiguities const& barrelTracks)
2020+
{
2021+
runSameEventPairing<true, VarManager::kDecayToEE, gkEventFillMapWithGlobalMults, gkTrackFillMapWithCov>(events, bcs, trackAssocsPerCollision, barrelAssocs, barrelTracks);
2022+
}
2023+
20072024
void processElectronMuonDirect(
20082025
MyEventsSelected const& events, BCsWithTimestamps const& bcs,
20092026
soa::Join<aod::TrackAssoc, aod::BarrelTrackCuts, aod::Prefilter> const& barrelAssocs,
@@ -2028,6 +2045,7 @@ struct AnalysisSameEventPairing {
20282045
void processDummy(MyEvents&) { /* do nothing */ }
20292046

20302047
PROCESS_SWITCH(AnalysisSameEventPairing, processBarrelOnly, "Run barrel only pairing", false);
2048+
PROCESS_SWITCH(AnalysisSameEventPairing, processBarrelOnlyWithGlobalMults, "Run barrel only pairing with global track estimation", false);
20312049
PROCESS_SWITCH(AnalysisSameEventPairing, processElectronMuonDirect, "Run electron-muon pairing on AO2D tracks/fwd-tracks", false);
20322050
PROCESS_SWITCH(AnalysisSameEventPairing, processBarrelOnlyWithQvectorCentr, "Run barrel only pairing with Q-vector and centrality", false);
20332051
PROCESS_SWITCH(AnalysisSameEventPairing, processDummy, "Dummy function", true);

0 commit comments

Comments
 (0)