Skip to content

Commit 5a362c8

Browse files
committed
Add FT0M to multiplicity correlations
1 parent 9d53405 commit 5a362c8

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

PWGCF/DataModel/CorrelationsDerived.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,12 @@ enum MultiplicityEstimators : uint8_t {
9494
CentFT0C = 0x1,
9595
MultFV0A = 0x2,
9696
MultNTracksPV = 0x4,
97-
MultNTracksGlobal = 0x8
97+
MultNTracksGlobal = 0x8,
98+
CentFT0M = 0x10,
9899
};
99100

101+
inline constexpr uint32_t NMultiplicityEstimators = __builtin_ctz(CentFT0M) + 1;
102+
100103
} // namespace cfmultset
101104
DECLARE_SOA_TABLE(CFMultSets, "AOD", "CFMULTSET", cfmultset::Multiplicities); //! Auxilary multiplicity set table
102105

PWGCF/TableProducer/filterCorrelations.cxx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,8 @@ struct FilterCF {
272272
multiplicities.push_back(collision.multNTracksPV());
273273
if (cfgEstimatorBitMask & aod::cfmultset::MultNTracksGlobal)
274274
multiplicities.push_back(collision.multNTracksGlobal());
275+
if (cfgEstimatorBitMask & aod::cfmultset::CentFT0M)
276+
multiplicities.push_back(collision.centFT0M());
275277
outputMultSets(multiplicities);
276278
}
277279

@@ -303,7 +305,7 @@ struct FilterCF {
303305
}
304306
PROCESS_SWITCH(FilterCF, processDataPid, "Process data with PID", false);
305307

306-
void processDataMults(soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::CFMultiplicities, aod::CentFT0Cs, aod::PVMults, aod::FV0Mults, aod::MultsGlobal>>::iterator const& collision, aod::BCsWithTimestamps const&, soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection, aod::TracksDCA>> const& tracks)
308+
void processDataMults(soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::CFMultiplicities, aod::CentFT0Ms, aod::CentFT0Cs, aod::PVMults, aod::FV0Mults, aod::MultsGlobal>>::iterator const& collision, aod::BCsWithTimestamps const&, soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection, aod::TracksDCA>> const& tracks)
307309
{
308310
processDataT(collision, tracks);
309311
}
@@ -418,6 +420,8 @@ struct FilterCF {
418420
multiplicities.push_back(collision.multNTracksPV());
419421
if (cfgEstimatorBitMask & aod::cfmultset::MultNTracksGlobal)
420422
multiplicities.push_back(collision.multNTracksGlobal());
423+
if (cfgEstimatorBitMask & aod::cfmultset::CentFT0M)
424+
multiplicities.push_back(collision.centFT0M());
421425
outputMultSets(multiplicities);
422426
}
423427

PWGCF/Tasks/correlations.cxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ struct CorrelationTask {
8989
O2_DEFINE_CONFIGURABLE(cfgCentBinsForMC, int, 0, "0 = OFF and 1 = ON for data like multiplicity/centrality bins for MC steps");
9090
O2_DEFINE_CONFIGURABLE(cfgTrackBitMask, uint16_t, 0, "BitMask for track selection systematics; refer to the enum TrackSelectionCuts in filtering task");
9191
O2_DEFINE_CONFIGURABLE(cfgMultCorrelationsMask, uint16_t, 0, "Selection bitmask for the multiplicity correlations. This should match the filter selection cfgEstimatorBitMask.")
92-
O2_DEFINE_CONFIGURABLE(cfgMultCutFormula, std::string, "", "Multiplicity correlations cut formula. A result greater than zero results in accepted event. Parameters: [cFT0C] FT0C centrality, [mFV0A] V0A multiplicity, [mGlob] global track multiplicity, [mPV] PV track multiplicity")
92+
O2_DEFINE_CONFIGURABLE(cfgMultCutFormula, std::string, "", "Multiplicity correlations cut formula. A result greater than zero results in accepted event. Parameters: [cFT0C] FT0C centrality, [mFV0A] V0A multiplicity, [mGlob] global track multiplicity, [mPV] PV track multiplicity, [cFT0M] FT0M centrality")
9393

9494
// Suggested values: Photon: 0.004; K0 and Lambda: 0.005
9595
Configurable<LabeledArray<float>> cfgPairCut{"cfgPairCut", {kCfgPairCutDefaults[0], 5, {"Photon", "K0", "Lambda", "Phi", "Rho"}}, "Pair cuts on various particles"};
@@ -147,7 +147,7 @@ struct CorrelationTask {
147147
std::vector<int> p2indexCache;
148148

149149
std::unique_ptr<TFormula> multCutFormula;
150-
std::array<uint, 4> multCutFormulaParamIndex;
150+
std::array<uint, aod::cfmultset::NMultiplicityEstimators> multCutFormulaParamIndex;
151151

152152
struct Config {
153153
bool mPairCuts = false;
@@ -229,7 +229,7 @@ struct CorrelationTask {
229229
if (!cfgMultCutFormula.value.empty()) {
230230
multCutFormula = std::make_unique<TFormula>("multCutFormula", cfgMultCutFormula.value.c_str());
231231
std::fill_n(multCutFormulaParamIndex.begin(), std::size(multCutFormulaParamIndex), ~0u);
232-
std::array<std::string, 4> pars = {"cFT0C", "mFV0A", "mPV", "mGlob"}; // must correspond the order of MultiplicityEstimators
232+
std::array<std::string, aod::cfmultset::NMultiplicityEstimators> pars = {"cFT0C", "mFV0A", "mPV", "mGlob", "cFT0M"}; // must correspond the order of MultiplicityEstimators
233233
for (uint i = 0, n = multCutFormula->GetNpar(); i < n; ++i) {
234234
auto m = std::find(pars.begin(), pars.end(), multCutFormula->GetParName(i));
235235
if (m == pars.end()) {
@@ -462,7 +462,7 @@ struct CorrelationTask {
462462
{
463463
if (cfgMultCutFormula.value.empty())
464464
return true;
465-
for (uint i = 0; i < 4; ++i) {
465+
for (uint i = 0; i < aod::cfmultset::NMultiplicityEstimators; ++i) {
466466
if ((cfgMultCorrelationsMask.value & (1u << i)) == 0 || multCutFormulaParamIndex[i] == ~0u)
467467
continue;
468468
auto estIndex = std::popcount(cfgMultCorrelationsMask.value & ((1u << i) - 1));

0 commit comments

Comments
 (0)