Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
3743398
Study ass. tracks and triggers efficiencies
Nov 3, 2026
a76474d
Implementation of MC closure and efficiency reweighting
Nov 5, 2026
14be999
Implement CCDB histogram loading
Nov 5, 2026
ec76ec6
Please consider the following formatting changes
alibuild Nov 5, 2026
c7760fa
Merge pull request #93 from alibuild/alibot-cleanup-18610
Marcellocosti Nov 5, 2026
5cda95d
Fix megalinter
Nov 5, 2026
00b300f
Fetch formatting fixes
Nov 5, 2026
2eb2be6
Please consider the following formatting changes
alibuild Nov 5, 2026
bda3271
Merge pull request #94 from alibuild/alibot-cleanup-18610
Marcellocosti Nov 5, 2026
1ac68ca
Declare hfcFlowHelper
Nov 5, 2026
54ccaf6
Merge remote-tracking branch 'mdc/fix_correl' into fix_correl
Nov 5, 2026
94f2ada
Add missing namespace
Nov 5, 2026
b876710
Fix old enum
Nov 5, 2026
a30c9c1
Remove redundant curly braces
Nov 5, 2026
aea761f
Apply selections on generated collisions and tracks
Nov 6, 2026
3583ac8
Please consider the following formatting changes
alibuild Nov 6, 2026
e068ce6
Merge upstream
Nov 6, 2026
9edf4c2
Merge pull request #95 from alibuild/alibot-cleanup-18633
Marcellocosti Nov 6, 2026
843d692
Please consider the following formatting changes
alibuild Nov 6, 2026
88182b7
Merge pull request #96 from alibuild/alibot-cleanup-18633
Marcellocosti Nov 6, 2026
b95cf70
Fix code check
Nov 6, 2026
ac74f7f
Merge remote-tracking branch 'mdc/fix_correl' into fix_correl
Nov 6, 2026
40a1e8e
Please consider the following formatting changes
alibuild Nov 6, 2026
9f5d983
Merge pull request #97 from alibuild/alibot-cleanup-18633
Marcellocosti Nov 6, 2026
eb52e7a
Fix code-check
Nov 7, 2026
12b64c2
Merge remote-tracking branch 'mdc/fix_correl' into fix_correl
Nov 7, 2026
0acb6ef
Please consider the following formatting changes
alibuild Nov 7, 2026
f83f214
Merge pull request #98 from alibuild/alibot-cleanup-18633
Marcellocosti Nov 7, 2026
110c106
Remove redundant header
Nov 8, 2026
e9d4527
Merge remote-tracking branch 'mdc/fix_correl' into fix_correl
Nov 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 45 additions & 52 deletions PWGHF/HFC/TableProducer/derivedDataCreatorCorrelationsReduced.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@

#include "PWGHF/Core/CentralityEstimation.h"
#include "PWGHF/Core/DecayChannels.h"
#include "PWGHF/Core/HfHelper.h"
#include "PWGHF/DataModel/AliasTables.h"
#include "PWGHF/DataModel/CandidateReconstructionTables.h"
#include "PWGHF/DataModel/CandidateSelectionTables.h"
Expand All @@ -33,7 +32,6 @@

#include <CCDB/BasicCCDBManager.h>
#include <CommonConstants/MathConstants.h>
#include <CommonConstants/PhysicsConstants.h>
#include <Framework/ASoA.h>
#include <Framework/AnalysisDataModel.h>
#include <Framework/AnalysisHelpers.h>
Expand Down Expand Up @@ -157,7 +155,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
void init(InitContext&)
{

hfEvSel.addHistograms(registry); // collision monitoring
hfEvSel.init(registry);

ccdb->setURL(ccdbUrl);
ccdb->setCaching(true);
ccdb->setLocalObjectValidityChecking();
Expand All @@ -176,7 +175,7 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}

