Skip to content

Commit 0bf9bea

Browse files
jikim1290alibuild
andauthored
[PWGCF] adding event mixing with 2prong pair (#9105)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 97b7701 commit 0bf9bea

File tree

1 file changed

+42
-2
lines changed

1 file changed

+42
-2
lines changed

PWGCF/Tasks/correlations.cxx

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
/// \file correlations.cxx
1313
/// \brief task for the correlation calculations with CF-filtered tracks for O2 analysis
1414
/// \author Jan Fiete Grosse-Oetringhaus <jan.fiete.grosse-oetringhaus@cern.ch>, Jasper Parkkila <jasper.parkkila@cern.ch>
15-
// o2-linter: disable=name/workflow-file
1615

1716
#include <experimental/type_traits>
1817
#include <vector>
@@ -481,7 +480,7 @@ struct CorrelationTask {
481480
float deltaPhi = RecoDecay::constrainAngle(track1.phi() - track2.phi(), -o2::constants::math::PIHalf);
482481

483482
// last param is the weight
484-
if (cfgMassAxis && doprocessSame2Prong2Prong) {
483+
if (cfgMassAxis && (doprocessSame2Prong2Prong) && !(doprocessSame2ProngDerived || doprocessMixed2ProngDerived)) {
485484
if constexpr (std::experimental::is_detected<HasInvMass, typename TTracks1::iterator>::value && std::experimental::is_detected<HasInvMass, typename TTracks2::iterator>::value)
486485
target->getPairHist()->Fill(step, track1.eta() - track2.eta(), track2.pt(), track1.pt(), multiplicity, deltaPhi, posZ, track2.invMass(), track1.invMass(), associatedWeight);
487486
else
@@ -764,6 +763,47 @@ struct CorrelationTask {
764763
}
765764
PROCESS_SWITCH(CorrelationTask, processMixed2ProngDerived, "Process mixed events on derived data", false);
766765

766+
void processMixed2Prong2Prong(DerivedCollisions const& collisions, soa::Filtered<aod::CF2ProngTracks> const& p2tracks)
767+
{
768+
BinningTypeDerived configurableBinningDerived{{axisVertex, axisMultiplicity}, true}; // true is for 'ignore overflows' (true by default). Underflows and overflows will have bin -1.
769+
// Strictly upper categorised collisions, for cfgNoMixedEvents combinations per bin, skipping those in entry -1
770+
auto tracksTuple = std::make_tuple(p2tracks);
771+
SameKindPair<DerivedCollisions, soa::Filtered<aod::CF2ProngTracks>, BinningTypeDerived> pairs{configurableBinningDerived, cfgNoMixedEvents, -1, collisions, tracksTuple, &cache}; // -1 is the number of the bin to skip
772+
773+
for (auto it = pairs.begin(); it != pairs.end(); it++) {
774+
auto& [collision1, tracks1, collision2, tracks2] = *it;
775+
int bin = configurableBinningDerived.getBin({collision1.posZ(), collision1.multiplicity()});
776+
float eventWeight = 1.0f / it.currentWindowNeighbours();
777+
int field = 0;
778+
if (cfgTwoTrackCut > 0) {
779+
field = getMagneticField(collision1.timestamp());
780+
}
781+
782+
if (cfgVerbosity > 0) {
783+
LOGF(info, "processMixedDerived: Mixed collisions bin: %d pair: [%d, %d] %d (%.3f, %.3f), %d (%.3f, %.3f)", bin, it.isNewWindow(), it.currentWindowNeighbours(), collision1.globalIndex(), collision1.posZ(), collision1.multiplicity(), collision2.globalIndex(), collision2.posZ(), collision2.multiplicity());
784+
}
785+
786+
if (it.isNewWindow()) {
787+
loadEfficiency(collision1.timestamp());
788+
789+
mixed->fillEvent(collision1.multiplicity(), CorrelationContainer::kCFStepReconstructed);
790+
}
791+
792+
// LOGF(info, "Tracks: %d and %d entries", tracks1.size(), tracks2.size());
793+
794+
registry.fill(HIST("eventcount_mixed"), bin);
795+
fillCorrelations<CorrelationContainer::kCFStepReconstructed>(mixed, tracks1, tracks2, collision1.multiplicity(), collision1.posZ(), field, eventWeight);
796+
797+
if (cfg.mEfficiencyAssociated || cfg.mEfficiencyTrigger) {
798+
if (it.isNewWindow()) {
799+
mixed->fillEvent(collision1.multiplicity(), CorrelationContainer::kCFStepCorrected);
800+
}
801+
fillCorrelations<CorrelationContainer::kCFStepCorrected>(mixed, tracks1, tracks2, collision1.multiplicity(), collision1.posZ(), field, eventWeight);
802+
}
803+
}
804+
}
805+
PROCESS_SWITCH(CorrelationTask, processMixed2Prong2Prong, "Process mixed events on derived data", false);
806+
767807
// Version with combinations
768808
/*void processWithCombinations(soa::Join<aod::Collisions, aod::CentRun2V0Ms>::iterator const& collision, aod::BCsWithTimestamps const&, soa::Filtered<aod::Tracks> const& tracks)
769809
{

0 commit comments

Comments
 (0)