@@ -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,10 @@ 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+ ConfigurableAxis ax_dphi_h{" ax_dphi_h" , {72 , 0.0 , 2.0 * TMath::Pi ()}, " Δφ_h" };
111+ ConfigurableAxis ax_deta{" ax_deta" , {32 , -1.6 , 1.6 }, " Δη" };
112+ ConfigurableAxis ax_ptpair{" ax_ptpair" , {100 , 0.0 , 10.0 }, " p_{T,pair} (GeV/c)" };
113+
120114 // THnsparse bining
121115 ConfigurableAxis configThnAxisInvMass{" configThnAxisInvMass" , {50 , 1.09 , 1.14 }, " #it{M} (GeV/#it{c}^{2})" };
122116 ConfigurableAxis configThnAxisR{" configThnAxisR" , {80 , 0.0 , 8.0 }, " #it{R}" };
@@ -137,12 +131,16 @@ struct lambdaspincorrderived {
137131 histos.add (" ptCent" , " ptCent" , HistType::kTH2D , {{100 , 0.0 , 10.0 }, {8 , 0.0 , 80.0 }}, true );
138132 histos.add (" etaCent" , " etaCent" , HistType::kTH2D , {{32 , -0.8 , 0.8 }, {8 , 0.0 , 80.0 }}, true );
139133
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 );
134+ // --- 3D SE/ME pair-space maps per category (LL, LAL, ALL, ALAL)
135+ histos.add (" SE_LL" , " SE pairs LL;Δφ_h;Δη;p_{T,pair}" , HistType::kTH3D , {ax_dphi_h, ax_deta, ax_ptpair}, true );
136+ histos.add (" SE_LAL" , " SE pairs LAL;Δφ_h;Δη;p_{T,pair}" , HistType::kTH3D , {ax_dphi_h, ax_deta, ax_ptpair}, true );
137+ histos.add (" SE_ALL" , " SE pairs ALL;Δφ_h;Δη;p_{T,pair}" , HistType::kTH3D , {ax_dphi_h, ax_deta, ax_ptpair}, true );
138+ histos.add (" SE_ALAL" , " SE pairs ALAL;Δφ_h;Δη;p_{T,pair}" , HistType::kTH3D , {ax_dphi_h, ax_deta, ax_ptpair}, true );
143139
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 );
140+ histos.add (" ME_LL" , " ME pairs LL;Δφ_h;Δη;p_{T,pair}" , HistType::kTH3D , {ax_dphi_h, ax_deta, ax_ptpair}, true );
141+ histos.add (" ME_LAL" , " ME pairs LAL;Δφ_h;Δη;p_{T,pair}" , HistType::kTH3D , {ax_dphi_h, ax_deta, ax_ptpair}, true );
142+ histos.add (" ME_ALL" , " ME pairs ALL;Δφ_h;Δη;p_{T,pair}" , HistType::kTH3D , {ax_dphi_h, ax_deta, ax_ptpair}, true );
143+ histos.add (" ME_ALAL" , " ME pairs ALAL;Δφ_h;Δη;p_{T,pair}" , HistType::kTH3D , {ax_dphi_h, ax_deta, ax_ptpair}, true );
146144
147145 histos.add (" hSparseLambdaLambda" , " hSparseLambdaLambda" , HistType::kTHnSparseF , {configThnAxisInvMass, configThnAxisInvMass, configThnAxisPol, configThnAxisR}, true );
148146 histos.add (" hSparseLambdaAntiLambda" , " hSparseLambdaAntiLambda" , HistType::kTHnSparseF , {configThnAxisInvMass, configThnAxisInvMass, configThnAxisPol, configThnAxisR}, true );
@@ -181,8 +179,10 @@ struct lambdaspincorrderived {
181179 ccdb->setCreatedNotAfter (std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now ().time_since_epoch ()).count ());
182180 LOGF (info, " Getting alignment offsets from the CCDB..." );
183181 if (useweight) {
184- hEff_L = ccdb->getForTimeStamp <TH3D>(ConfEffPathL.value , cfgCcdbParam.nolaterthan .value );
185- hEff_AL = ccdb->getForTimeStamp <TH3D>(ConfEffPathAL.value , cfgCcdbParam.nolaterthan .value );
182+ hweight1 = ccdb->getForTimeStamp <TH3D>(ConfWeightPathLL.value , cfgCcdbParam.nolaterthan .value );
183+ hweight2 = ccdb->getForTimeStamp <TH3D>(ConfWeightPathLAL.value , cfgCcdbParam.nolaterthan .value );
184+ hweight3 = ccdb->getForTimeStamp <TH3D>(ConfWeightPathALL.value , cfgCcdbParam.nolaterthan .value );
185+ hweight4 = ccdb->getForTimeStamp <TH3D>(ConfWeightPathALAL.value , cfgCcdbParam.nolaterthan .value );
186186 }
187187 }
188188
@@ -319,18 +319,26 @@ struct lambdaspincorrderived {
319319 cosThetaDiff = cosDeltaTheta_hel;
320320 }
321321
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 ();
322+ // --- helper to compute pair-space variables
323+ auto phi1h = RecoDecay::constrainAngle (particle1Dummy.Phi (), 0 .0F , harmonic);
324+ auto phi2h = RecoDecay::constrainAngle (particle2Dummy.Phi (), 0 .0F , harmonic);
325+ double dphi_h = std::abs (phi1h - phi2h);
326+ double deta_pair = particle1Dummy.Eta () - particle2Dummy.Eta ();
327+ double pt_pair = (particle1Dummy + particle2Dummy).Pt ();
324328 double deltaRap = std::abs (particle1Dummy.Rapidity () - particle2Dummy.Rapidity ());
325- double deltaR = TMath::Sqrt (deltaEta * deltaEta + deltaPhi * deltaPhi );
329+ double deltaR = TMath::Sqrt (deta_pair * deta_pair + dphi_h * dphi_h );
326330
327- double epsWeightParticle1 = 1.0 ;
331+ double epsWeight = 1.0 ;
328332
329333 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)));
334+ if (tag1 == 0 && tag2 == 0 ) {
335+ epsWeight = hweight1->GetBinContent (hweight1->FindBin (dphi_h, deta_pair, pt_pair));
336+ } else if (tag1 == 0 && tag2 == 1 ) {
337+ epsWeight = hweight2->GetBinContent (hweight2->FindBin (dphi_h, deta_pair, pt_pair));
338+ } else if (tag1 == 1 && tag2 == 0 ) {
339+ epsWeight = hweight3->GetBinContent (hweight3->FindBin (dphi_h, deta_pair, pt_pair));
340+ } else if (tag1 == 1 && tag2 == 1 ) {
341+ epsWeight = hweight4->GetBinContent (hweight4->FindBin (dphi_h, deta_pair, pt_pair));
334342 }
335343 }
336344
@@ -341,22 +349,26 @@ struct lambdaspincorrderived {
341349 histos.fill (HIST (" hSparseLambdaLambda" ), particle1.M (), particle2.M (), cosThetaDiff, deltaR, mixpairweight);
342350 histos.fill (HIST (" hSparseRapLambdaLambda" ), particle1.M (), particle2.M (), cosThetaDiff, deltaRap, mixpairweight);
343351 histos.fill (HIST (" hSparsePairMassLambdaLambda" ), particle1.M (), particle2.M (), cosThetaDiff, pairDummy.M (), mixpairweight);
352+ histos.fill (HIST (" SE_LL" ), dphi_h, deta_pair, pt_pair);
344353 } else if (tag1 == 0 && tag2 == 1 ) {
345354 histos.fill (HIST (" hSparseLambdaAntiLambda" ), particle1.M (), particle2.M (), cosThetaDiff, deltaR, mixpairweight);
346355 histos.fill (HIST (" hSparseRapLambdaAntiLambda" ), particle1.M (), particle2.M (), cosThetaDiff, deltaRap, mixpairweight);
347356 histos.fill (HIST (" hSparsePairMassLambdaAntiLambda" ), particle1.M (), particle2.M (), cosThetaDiff, pairDummy.M (), mixpairweight);
357+ histos.fill (HIST (" SE_LAL" ), dphi_h, deta_pair, pt_pair);
348358 } else if (tag1 == 1 && tag2 == 0 ) {
349359 histos.fill (HIST (" hSparseAntiLambdaLambda" ), particle1.M (), particle2.M (), cosThetaDiff, deltaR, mixpairweight);
350360 histos.fill (HIST (" hSparseRapAntiLambdaLambda" ), particle1.M (), particle2.M (), cosThetaDiff, deltaRap, mixpairweight);
351361 histos.fill (HIST (" hSparsePairMassAntiLambdaLambda" ), particle1.M (), particle2.M (), cosThetaDiff, pairDummy.M (), mixpairweight);
362+ histos.fill (HIST (" SE_ALL" ), dphi_h, deta_pair, pt_pair);
352363 } else if (tag1 == 1 && tag2 == 1 ) {
353364 histos.fill (HIST (" hSparseAntiLambdaAntiLambda" ), particle1.M (), particle2.M (), cosThetaDiff, deltaR, mixpairweight);
354365 histos.fill (HIST (" hSparseRapAntiLambdaAntiLambda" ), particle1.M (), particle2.M (), cosThetaDiff, deltaRap, mixpairweight);
355366 histos.fill (HIST (" hSparsePairMassAntiLambdaAntiLambda" ), particle1.M (), particle2.M (), cosThetaDiff, pairDummy.M (), mixpairweight);
367+ histos.fill (HIST (" SE_ALAL" ), dphi_h, deta_pair, pt_pair);
356368 }
357369 } else if (datatype == 1 ) {
358370 double weight = mixpairweight;
359- weight = mixpairweight / epsWeightParticle1 ;
371+ weight = mixpairweight / epsWeight ;
360372 if (weight <= 0.0 ) {
361373 weight = 1.0 ;
362374 }
@@ -365,21 +377,25 @@ struct lambdaspincorrderived {
365377 histos.fill (HIST (" hSparseLambdaLambdaMixed" ), particle1.M (), particle2.M (), cosThetaDiff, deltaR, weight);
366378 histos.fill (HIST (" hSparseRapLambdaLambdaMixed" ), particle1.M (), particle2.M (), cosThetaDiff, deltaRap, weight);
367379 histos.fill (HIST (" hSparsePairMassLambdaLambdaMixed" ), particle1.M (), particle2.M (), cosThetaDiff, pairDummy.M (), weight);
380+ histos.fill (HIST (" ME_LL" ), dphi_h, deta_pair, pt_pair);
368381 } else if (tag1 == 0 && tag2 == 1 ) {
369382 histos.fill (HIST (" hPtYMix" ), particle1.Pt (), particle1.Rapidity (), weight);
370383 histos.fill (HIST (" hSparseLambdaAntiLambdaMixed" ), particle1.M (), particle2.M (), cosThetaDiff, deltaR, weight);
371384 histos.fill (HIST (" hSparseRapLambdaAntiLambdaMixed" ), particle1.M (), particle2.M (), cosThetaDiff, deltaRap, weight);
372385 histos.fill (HIST (" hSparsePairMassLambdaAntiLambdaMixed" ), particle1.M (), particle2.M (), cosThetaDiff, pairDummy.M (), weight);
386+ histos.fill (HIST (" ME_LAL" ), dphi_h, deta_pair, pt_pair);
373387 } else if (tag1 == 1 && tag2 == 0 ) {
374388 histos.fill (HIST (" hPtYMix" ), particle1.Pt (), particle1.Rapidity (), weight);
375389 histos.fill (HIST (" hSparseAntiLambdaLambdaMixed" ), particle1.M (), particle2.M (), cosThetaDiff, deltaR, weight);
376390 histos.fill (HIST (" hSparseRapAntiLambdaLambdaMixed" ), particle1.M (), particle2.M (), cosThetaDiff, deltaRap, weight);
377391 histos.fill (HIST (" hSparsePairMassAntiLambdaLambdaMixed" ), particle1.M (), particle2.M (), cosThetaDiff, pairDummy.M (), weight);
392+ histos.fill (HIST (" ME_ALL" ), dphi_h, deta_pair, pt_pair);
378393 } else if (tag1 == 1 && tag2 == 1 ) {
379394 histos.fill (HIST (" hPtYMix" ), particle1.Pt (), particle1.Rapidity (), weight);
380395 histos.fill (HIST (" hSparseAntiLambdaAntiLambdaMixed" ), particle1.M (), particle2.M (), cosThetaDiff, deltaR, weight);
381396 histos.fill (HIST (" hSparseRapAntiLambdaAntiLambdaMixed" ), particle1.M (), particle2.M (), cosThetaDiff, deltaRap, weight);
382397 histos.fill (HIST (" hSparsePairMassAntiLambdaAntiLambdaMixed" ), particle1.M (), particle2.M (), cosThetaDiff, pairDummy.M (), weight);
398+ histos.fill (HIST (" ME_ALAL" ), dphi_h, deta_pair, pt_pair);
383399 }
384400 }
385401 }
@@ -606,131 +622,100 @@ struct lambdaspincorrderived {
606622
607623 void processMEV3 (EventCandidates const & collisions, AllTrackCandidates const & V0s)
608624 {
609- // one pool (deque) per mixing bin; each entry holds (collision index, slice of its V0s)
610625 auto nBins = colBinning.getAllBinsCount ();
611626 std::vector<std::deque<std::pair<int , AllTrackCandidates>>> eventPools (nBins);
612627
613628 for (auto & collision1 : collisions) {
614- // select mixing bin for this event
615629 const int bin = colBinning.getBin (std::make_tuple (collision1.posz (), collision1.cent ()));
616630
617- // --- if pool is still empty, just store this event and skip mixing
631+ // if pool empty, push and continue
618632 if (eventPools[bin].empty ()) {
619633 auto sliced = V0s.sliceBy (tracksPerCollisionV0, collision1.index ());
620634 eventPools[bin].emplace_back (collision1.index (), std::move (sliced));
621- if (static_cast < int >( eventPools[bin].size ()) > nEvtMixing) {
635+ if (( int ) eventPools[bin].size () > nEvtMixing)
622636 eventPools[bin].pop_front ();
623- }
624- continue ; // skip directly to the next event
637+ continue ;
625638 }
626639
627- // all V0s from the current event
640+ // current event slice
628641 auto poolA = V0s.sliceBy (tracksPerCollisionV0, collision1.index ());
629642
630- // loop over same-event candidate pairs (t1,t2)
631- int oldindex = -555 ;
643+ // loop over SE unordered pairs (t1,t2)
632644 for (auto & [t1, t2] : soa::combinations (o2::soa::CombinationsFullIndexPolicy (poolA, poolA))) {
633645 if (!selectionV0 (t1) || !selectionV0 (t2))
634646 continue ;
635647 if (t2.index () <= t1.index ())
636- continue ; // unique unordered pairs
648+ continue ;
637649 if (t1.protonIndex () == t2.protonIndex ())
638- continue ; // no shared daughter
650+ continue ;
639651 if (t1.pionIndex () == t2.pionIndex ())
640652 continue ;
641653 if (t1.protonIndex () == t2.pionIndex ())
642654 continue ;
643655 if (t1.pionIndex () == t2.protonIndex ())
644656 continue ;
645657
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
658+ // scan prior events for replacements for t1
659+ struct PV {
660+ AllTrackCandidates* pool;
661+ int nRepl;
652662 };
653-
654- std::vector<PoolView> usable;
663+ std::vector<PV> usable;
655664 int totalRepl = 0 ;
656665
666+ int mixes = 0 ;
657667 for (auto it = eventPools[bin].rbegin ();
658668 it != eventPools[bin].rend () && mixes < nEvtMixing; ++it, ++mixes) {
659669 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- }
670+ auto & poolB = it->second ;
671+ if (collision2idx == collision1.index ())
672+ continue ;
673+
664674 int nRepl = 0 ;
665675 for (auto & tX : poolB) {
666676 if (!selectionV0 (tX))
667677 continue ;
668678 if (checkKinematics (t1, tX))
669- ++nRepl; // <-- match against t1 only
679+ ++nRepl;
670680 }
671-
672681 if (nRepl > 0 ) {
673- usable.push_back (PoolView {&poolB, nRepl});
682+ usable.push_back (PV {&poolB, nRepl});
674683 totalRepl += nRepl;
675684 }
676685 }
677686
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-
697687 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
688+ continue ;
701689 const float wBase = 1 .0f / static_cast <float >(totalRepl);
702690
691+ // emit mixed pairs: tX replaces t1; t2 stays
703692 for (auto & pv : usable) {
704693 auto & poolB = *pv.pool ;
705694 for (auto & tX : poolB) {
706695 if (!selectionV0 (tX))
707696 continue ;
708697 if (!checkKinematics (t1, tX))
709- continue ; // defensive re-check
698+ continue ;
710699
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 ());
700+ auto proton = ROOT::Math::PtEtaPhiMVector (tX.protonPt (), tX.protonEta (), tX.protonPhi (), o2::constants::physics::MassProton);
701+ auto lambda = ROOT::Math::PtEtaPhiMVector (tX.lambdaPt (), tX.lambdaEta (), tX.lambdaPhi (), tX.lambdaMass ());
702+ auto proton2 = ROOT::Math::PtEtaPhiMVector (t2.protonPt (), t2.protonEta (), t2.protonPhi (), o2::constants::physics::MassProton);
703+ auto lambda2 = ROOT::Math::PtEtaPhiMVector (t2.lambdaPt (), t2.lambdaEta (), t2.lambdaPhi (), t2.lambdaMass ());
716704
717- const float dPhi = std::fabs (
718- RecoDecay::constrainAngle (lambda.Phi (), 0 .0F , harmonic) -
719- RecoDecay::constrainAngle (lambda2.Phi (), 0 .0F , harmonic));
705+ const float dPhi = std::fabs (RecoDecay::constrainAngle (lambda.Phi (), 0 .0F , harmonic) - RecoDecay::constrainAngle (lambda2.Phi (), 0 .0F , harmonic));
720706 histos.fill (HIST (" deltaPhiMix" ), dPhi, wBase);
721707 fillHistograms (tX.v0Status (), t2.v0Status (), lambda, lambda2, proton, proton2, 1 , wBase);
722708 }
723709 }
724- } // end same-event pair loop
725- // after mixing with prior events, push current event into the pool
710+ }
711+ // push current event into pool
726712 auto sliced = V0s.sliceBy (tracksPerCollisionV0, collision1.index ());
727713 eventPools[bin].emplace_back (collision1.index (), std::move (sliced));
728- if (static_cast < int >( eventPools[bin].size ()) > nEvtMixing) {
714+ if (( int ) eventPools[bin].size () > nEvtMixing)
729715 eventPools[bin].pop_front ();
730- }
731- } // end primary-event loop
716+ }
732717 }
733- PROCESS_SWITCH (lambdaspincorrderived, processMEV3, " Process data ME" , false );
718+ PROCESS_SWITCH (lambdaspincorrderived, processMEV3, " Process data ME (first-leg, pair-3D maps) " , false );
734719};
735720WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
736721{
0 commit comments