hfcFlowHelper.init(ccdb, registry, classesMl, yCandMax.value);
hfcFlowHelper.init(classesMl, yCandMax.value);

const AxisSpec axisTpcSignal = {binsTpcSignal, "TPC Signal"};
const AxisSpec axisCent = {binsCent, "Centrality"};
Expand Down Expand Up @@ -209,32 +208,6 @@ struct HfDerivedDataCreatorCorrelationsReduced {
}
}; // end init

/// Check event selections for collision and fill the collision table
/// \param collision is the collision
template <typename Coll>
bool checkCollision(Coll const& collision, float& cent, float& mult)
{
o2::hf_evsel::HfCollisionRejectionMask collRejMask{};
if (centEstimator == CentralityEstimator::FT0A) {
collRejMask = hfEvSel.getHfCollisionRejectionMask<true, CentralityEstimator::FT0A, aod::BCsWithTimestamps>(collision, cent, ccdb, registry);
mult = collision.multFT0A();
} else if (centEstimator == CentralityEstimator::FT0C) {
collRejMask = hfEvSel.getHfCollisionRejectionMask<true, CentralityEstimator::FT0C, aod::BCsWithTimestamps>(collision, cent, ccdb, registry);
mult = collision.multFT0C();
} else if (centEstimator == CentralityEstimator::FT0M) {
collRejMask = hfEvSel.getHfCollisionRejectionMask<true, CentralityEstimator::FT0M, aod::BCsWithTimestamps>(collision, cent, ccdb, registry);
mult = collision.multFT0M();
} else if (centEstimator == CentralityEstimator::FV0A) {
collRejMask = hfEvSel.getHfCollisionRejectionMask<true, CentralityEstimator::FV0A, aod::BCsWithTimestamps>(collision, cent, ccdb, registry);
mult = collision.multFV0A();
} else {
LOG(fatal) << "Centrality estimator not recognized for collision selection";
std::abort();
}
hfEvSel.fillHistograms(collision, collRejMask, cent);
return collRejMask == 0;
}

/// Checks if the trigger cand-associated track pair can be accepted for SE correlation
/// \param assTrk is the associated track
/// \param cand is the trigger candidate
Expand Down Expand Up @@ -404,7 +377,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -421,7 +395,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -441,7 +416,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -461,7 +437,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -482,7 +459,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -502,7 +480,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -523,7 +502,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -543,7 +523,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -564,7 +545,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -582,7 +564,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -602,7 +585,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -622,7 +606,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -643,7 +628,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -663,7 +649,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -684,7 +671,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -704,7 +692,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
return;
}
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -720,7 +709,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
TracksData const& tracks)
{
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -733,7 +723,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
TracksData const& tracks)
{
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -747,7 +738,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
TracksMc const& tracks)
{
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -760,7 +752,8 @@ struct HfDerivedDataCreatorCorrelationsReduced {
TracksMc const& tracks)
{
float cent{-1.}, mult{-1.};
if (!checkCollision(coll, cent, mult)) {
auto centDetector = static_cast<CentralityEstimator>(centEstimator.value);
if (!hfcFlowHelper.selectRecoCollision(hfEvSel, ccdb, registry, coll, centDetector, cent, mult)) {
return;
}
rowCollisions(mult, coll.numContrib(), cent, coll.posZ());
Expand All @@ -769,7 +762,7 @@ struct HfDerivedDataCreatorCorrelationsReduced {
PROCESS_SWITCH(HfDerivedDataCreatorCorrelationsReduced, processMcHadronHadronME, "Process Mixed Event for hadron candidates", false);
};

WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
WorkflowSpec defineDataProcessing(ConfigContext const& context)
{
return WorkflowSpec{adaptAnalysisTask<HfDerivedDataCreatorCorrelationsReduced>(cfgc)};
return WorkflowSpec{adaptAnalysisTask<HfDerivedDataCreatorCorrelationsReduced>(context)};
}
Loading
Loading