Skip to content

Commit c6929ad

Browse files
authored
Update HadNucleiFemto.cxx
1 parent 5efe761 commit c6929ad

1 file changed

Lines changed: 18 additions & 5 deletions

File tree

‎PWGCF/Femto/FemtoNuclei/TableProducer/HadNucleiFemto.cxx‎

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ using CollBracket = o2::math_utils::Bracket<int>;
8484
using HyperCandidates = aod::DataHypCandsWColl;
8585
using HyperCandidatesMC = aod::MCHypCandsWColl;
8686
using CollisionsFull = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs, aod::FT0Mults>;
87+
// The standard Femto producer stores multNTracksPV as its collision
88+
// multiplicity. Subscribe to PVMults only in the mixed-event process so the
89+
// same vertex--multiplicity pool definition can optionally be reproduced.
90+
using CollisionsFullWithPVMult = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs, aod::FT0Mults, aod::PVMults>;
8791
using CollisionsFullMC = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels, aod::CentFT0Cs, aod::FT0Mults>;
8892
using HadHyperCollisionsFull = soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0As, aod::CentFT0Cs, aod::CentFT0Ms, aod::FT0Mults>;
8993
using HadHyperCollisionsFullMC = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels, aod::CentFT0As, aod::CentFT0Cs, aod::CentFT0Ms, aod::FT0Mults>;
@@ -333,6 +337,7 @@ struct HadNucleiFemto {
333337
// Event selection and mixing configuration
334338
Configurable<float> settingCutVertex{"settingCutVertex", 10.0f, "Accepted z-vertex range"};
335339
Configurable<int> settingNoMixedEvents{"settingNoMixedEvents", 5, "Number of mixed events per event"};
340+
Configurable<bool> settingUseMultiplicityBinning{"settingUseMultiplicityBinning", false, "Use vertex and multNTracksPV for event mixing instead of vertex and centrality"};
336341
Configurable<bool> settingRequireBothSpeciesForMixing{"settingRequireBothSpeciesForMixing", false, "Use only events containing at least one selected nucleus and one selected hadron for mixed-event pairing"};
337342
Configurable<bool> settingEnableBkgUS{"settingEnableBkgUS", false, "Enable US background"};
338343
Configurable<bool> settingSaveUSandLS{"settingSaveUSandLS", true, "Save All Pairs"};
@@ -627,7 +632,9 @@ struct HadNucleiFemto {
627632
// binning for EM background
628633
ConfigurableAxis axisVertex{"axisVertex", {30, -10, 10}, "Binning for vtxz"};
629634
ConfigurableAxis axisCentrality{"axisCentrality", {40, 0, 100}, "Binning for centrality"};
630-
using BinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0C>;
635+
ConfigurableAxis axisMultiplicity{"axisMultiplicity", {VARIABLE_WIDTH, 0., 4., 8., 12., 16., 20., 24., 28., 32., 36., 40., 44., 48., 52., 56., 60., 64., 68., 72., 76., 80., 84., 88., 92., 96., 100., 200.}, "Variable-width multNTracksPV bins for event mixing"};
636+
using CentralityBinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::cent::CentFT0C>;
637+
using MultiplicityBinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::mult::MultNTracksPV>;
631638

632639
std::array<float, 6> mBBparamsNucleus{};
633640
float mMassHad{0.f};
@@ -3084,7 +3091,7 @@ struct HadNucleiFemto {
30843091
std::unordered_map<int, std::deque<HadHyperEvent>>& mixingPools,
30853092
int& mixingRunNumber)
30863093
{
3087-
const BinningType configuredBinningPolicy{{axisVertex, axisCentrality}, true};
3094+
const CentralityBinningType configuredBinningPolicy{{axisVertex, axisCentrality}, true};
30883095
for (const auto& collision : collisions) {
30893096
if (!selectCollision<isMC>(collision, bcs)) {
30903097
continue;
@@ -3236,10 +3243,11 @@ struct HadNucleiFemto {
32363243
}
32373244
PROCESS_SWITCH(HadNucleiFemto, processSameEvent, "Process Same event", false);
32383245

3239-
void processMixedEvent(const CollisionsFull& collisions, const TrackCandidates& tracks, const aod::BCsWithTimestamps&)
3246+
void processMixedEvent(const CollisionsFullWithPVMult& collisions, const TrackCandidates& tracks, const aod::BCsWithTimestamps&)
32403247
{
32413248
LOG(debug) << "Processing mixed event";
3242-
const BinningType configuredBinningPolicy{{axisVertex, axisCentrality}, true};
3249+
const CentralityBinningType centralityBinningPolicy{{axisVertex, axisCentrality}, true};
3250+
const MultiplicityBinningType multiplicityBinningPolicy{{axisVertex, axisMultiplicity}, true};
32433251

32443252
for (const auto& collision : collisions) {
32453253
mQaRegistry.fill(HIST("hMixedEventSelections"), 0);
@@ -3285,7 +3293,12 @@ struct HadNucleiFemto {
32853293
continue;
32863294
}
32873295

3288-
const int poolBin = configuredBinningPolicy.getBin(std::make_tuple(collision.posZ(), collision.centFT0C()));
3296+
const int poolBin = eventMixing.settingUseMultiplicityBinning.value
3297+
? multiplicityBinningPolicy.getBin(std::make_tuple(collision.posZ(), collision.multNTracksPV()))
3298+
: centralityBinningPolicy.getBin(std::make_tuple(collision.posZ(), collision.centFT0C()));
3299+
if (poolBin < 0) {
3300+
continue;
3301+
}
32893302
auto& pool = mMixingPools[poolBin];
32903303
mQaRegistry.fill(HIST("hMixingPoolOccupancy"), pool.size());
32913304

0 commit comments

Comments
 (0)