Skip to content

Commit e59f26e

Browse files
committed
Improved mixed event acceptance calculation
1 parent 1393544 commit e59f26e

File tree

1 file changed

+84
-97
lines changed

1 file changed

+84
-97
lines changed

PWGLF/Tasks/Strangeness/lambdaspincorrderived.cxx

Lines changed: 84 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -67,24 +67,14 @@ struct lambdaspincorrderived {
6767
// Enable access to the CCDB for the offset and correction constants and save them in dedicated variables.
6868
Service<o2::ccdb::BasicCCDBManager> ccdb;
6969
o2::ccdb::CcdbApi ccdbApi;
70-
// TH3D* hweightNUAL;
71-
// TH3D* hweightNUAAL;
72-
// TH3D* hweight1;
73-
// TH3D* hweight2;
74-
// TH3D* hweight3;
75-
// TH3D* hweight4;
76-
// Configurable<std::string> ConfWeightPathNUAL{"ConfWeightPathNUAL", "Users/s/skundu/My/Object/spincorr/cent010LL", "Weight path"};
77-
// Configurable<std::string> ConfWeightPathNUAAL{"ConfWeightPathNUAAL", "Users/s/skundu/My/Object/spincorr/cent010LL", "Weight path"};
78-
// Configurable<std::string> ConfWeightPathLL{"ConfWeightPathLL", "Users/s/skundu/My/Object/spincorr/cent010LL", "Weight path"};
79-
// Configurable<std::string> ConfWeightPathALAL{"ConfWeightPathALAL", "Users/s/skundu/My/Object/spincorr/cent010LL", "Weight path"};
80-
// Configurable<std::string> ConfWeightPathLAL{"ConfWeightPathLAL", "Users/s/skundu/My/Object/spincorr/cent010LL", "Weight path"};
81-
// Configurable<std::string> ConfWeightPathALL{"ConfWeightPathALL", "Users/s/skundu/My/Object/spincorr/cent010LL", "Weight path"};
82-
83-
Configurable<std::string> ConfEffPathL{"ConfEffPathL", "", "CCDB path to Eff (optional)"};
84-
Configurable<std::string> ConfEffPathAL{"ConfEffPathAL", "", "CCDB path to Eff (optional)"};
85-
86-
TH3D* hEff_L = nullptr;
87-
TH3D* hEff_AL = nullptr;
70+
TH3D* hweight1;
71+
TH3D* hweight2;
72+
TH3D* hweight3;
73+
TH3D* hweight4;
74+
Configurable<std::string> ConfWeightPathLL{"ConfWeightPathLL", "Users/s/skundu/My/Object/spincorr/cent010LL", "Weight path"};
75+
Configurable<std::string> ConfWeightPathALAL{"ConfWeightPathALAL", "Users/s/skundu/My/Object/spincorr/cent010LL", "Weight path"};
76+
Configurable<std::string> ConfWeightPathLAL{"ConfWeightPathLAL", "Users/s/skundu/My/Object/spincorr/cent010LL", "Weight path"};
77+
Configurable<std::string> ConfWeightPathALL{"ConfWeightPathALL", "Users/s/skundu/My/Object/spincorr/cent010LL", "Weight path"};
8878

8979
// event sel/////////
9080
Configurable<float> centMin{"centMin", 0, "Minimum Centrality"};
@@ -117,6 +107,11 @@ struct lambdaspincorrderived {
117107
Configurable<float> phiMix{"phiMix", 0.1, "Phi cut on event mixing"};
118108
Configurable<float> massMix{"massMix", 0.0028, "Masscut on event mixing"};
119109

110+
// --- Pair-space axes (add near your other ConfigurableAxis)
111+
ConfigurableAxis ax_dphi_h{"ax_dphi_h", {72, 0.0, 2.0 * TMath::Pi()}, "Δφ_h"};
112+
ConfigurableAxis ax_deta{"ax_deta", {32, -1.6, 1.6}, "Δη"};
113+
ConfigurableAxis ax_ptpair{"ax_ptpair", {100, 0.0, 10.0}, "p_{T,pair} (GeV/c)"};
114+
120115
// THnsparse bining
121116
ConfigurableAxis configThnAxisInvMass{"configThnAxisInvMass", {50, 1.09, 1.14}, "#it{M} (GeV/#it{c}^{2})"};
122117
ConfigurableAxis configThnAxisR{"configThnAxisR", {80, 0.0, 8.0}, "#it{R}"};
@@ -137,12 +132,17 @@ struct lambdaspincorrderived {
137132
histos.add("ptCent", "ptCent", HistType::kTH2D, {{100, 0.0, 10.0}, {8, 0.0, 80.0}}, true);
138133
histos.add("etaCent", "etaCent", HistType::kTH2D, {{32, -0.8, 0.8}, {8, 0.0, 80.0}}, true);
139134

140-
// Attempted-for-replacement (Den) and Succeeded (Num) per SE leg kinematics
141-
histos.add("hMatchDen_L", "Attempted #Lambda; p_{T}; #eta; #varphi", kTH3D, {{50, 0.0, 5.0}, {40, -1.0, 1.0}, {72, 0.0, 2.0 * TMath::Pi()}}, true);
142-
histos.add("hMatchDen_AL", "Attempted #bar{#Lambda}; p_{T}; #eta; #varphi", kTH3D, {{50, 0.0, 5.0}, {40, -1.0, 1.0}, {72, 0.0, 2.0 * TMath::Pi()}}, true);
135+
// --- 3D SE/ME pair-space maps per category (LL, LAL, ALL, ALAL)
136+
// SE = same-event (unit weight), ME = mixed-event (uses your mixing+CCDB weight)
137+
histos.add("SE_LL", "SE pairs LL;Δφ_h;Δη;p_{T,pair}", HistType::kTH3D, {ax_dphi_h, ax_deta, ax_ptpair}, true);
138+
histos.add("SE_LAL", "SE pairs LAL;Δφ_h;Δη;p_{T,pair}", HistType::kTH3D, {ax_dphi_h, ax_deta, ax_ptpair}, true);
139+
histos.add("SE_ALL", "SE pairs ALL;Δφ_h;Δη;p_{T,pair}", HistType::kTH3D, {ax_dphi_h, ax_deta, ax_ptpair}, true);
140+
histos.add("SE_ALAL", "SE pairs ALAL;Δφ_h;Δη;p_{T,pair}", HistType::kTH3D, {ax_dphi_h, ax_deta, ax_ptpair}, true);
143141

144-
histos.add("hMatchNum_L", "Succeeded #Lambda; p_{T}; #eta; #varphi", kTH3D, {{50, 0.0, 5.0}, {40, -1.0, 1.0}, {72, 0.0, 2.0 * TMath::Pi()}}, true);
145-
histos.add("hMatchNum_AL", "Succeeded #bar{#Lambda}; p_{T}; #eta; #varphi", kTH3D, {{50, 0.0, 5.0}, {40, -1.0, 1.0}, {72, 0.0, 2.0 * TMath::Pi()}}, true);
142+
histos.add("ME_LL", "ME pairs LL;Δφ_h;Δη;p_{T,pair}", HistType::kTH3D, {ax_dphi_h, ax_deta, ax_ptpair}, true);
143+
histos.add("ME_LAL", "ME pairs LAL;Δφ_h;Δη;p_{T,pair}", HistType::kTH3D, {ax_dphi_h, ax_deta, ax_ptpair}, true);
144+
histos.add("ME_ALL", "ME pairs ALL;Δφ_h;Δη;p_{T,pair}", HistType::kTH3D, {ax_dphi_h, ax_deta, ax_ptpair}, true);
145+
histos.add("ME_ALAL", "ME pairs ALAL;Δφ_h;Δη;p_{T,pair}", HistType::kTH3D, {ax_dphi_h, ax_deta, ax_ptpair}, true);
146146

147147
histos.add("hSparseLambdaLambda", "hSparseLambdaLambda", HistType::kTHnSparseF, {configThnAxisInvMass, configThnAxisInvMass, configThnAxisPol, configThnAxisR}, true);
148148
histos.add("hSparseLambdaAntiLambda", "hSparseLambdaAntiLambda", HistType::kTHnSparseF, {configThnAxisInvMass, configThnAxisInvMass, configThnAxisPol, configThnAxisR}, true);
@@ -181,8 +181,10 @@ struct lambdaspincorrderived {
181181
ccdb->setCreatedNotAfter(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count());
182182
LOGF(info, "Getting alignment offsets from the CCDB...");
183183
if (useweight) {
184-
hEff_L = ccdb->getForTimeStamp<TH3D>(ConfEffPathL.value, cfgCcdbParam.nolaterthan.value);
185-
hEff_AL = ccdb->getForTimeStamp<TH3D>(ConfEffPathAL.value, cfgCcdbParam.nolaterthan.value);
184+
hweight1 = ccdb->getForTimeStamp<TH3D>(ConfWeightPathLL.value, cfgCcdbParam.nolaterthan.value);
185+
hweight2 = ccdb->getForTimeStamp<TH3D>(ConfWeightPathLAL.value, cfgCcdbParam.nolaterthan.value);
186+
hweight3 = ccdb->getForTimeStamp<TH3D>(ConfWeightPathALL.value, cfgCcdbParam.nolaterthan.value);
187+
hweight4 = ccdb->getForTimeStamp<TH3D>(ConfWeightPathALAL.value, cfgCcdbParam.nolaterthan.value);
186188
}
187189
}
188190

@@ -319,18 +321,26 @@ struct lambdaspincorrderived {
319321
cosThetaDiff = cosDeltaTheta_hel;
320322
}
321323

322-
double deltaPhi = std::abs(RecoDecay::constrainAngle(particle1Dummy.Phi(), 0.0F, harmonic) - RecoDecay::constrainAngle(particle2Dummy.Phi(), 0.0F, harmonic));
323-
double deltaEta = particle1Dummy.Eta() - particle2Dummy.Eta();
324+
// --- helper to compute pair-space variables
325+
auto phi1h = RecoDecay::constrainAngle(particle1Dummy.Phi(), 0.0F, harmonic);
326+
auto phi2h = RecoDecay::constrainAngle(particle2Dummy.Phi(), 0.0F, harmonic);
327+
double dphi_h = std::abs(phi1h - phi2h);
328+
double deta_pair = particle1Dummy.Eta() - particle2Dummy.Eta();
329+
double pt_pair = (particle1Dummy + particle2Dummy).Pt();
324330
double deltaRap = std::abs(particle1Dummy.Rapidity() - particle2Dummy.Rapidity());
325-
double deltaR = TMath::Sqrt(deltaEta * deltaEta + deltaPhi * deltaPhi);
331+
double deltaR = TMath::Sqrt(deta_pair * deta_pair + dphi_h * dphi_h);
326332

327-
double epsWeightParticle1 = 1.0;
333+
double epsWeight = 1.0;
328334

329335
if (useweight && datatype == 1) {
330-
if (tag1 == 0) {
331-
epsWeightParticle1 = hEff_L->GetBinContent(hEff_L->FindBin(particle1.Pt(), particle1.Eta(), RecoDecay::constrainAngle(particle1.Phi(), 0.0F, harmonic)));
332-
} else {
333-
epsWeightParticle1 = hEff_AL->GetBinContent(hEff_AL->FindBin(particle1.Pt(), particle1.Eta(), RecoDecay::constrainAngle(particle1.Phi(), 0.0F, harmonic)));
336+
if (tag1 == 0 && tag2 == 0) {
337+
epsWeight = hweight1->GetBinContent(hweight1->FindBin(dphi_h, deta_pair, pt_pair));
338+
} else if (tag1 == 0 && tag2 == 1) {
339+
epsWeight = hweight2->GetBinContent(hweight2->FindBin(dphi_h, deta_pair, pt_pair));
340+
} else if (tag1 == 1 && tag2 == 0) {
341+
epsWeight = hweight3->GetBinContent(hweight3->FindBin(dphi_h, deta_pair, pt_pair));
342+
} else if (tag1 == 1 && tag2 == 1) {
343+
epsWeight = hweight4->GetBinContent(hweight4->FindBin(dphi_h, deta_pair, pt_pair));
334344
}
335345
}
336346

@@ -341,22 +351,26 @@ struct lambdaspincorrderived {
341351
histos.fill(HIST("hSparseLambdaLambda"), particle1.M(), particle2.M(), cosThetaDiff, deltaR, mixpairweight);
342352
histos.fill(HIST("hSparseRapLambdaLambda"), particle1.M(), particle2.M(), cosThetaDiff, deltaRap, mixpairweight);
343353
histos.fill(HIST("hSparsePairMassLambdaLambda"), particle1.M(), particle2.M(), cosThetaDiff, pairDummy.M(), mixpairweight);
354+
histos.fill(HIST("SE_LL"), dphi_h, deta_pair, pt_pair);
344355
} else if (tag1 == 0 && tag2 == 1) {
345356
histos.fill(HIST("hSparseLambdaAntiLambda"), particle1.M(), particle2.M(), cosThetaDiff, deltaR, mixpairweight);
346357
histos.fill(HIST("hSparseRapLambdaAntiLambda"), particle1.M(), particle2.M(), cosThetaDiff, deltaRap, mixpairweight);
347358
histos.fill(HIST("hSparsePairMassLambdaAntiLambda"), particle1.M(), particle2.M(), cosThetaDiff, pairDummy.M(), mixpairweight);
359+
histos.fill(HIST("SE_LAL"), dphi_h, deta_pair, pt_pair);
348360
} else if (tag1 == 1 && tag2 == 0) {
349361
histos.fill(HIST("hSparseAntiLambdaLambda"), particle1.M(), particle2.M(), cosThetaDiff, deltaR, mixpairweight);
350362
histos.fill(HIST("hSparseRapAntiLambdaLambda"), particle1.M(), particle2.M(), cosThetaDiff, deltaRap, mixpairweight);
351363
histos.fill(HIST("hSparsePairMassAntiLambdaLambda"), particle1.M(), particle2.M(), cosThetaDiff, pairDummy.M(), mixpairweight);
364+
histos.fill(HIST("SE_ALL"), dphi_h, deta_pair, pt_pair);
352365
} else if (tag1 == 1 && tag2 == 1) {
353366
histos.fill(HIST("hSparseAntiLambdaAntiLambda"), particle1.M(), particle2.M(), cosThetaDiff, deltaR, mixpairweight);
354367
histos.fill(HIST("hSparseRapAntiLambdaAntiLambda"), particle1.M(), particle2.M(), cosThetaDiff, deltaRap, mixpairweight);
355368
histos.fill(HIST("hSparsePairMassAntiLambdaAntiLambda"), particle1.M(), particle2.M(), cosThetaDiff, pairDummy.M(), mixpairweight);
369+
histos.fill(HIST("SE_ALAL"), dphi_h, deta_pair, pt_pair);
356370
}
357371
} else if (datatype == 1) {
358372
double weight = mixpairweight;
359-
weight = mixpairweight / epsWeightParticle1;
373+
weight = mixpairweight / epsWeight;
360374
if (weight <= 0.0) {
361375
weight = 1.0;
362376
}
@@ -365,21 +379,25 @@ struct lambdaspincorrderived {
365379
histos.fill(HIST("hSparseLambdaLambdaMixed"), particle1.M(), particle2.M(), cosThetaDiff, deltaR, weight);
366380
histos.fill(HIST("hSparseRapLambdaLambdaMixed"), particle1.M(), particle2.M(), cosThetaDiff, deltaRap, weight);
367381
histos.fill(HIST("hSparsePairMassLambdaLambdaMixed"), particle1.M(), particle2.M(), cosThetaDiff, pairDummy.M(), weight);
382+
histos.fill(HIST("ME_LL"), dphi_h, deta_pair, pt_pair);
368383
} else if (tag1 == 0 && tag2 == 1) {
369384
histos.fill(HIST("hPtYMix"), particle1.Pt(), particle1.Rapidity(), weight);
370385
histos.fill(HIST("hSparseLambdaAntiLambdaMixed"), particle1.M(), particle2.M(), cosThetaDiff, deltaR, weight);
371386
histos.fill(HIST("hSparseRapLambdaAntiLambdaMixed"), particle1.M(), particle2.M(), cosThetaDiff, deltaRap, weight);
372387
histos.fill(HIST("hSparsePairMassLambdaAntiLambdaMixed"), particle1.M(), particle2.M(), cosThetaDiff, pairDummy.M(), weight);
388+
histos.fill(HIST("ME_LAL"), dphi_h, deta_pair, pt_pair);
373389
} else if (tag1 == 1 && tag2 == 0) {
374390
histos.fill(HIST("hPtYMix"), particle1.Pt(), particle1.Rapidity(), weight);
375391
histos.fill(HIST("hSparseAntiLambdaLambdaMixed"), particle1.M(), particle2.M(), cosThetaDiff, deltaR, weight);
376392
histos.fill(HIST("hSparseRapAntiLambdaLambdaMixed"), particle1.M(), particle2.M(), cosThetaDiff, deltaRap, weight);
377393
histos.fill(HIST("hSparsePairMassAntiLambdaLambdaMixed"), particle1.M(), particle2.M(), cosThetaDiff, pairDummy.M(), weight);
394+
histos.fill(HIST("ME_ALL"), dphi_h, deta_pair, pt_pair);
378395
} else if (tag1 == 1 && tag2 == 1) {
379396
histos.fill(HIST("hPtYMix"), particle1.Pt(), particle1.Rapidity(), weight);
380397
histos.fill(HIST("hSparseAntiLambdaAntiLambdaMixed"), particle1.M(), particle2.M(), cosThetaDiff, deltaR, weight);
381398
histos.fill(HIST("hSparseRapAntiLambdaAntiLambdaMixed"), particle1.M(), particle2.M(), cosThetaDiff, deltaRap, weight);
382399
histos.fill(HIST("hSparsePairMassAntiLambdaAntiLambdaMixed"), particle1.M(), particle2.M(), cosThetaDiff, pairDummy.M(), weight);
400+
histos.fill(HIST("ME_ALAL"), dphi_h, deta_pair, pt_pair);
383401
}
384402
}
385403
}
@@ -606,131 +624,100 @@ struct lambdaspincorrderived {
606624

607625
void processMEV3(EventCandidates const& collisions, AllTrackCandidates const& V0s)
608626
{
609-
// one pool (deque) per mixing bin; each entry holds (collision index, slice of its V0s)
610627
auto nBins = colBinning.getAllBinsCount();
611628
std::vector<std::deque<std::pair<int, AllTrackCandidates>>> eventPools(nBins);
612629

613630
for (auto& collision1 : collisions) {
614-
// select mixing bin for this event
615631
const int bin = colBinning.getBin(std::make_tuple(collision1.posz(), collision1.cent()));
616632

617-
// --- if pool is still empty, just store this event and skip mixing
633+
// if pool empty, push and continue
618634
if (eventPools[bin].empty()) {
619635
auto sliced = V0s.sliceBy(tracksPerCollisionV0, collision1.index());
620636
eventPools[bin].emplace_back(collision1.index(), std::move(sliced));
621-
if (static_cast<int>(eventPools[bin].size()) > nEvtMixing) {
637+
if ((int)eventPools[bin].size() > nEvtMixing)
622638
eventPools[bin].pop_front();
623-
}
624-
continue; // skip directly to the next event
639+
continue;
625640
}
626641

627-
// all V0s from the current event
642+
// current event slice
628643
auto poolA = V0s.sliceBy(tracksPerCollisionV0, collision1.index());
629644

630-
// loop over same-event candidate pairs (t1,t2)
631-
int oldindex = -555;
645+
// loop over SE unordered pairs (t1,t2)
632646
for (auto& [t1, t2] : soa::combinations(o2::soa::CombinationsFullIndexPolicy(poolA, poolA))) {
633647
if (!selectionV0(t1) || !selectionV0(t2))
634648
continue;
635649
if (t2.index() <= t1.index())
636-
continue; // unique unordered pairs
650+
continue;
637651
if (t1.protonIndex() == t2.protonIndex())
638-
continue; // no shared daughter
652+
continue;
639653
if (t1.pionIndex() == t2.pionIndex())
640654
continue;
641655
if (t1.protonIndex() == t2.pionIndex())
642656
continue;
643657
if (t1.pionIndex() == t2.protonIndex())
644658
continue;
645659

646-
// --- First pass over previous events: count replacements for t1 (first leg)
647-
int mixes = 0;
648-
649-
struct PoolView {
650-
AllTrackCandidates* pool; // pointer to slice of V0s from a prior event
651-
int nRepl; // how many tX match t1 by checkKinematics
660+
// scan prior events for replacements for t1
661+
struct PV {
662+
AllTrackCandidates* pool;
663+
int nRepl;
652664
};
653-
654-
std::vector<PoolView> usable;
665+
std::vector<PV> usable;
655666
int totalRepl = 0;
656667

668+
int mixes = 0;
657669
for (auto it = eventPools[bin].rbegin();
658670
it != eventPools[bin].rend() && mixes < nEvtMixing; ++it, ++mixes) {
659671
const int collision2idx = it->first;
660-
auto& poolB = it->second; // V0 slice of that prior event in this bin
661-
if (collision2idx == collision1.index()) {
662-
continue; // skip same-event mixing
663-
}
672+
auto& poolB = it->second;
673+
if (collision2idx == collision1.index())
674+
continue;
675+
664676
int nRepl = 0;
665677
for (auto& tX : poolB) {
666678
if (!selectionV0(tX))
667679
continue;
668680
if (checkKinematics(t1, tX))
669-
++nRepl; // <-- match against t1 only
681+
++nRepl;
670682
}
671-
672683
if (nRepl > 0) {
673-
usable.push_back(PoolView{&poolB, nRepl});
684+
usable.push_back(PV{&poolB, nRepl});
674685
totalRepl += nRepl;
675686
}
676687
}
677688

678-
// --- Track-by-track matching efficiency (count each t1 once in this event)
679-
if (t1.index() != oldindex) {
680-
const double phi1 = RecoDecay::constrainAngle(t1.lambdaPhi(), 0.0F, harmonic);
681-
if (t1.v0Status() == 0) {
682-
histos.fill(HIST("hMatchDen_L"), t1.lambdaPt(), t1.lambdaEta(), phi1);
683-
} else {
684-
histos.fill(HIST("hMatchDen_AL"), t1.lambdaPt(), t1.lambdaEta(), phi1);
685-
}
686-
687-
if (totalRepl > 0) { // success for this t1 this event
688-
if (t1.v0Status() == 0) {
689-
histos.fill(HIST("hMatchNum_L"), t1.lambdaPt(), t1.lambdaEta(), phi1);
690-
} else {
691-
histos.fill(HIST("hMatchNum_AL"), t1.lambdaPt(), t1.lambdaEta(), phi1);
692-
}
693-
}
694-
oldindex = t1.index();
695-
}
696-
697689
if (totalRepl == 0)
698-
continue; // no viable replacement for this t1
699-
700-
// --- Second pass: build mixed pairs (tX replaces t1), normalized per-SE-leg
690+
continue;
701691
const float wBase = 1.0f / static_cast<float>(totalRepl);
702692

693+
// emit mixed pairs: tX replaces t1; t2 stays
703694
for (auto& pv : usable) {
704695
auto& poolB = *pv.pool;
705696
for (auto& tX : poolB) {
706697
if (!selectionV0(tX))
707698
continue;
708699
if (!checkKinematics(t1, tX))
709-
continue; // defensive re-check
700+
continue;
710701

711-
// Build mixed pair: tX (from prior event) replaces t1; t2 stays (current event)
712-
proton = ROOT::Math::PtEtaPhiMVector(tX.protonPt(), tX.protonEta(), tX.protonPhi(), o2::constants::physics::MassProton);
713-
lambda = ROOT::Math::PtEtaPhiMVector(tX.lambdaPt(), tX.lambdaEta(), tX.lambdaPhi(), tX.lambdaMass());
714-
proton2 = ROOT::Math::PtEtaPhiMVector(t2.protonPt(), t2.protonEta(), t2.protonPhi(), o2::constants::physics::MassProton);
715-
lambda2 = ROOT::Math::PtEtaPhiMVector(t2.lambdaPt(), t2.lambdaEta(), t2.lambdaPhi(), t2.lambdaMass());
702+
auto proton = ROOT::Math::PtEtaPhiMVector(tX.protonPt(), tX.protonEta(), tX.protonPhi(), o2::constants::physics::MassProton);
703+
auto lambda = ROOT::Math::PtEtaPhiMVector(tX.lambdaPt(), tX.lambdaEta(), tX.lambdaPhi(), tX.lambdaMass());
704+
auto proton2 = ROOT::Math::PtEtaPhiMVector(t2.protonPt(), t2.protonEta(), t2.protonPhi(), o2::constants::physics::MassProton);
705+
auto lambda2 = ROOT::Math::PtEtaPhiMVector(t2.lambdaPt(), t2.lambdaEta(), t2.lambdaPhi(), t2.lambdaMass());
716706

717-
const float dPhi = std::fabs(
718-
RecoDecay::constrainAngle(lambda.Phi(), 0.0F, harmonic) -
719-
RecoDecay::constrainAngle(lambda2.Phi(), 0.0F, harmonic));
707+
const float dPhi = std::fabs(RecoDecay::constrainAngle(lambda.Phi(), 0.0F, harmonic) - RecoDecay::constrainAngle(lambda2.Phi(), 0.0F, harmonic));
720708
histos.fill(HIST("deltaPhiMix"), dPhi, wBase);
721709
fillHistograms(tX.v0Status(), t2.v0Status(), lambda, lambda2, proton, proton2, 1, wBase);
722710
}
723711
}
724-
} // end same-event pair loop
725-
// after mixing with prior events, push current event into the pool
712+
}
713+
// push current event into pool
726714
auto sliced = V0s.sliceBy(tracksPerCollisionV0, collision1.index());
727715
eventPools[bin].emplace_back(collision1.index(), std::move(sliced));
728-
if (static_cast<int>(eventPools[bin].size()) > nEvtMixing) {
716+
if ((int)eventPools[bin].size() > nEvtMixing)
729717
eventPools[bin].pop_front();
730-
}
731-
} // end primary-event loop
718+
}
732719
}
733-
PROCESS_SWITCH(lambdaspincorrderived, processMEV3, "Process data ME", false);
720+
PROCESS_SWITCH(lambdaspincorrderived, processMEV3, "Process data ME (first-leg, pair-3D maps)", false);
734721
};
735722
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
736723
{

0 commit comments

Comments
 (0)