Skip to content

Commit 2e1908a

Browse files
fgrosaalibuild
andauthored
[PWGHF] Refactory of charm reso derived data creator to improve compilation time (#14027)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 9f4e0b5 commit 2e1908a

9 files changed

+3765
-2842
lines changed

PWGHF/D2H/Core/DataCreationCharmReso.h

Lines changed: 1673 additions & 0 deletions
Large diffs are not rendered by default.

PWGHF/D2H/TableProducer/CMakeLists.txt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,18 @@ o2physics_add_dpl_workflow(data-creator-charm-had-pi-reduced
7070
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2::DCAFitter O2Physics::EventFilteringUtils
7171
COMPONENT_NAME Analysis)
7272

73-
o2physics_add_dpl_workflow(data-creator-charm-reso-reduced
74-
SOURCES dataCreatorCharmResoReduced.cxx
73+
o2physics_add_dpl_workflow(data-creator-charm-reso-to-dstar-reduced
74+
SOURCES dataCreatorCharmResoToDstarReduced.cxx
75+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::EventFilteringUtils
76+
COMPONENT_NAME Analysis)
77+
78+
o2physics_add_dpl_workflow(data-creator-charm-reso-to-dplus-reduced
79+
SOURCES dataCreatorCharmResoToDplusReduced.cxx
80+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::EventFilteringUtils
81+
COMPONENT_NAME Analysis)
82+
83+
o2physics_add_dpl_workflow(data-creator-charm-reso-to-d0-reduced
84+
SOURCES dataCreatorCharmResoToD0Reduced.cxx
7585
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::EventFilteringUtils
7686
COMPONENT_NAME Analysis)
7787

PWGHF/D2H/TableProducer/dataCreatorCharmHadPiReduced.cxx

Lines changed: 41 additions & 92 deletions
Large diffs are not rendered by default.

PWGHF/D2H/TableProducer/dataCreatorCharmResoReduced.cxx

Lines changed: 0 additions & 2723 deletions
This file was deleted.

PWGHF/D2H/TableProducer/dataCreatorCharmResoToD0Reduced.cxx

Lines changed: 673 additions & 0 deletions
Large diffs are not rendered by default.

PWGHF/D2H/TableProducer/dataCreatorCharmResoToDplusReduced.cxx

Lines changed: 671 additions & 0 deletions
Large diffs are not rendered by default.

PWGHF/D2H/TableProducer/dataCreatorCharmResoToDstarReduced.cxx

Lines changed: 673 additions & 0 deletions
Large diffs are not rendered by default.

PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -252,26 +252,26 @@ struct HfDataCreatorJpsiHadReduced {
252252
}
253253

254254
// Set up the histogram registry
255-
constexpr int kNBinsSelections = 2 + aod::SelectionStep::RecoPID;
256-
std::string labels[kNBinsSelections];
255+
constexpr int NumBinsSelections = 2 + aod::SelectionStep::RecoPID;
256+
std::string labels[NumBinsSelections];
257257
labels[0] = "No selection";
258258
labels[1 + aod::SelectionStep::RecoSkims] = "Skims selection";
259259
labels[1 + aod::SelectionStep::RecoTopol] = "Skims & Topological selections";
260260
labels[1 + aod::SelectionStep::RecoPID] = "Skims & Topological & PID selections";
261-
static const AxisSpec axisSelections = {kNBinsSelections, 0.5, kNBinsSelections + 0.5, ""};
261+
static const AxisSpec axisSelections = {NumBinsSelections, 0.5, NumBinsSelections + 0.5, ""};
262262
registry.add("hSelectionsJpsi", "J/Psi selection;;#it{p}_{T} (GeV/#it{c})", {HistType::kTH2F, {axisSelections, {(std::vector<double>)binsPt, "#it{p}_{T} (GeV/#it{c})"}}});
263-
for (int iBin = 0; iBin < kNBinsSelections; ++iBin) {
263+
for (int iBin = 0; iBin < NumBinsSelections; ++iBin) {
264264
registry.get<TH2>(HIST("hSelectionsJpsi"))->GetXaxis()->SetBinLabel(iBin + 1, labels[iBin].data());
265265
}
266266

267-
constexpr int kNBinsEvents = NEvent;
268-
std::string labelsEvents[kNBinsEvents];
267+
constexpr int NumBinsEvents = NEvent;
268+
std::string labelsEvents[NumBinsEvents];
269269
labelsEvents[Event::Processed] = "processed";
270270
labelsEvents[Event::NoCharmHadPiSelected] = "without CharmHad-Pi pairs";
271271
labelsEvents[Event::CharmHadPiSelected] = "with CharmHad-Pi pairs";
272-
static const AxisSpec axisEvents = {kNBinsEvents, 0.5, kNBinsEvents + 0.5, ""};
272+
static const AxisSpec axisEvents = {NumBinsEvents, 0.5, NumBinsEvents + 0.5, ""};
273273
registry.add("hEvents", "Events;;entries", HistType::kTH1F, {axisEvents});
274-
for (int iBin = 0; iBin < kNBinsEvents; iBin++) {
274+
for (int iBin = 0; iBin < NumBinsEvents; iBin++) {
275275
registry.get<TH1>(HIST("hEvents"))->GetXaxis()->SetBinLabel(iBin + 1, labelsEvents[iBin].data());
276276
}
277277

@@ -725,12 +725,16 @@ struct HfDataCreatorJpsiHadReduced {
725725
TTracks const&,
726726
PParticles const& particlesMc,
727727
uint64_t const& indexCollisionMaxNumContrib,
728-
BBCs const&)
728+
BBCs const&,
729+
int& zvtxColl,
730+
int& sel8Coll,
731+
int& zvtxAndSel8Coll,
732+
int& zvtxAndSel8CollAndSoftTrig,
733+
int& allSelColl)
729734
{
730735

731736
registry.fill(HIST("hEvents"), 1 + Event::Processed);
732-
float centrality = -1.f;
733-
const auto hfRejMap = hfEvSel.getHfCollisionRejectionMask<true, o2::hf_centrality::CentralityEstimator::None, aod::BCsWithTimestamps>(collision, centrality, ccdb, registry);
737+
const auto hfRejMap = o2::hf_evsel::getEvSel<true, o2::hf_centrality::CentralityEstimator::None, BBCs>(collision, hfEvSel, zvtxColl, sel8Coll, zvtxAndSel8Coll, zvtxAndSel8CollAndSoftTrig, allSelColl, ccdb, registry);
734738
if (skipRejectedCollisions && hfRejMap != 0) {
735739
return;
736740
}
@@ -1125,12 +1129,10 @@ struct HfDataCreatorJpsiHadReduced {
11251129
int zvtxAndSel8CollAndSoftTrig{0};
11261130
int allSelColl{0};
11271131
for (const auto& collision : collisions) {
1128-
o2::hf_evsel::checkEvSel<true, o2::hf_centrality::CentralityEstimator::None, aod::BCsWithTimestamps>(collision, hfEvSel, zvtxColl, sel8Coll, zvtxAndSel8Coll, zvtxAndSel8CollAndSoftTrig, allSelColl, ccdb, registry);
1129-
11301132
auto thisCollId = collision.globalIndex();
11311133
auto candsJpsiThisColl = candsJpsi.sliceBy(candsJpsiPerCollision, thisCollId);
11321134
auto trackIdsThisCollision = trackIndices.sliceBy(trackIndicesPerCollision, thisCollId);
1133-
runDataCreation<false, DecayChannel::BplusToJpsiK>(collision, candsJpsiThisColl, trackIdsThisCollision, tracks, tracks, -1, bcs);
1135+
runDataCreation<false, DecayChannel::BplusToJpsiK>(collision, candsJpsiThisColl, trackIdsThisCollision, tracks, tracks, -1, bcs, zvtxColl, sel8Coll, zvtxAndSel8Coll, zvtxAndSel8CollAndSoftTrig, allSelColl);
11341136
}
11351137
// handle normalization by the right number of collisions
11361138
hfCollisionCounter(collisions.tableSize(), zvtxColl, sel8Coll, zvtxAndSel8Coll, zvtxAndSel8CollAndSoftTrig, allSelColl);
@@ -1155,12 +1157,10 @@ struct HfDataCreatorJpsiHadReduced {
11551157
int zvtxAndSel8CollAndSoftTrig{0};
11561158
int allSelColl{0};
11571159
for (const auto& collision : collisions) {
1158-
o2::hf_evsel::checkEvSel<true, o2::hf_centrality::CentralityEstimator::None, aod::BCsWithTimestamps>(collision, hfEvSel, zvtxColl, sel8Coll, zvtxAndSel8Coll, zvtxAndSel8CollAndSoftTrig, allSelColl, ccdb, registry);
1159-
11601160
auto thisCollId = collision.globalIndex();
11611161
auto candsJpsiThisColl = candsJpsi.sliceBy(candsJpsiPerCollision, thisCollId);
11621162
auto trackIdsThisCollision = trackIndices.sliceBy(trackIndicesPerCollision, thisCollId);
1163-
runDataCreation<false, DecayChannel::BsToJpsiPhi>(collision, candsJpsiThisColl, trackIdsThisCollision, tracks, tracks, -1, bcs);
1163+
runDataCreation<false, DecayChannel::BsToJpsiPhi>(collision, candsJpsiThisColl, trackIdsThisCollision, tracks, tracks, -1, bcs, zvtxColl, sel8Coll, zvtxAndSel8Coll, zvtxAndSel8CollAndSoftTrig, allSelColl);
11641164
}
11651165
// handle normalization by the right number of collisions
11661166
hfCollisionCounter(collisions.tableSize(), zvtxColl, sel8Coll, zvtxAndSel8Coll, zvtxAndSel8CollAndSoftTrig, allSelColl);
@@ -1187,14 +1187,12 @@ struct HfDataCreatorJpsiHadReduced {
11871187
int zvtxAndSel8CollAndSoftTrig{0};
11881188
int allSelColl{0};
11891189
for (const auto& collision : collisions) {
1190-
o2::hf_evsel::checkEvSel<true, o2::hf_centrality::CentralityEstimator::None, aod::BCsWithTimestamps>(collision, hfEvSel, zvtxColl, sel8Coll, zvtxAndSel8Coll, zvtxAndSel8CollAndSoftTrig, allSelColl, ccdb, registry);
1191-
11921190
auto thisCollId = collision.globalIndex();
11931191
auto candsJpsiThisColl = candsJpsi.sliceBy(candsJpsiPerCollision, thisCollId);
11941192
auto trackIdsThisCollision = trackIndices.sliceBy(trackIndicesPerCollision, thisCollId);
11951193
auto collsSameMcCollision = collisions.sliceBy(colPerMcCollision, collision.mcCollisionId());
11961194
int64_t const indexCollisionMaxNumContrib = getIndexCollisionMaxNumContrib(collsSameMcCollision);
1197-
runDataCreation<true, DecayChannel::BplusToJpsiK>(collision, candsJpsiThisColl, trackIdsThisCollision, tracks, particlesMc, indexCollisionMaxNumContrib, bcs);
1195+
runDataCreation<true, DecayChannel::BplusToJpsiK>(collision, candsJpsiThisColl, trackIdsThisCollision, tracks, particlesMc, indexCollisionMaxNumContrib, bcs, zvtxColl, sel8Coll, zvtxAndSel8Coll, zvtxAndSel8CollAndSoftTrig, allSelColl);
11981196
}
11991197
// handle normalization by the right number of collisions
12001198
hfCollisionCounter(collisions.tableSize(), zvtxColl, sel8Coll, zvtxAndSel8Coll, zvtxAndSel8CollAndSoftTrig, allSelColl);
@@ -1224,14 +1222,12 @@ struct HfDataCreatorJpsiHadReduced {
12241222
int zvtxAndSel8CollAndSoftTrig{0};
12251223
int allSelColl{0};
12261224
for (const auto& collision : collisions) {
1227-
o2::hf_evsel::checkEvSel<true, o2::hf_centrality::CentralityEstimator::None, aod::BCsWithTimestamps>(collision, hfEvSel, zvtxColl, sel8Coll, zvtxAndSel8Coll, zvtxAndSel8CollAndSoftTrig, allSelColl, ccdb, registry);
1228-
12291225
auto thisCollId = collision.globalIndex();
12301226
auto candsJpsiThisColl = candsJpsi.sliceBy(candsJpsiPerCollision, thisCollId);
12311227
auto trackIdsThisCollision = trackIndices.sliceBy(trackIndicesPerCollision, thisCollId);
12321228
auto collsSameMcCollision = collisions.sliceBy(colPerMcCollision, collision.mcCollisionId());
12331229
int64_t const indexCollisionMaxNumContrib = getIndexCollisionMaxNumContrib(collsSameMcCollision);
1234-
runDataCreation<true, DecayChannel::BsToJpsiPhi>(collision, candsJpsiThisColl, trackIdsThisCollision, tracks, particlesMc, indexCollisionMaxNumContrib, bcs);
1230+
runDataCreation<true, DecayChannel::BsToJpsiPhi>(collision, candsJpsiThisColl, trackIdsThisCollision, tracks, particlesMc, indexCollisionMaxNumContrib, bcs, zvtxColl, sel8Coll, zvtxAndSel8Coll, zvtxAndSel8CollAndSoftTrig, allSelColl);
12351231
}
12361232
// handle normalization by the right number of collisions
12371233
hfCollisionCounter(collisions.tableSize(), zvtxColl, sel8Coll, zvtxAndSel8Coll, zvtxAndSel8CollAndSoftTrig, allSelColl);

PWGHF/D2H/Utils/utilsRedDataFormat.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ namespace o2::hf_evsel
3434
/// \tparam centEstimator centrality estimator
3535
/// \param collision collision to test against the selection criteria
3636
template <bool UseEvSel, o2::hf_centrality::CentralityEstimator CentEstimator, typename BCs, typename Coll>
37-
void checkEvSel(Coll const& collision, o2::hf_evsel::HfEventSelection& hfEvSel, int& zvtxColl, int& sel8Coll, int& zvtxAndSel8Coll, int& zvtxAndSel8CollAndSoftTrig, int& allSelColl, o2::framework::Service<o2::ccdb::BasicCCDBManager> const& ccdb, o2::framework::HistogramRegistry& registry)
37+
o2::hf_evsel::HfCollisionRejectionMask getEvSel(Coll const& collision, o2::hf_evsel::HfEventSelection& hfEvSel, int& zvtxColl, int& sel8Coll, int& zvtxAndSel8Coll, int& zvtxAndSel8CollAndSoftTrig, int& allSelColl, o2::framework::Service<o2::ccdb::BasicCCDBManager> const& ccdb, o2::framework::HistogramRegistry& registry)
3838
{
3939
float centrality{-1.f};
40-
const auto rejectionMask = hfEvSel.getHfCollisionRejectionMask<UseEvSel, o2::hf_centrality::CentralityEstimator::None, BCs>(collision, centrality, ccdb, registry);
40+
const o2::hf_evsel::HfCollisionRejectionMask rejectionMask = hfEvSel.getHfCollisionRejectionMask<UseEvSel, o2::hf_centrality::CentralityEstimator::None, BCs>(collision, centrality, ccdb, registry);
4141
if (!TESTBIT(rejectionMask, o2::hf_evsel::EventRejection::Trigger)) {
4242
sel8Coll++;
4343
}
@@ -53,6 +53,7 @@ void checkEvSel(Coll const& collision, o2::hf_evsel::HfEventSelection& hfEvSel,
5353
if (rejectionMask == 0) {
5454
allSelColl++;
5555
}
56+
return rejectionMask;
5657
}
5758
} // namespace o2::hf_evsel
5859

0 commit comments

Comments
 (0)