1212// / \file Lambdacascadecorrelation.cxx
1313// / \brief Correlation-balance functions of multistrange baryons
1414// / \author Oveis Sheibani <oveis.sheibani@cern.ch>
15- //
16- // o2-linter: disable=name/workflow-file
15+
1716
1817#include " PWGLF/DataModel/LFStrangenessTables.h"
1918#include " PWGLF/Utils/inelGt.h"
@@ -404,7 +403,7 @@ constexpr uint8_t kItsIBMask = 0x07;
404403
405404// Cascade species-selection flag values written into the
406405// cascadeflags::IsSelected column. Promoted to namespace scope so both
407- // LambdaCascadeProducer (sets them) and LambdaXiCorrelation (consumes
406+ // LambdaCascadeProducer (sets them) and LambdaCascadeCorrelation (consumes
408407// them) can refer to the same names.
409408constexpr int kFlagRejected = 0 ; // rejected by processCandidate cut chain
410409constexpr int kFlagXiOnly = 1 ; // bachelor passes pion-PID only → Ξ-eligible
@@ -639,14 +638,14 @@ inline void logEventCuts(const char* tag, EventCuts const& cuts)
639638 " trigTvx=%d tfBorder=%d itsROBorder=%d itsTpcVtx=%d "
640639 " noBunchPileup=%d zVtxTimeDiff=%d goodITSLayers=%d" ,
641640 tag,
642- static_cast <int >(cuts) .useVtxZ , static_cast <double >(cuts) .minVtxZ , static_cast <double >(cuts) .maxVtxZ ,
643- static_cast <int >(cuts) .useSel8 , static_cast <int >(cuts) .useInt7 , static_cast <int >(cuts) .useSel7 ,
644- static_cast <int >(cuts) .useCentRange , static_cast <double >(cuts) .minCent , static_cast <double >(cuts) .maxCent ,
645- static_cast <int >(cuts) .useInel , cuts.inelMin ,
646- static_cast <int >(cuts) .useTriggerTvx , static_cast <int >(cuts) .useTfBorder ,
647- static_cast <int >(cuts) .useItsRoBorder , static_cast <int >(cuts) .useItsTpcVtx ,
648- static_cast <int >(cuts) .useNoSameBunchPileup , static_cast <int >(cuts) .useZVtxTimeDiff ,
649- static_cast <int >(cuts) .useIsGoodITSLayers );
641+ static_cast <int >(cuts.useVtxZ ) , static_cast <double >(cuts.minVtxZ ) , static_cast <double >(cuts.maxVtxZ ) ,
642+ static_cast <int >(cuts.useSel8 ) , static_cast <int >(cuts.useInt7 ) , static_cast <int >(cuts.useSel7 ) ,
643+ static_cast <int >(cuts.useCentRange ) , static_cast <double >(cuts.minCent ) , static_cast <double >(cuts.maxCent ) ,
644+ static_cast <int >(cuts.useInel ) , cuts.inelMin ,
645+ static_cast <int >(cuts.useTriggerTvx ) , static_cast <int >(cuts.useTfBorder ) ,
646+ static_cast <int >(cuts.useItsRoBorder ) , static_cast <int >(cuts.useItsTpcVtx ) ,
647+ static_cast <int >(cuts.useNoSameBunchPileup ) , static_cast <int >(cuts.useZVtxTimeDiff ) ,
648+ static_cast <int >(cuts.useIsGoodITSLayers ) );
650649}
651650
652651} // namespace lcorr_evsel
@@ -657,7 +656,7 @@ inline void logEventCuts(const char* tag, EventCuts const& cuts)
657656//
658657// Why merged: event selection used to run twice (once in LTP, once in CSEL),
659658// with subtly different defaults, producing inconsistent collision populations
660- // in the downstream LambdaXiCorrelation . The merge guarantees a single
659+ // in the downstream LambdaCascadeCorrelation . The merge guarantees a single
661660// `selCollision()` call per event drives BOTH the Lambda table production
662661// and the cascade flagging — they can no longer disagree.
663662//
@@ -793,7 +792,7 @@ struct LambdaCascadeProducer {
793792 Configurable<bool > doTFBorderCut{" doTFBorderCut" , true , " [DEPRECATED] event selection delegated to LTP" };
794793 Configurable<bool > doSel8{" doSel8" , true , " [DEPRECATED] sel8 is enforced by LTP's cSel8Trig" };
795794 Configurable<bool > doNoSameBunchPileUp{" doNoSameBunchPileUp" , true , " [DEPRECATED] pileup veto is enforced by LTP's cPileupReject" };
796- Configurable<int > INEL {" INEL" , 0 , " [DEPRECATED] INEL>N enforcement is no longer applied" }; // o2-linter: disable=name/configurable
795+ Configurable<int > INEL {" INEL" , 0 , " [DEPRECATED] INEL>N enforcement is no longer applied" }; // o2-linter: disable=name/configurable (back-compat: JSON key)
797796 Configurable<double > maxVertexZ{" maxVertexZ" , 10 ., " [DEPRECATED] |Vz| cut is enforced by LTP's cMin/cMaxZVtx" };
798797
799798 // Cascade kinematic / selection.
@@ -830,20 +829,20 @@ struct LambdaCascadeProducer {
830829 // names matching the long-standing ALICE V0/cascade-builder JSON
831830 // convention shared across PWGCF / PWGLF tasks. Renaming would break
832831 // back-compat with every existing config file.
833- Configurable<double > v0setting_cospa{" v0setting_cospa" , 0.995 , " v0setting_cospa" }; // o2-linter: disable=name/configurable
834- Configurable<float > v0setting_dcav0dau{" v0setting_dcav0dau" , 1.0 , " v0setting_dcav0dau" }; // o2-linter: disable=name/configurable
835- Configurable<float > v0setting_dcapostopv{" v0setting_dcapostopv" , 0.1 , " v0setting_dcapostopv" }; // o2-linter: disable=name/configurable
836- Configurable<float > v0setting_dcanegtopv{" v0setting_dcanegtopv" , 0.1 , " v0setting_dcanegtopv" }; // o2-linter: disable=name/configurable
837- Configurable<float > v0setting_radius{" v0setting_radius" , 0.9 , " v0setting_radius" }; // o2-linter: disable=name/configurable
838- Configurable<double > cascadesetting_cospa{" cascadesetting_cospa" , 0.95 , " cascadesetting_cospa" }; // o2-linter: disable=name/configurable
832+ Configurable<double > v0setting_cospa{" v0setting_cospa" , 0.995 , " v0setting_cospa" }; // o2-linter: disable=name/configurable (back-compat: JSON key)
833+ Configurable<float > v0setting_dcav0dau{" v0setting_dcav0dau" , 1.0 , " v0setting_dcav0dau" }; // o2-linter: disable=name/configurable (back-compat: JSON key)
834+ Configurable<float > v0setting_dcapostopv{" v0setting_dcapostopv" , 0.1 , " v0setting_dcapostopv" }; // o2-linter: disable=name/configurable (back-compat: JSON key)
835+ Configurable<float > v0setting_dcanegtopv{" v0setting_dcanegtopv" , 0.1 , " v0setting_dcanegtopv" }; // o2-linter: disable=name/configurable (back-compat: JSON key)
836+ Configurable<float > v0setting_radius{" v0setting_radius" , 0.9 , " v0setting_radius" }; // o2-linter: disable=name/configurable (back-compat: JSON key)
837+ Configurable<double > cascadesetting_cospa{" cascadesetting_cospa" , 0.95 , " cascadesetting_cospa" }; // o2-linter: disable=name/configurable (back-compat: JSON key)
839838 // Removed unused Configurables: cascadesetting_dcacascdau /
840839 // cascadesetting_dcabachtopv. These were declared but never used in the
841840 // cut chain — only `casc.dcacascdaughters()` / `casc.dcabachtopv()` (the
842841 // row values) are read for QA fills. The cascade-builder upstream applies
843842 // the analogous cuts at table-production time; our task didn't re-cut.
844- Configurable<float > cascadesetting_cascradius{" cascadesetting_cascradius" , 0.9 , " cascadesetting_cascradius" }; // o2-linter: disable=name/configurable
845- Configurable<float > cascadesetting_v0masswindow{" cascadesetting_v0masswindow" , 0.01 , " cascadesetting_v0masswindow" }; // o2-linter: disable=name/configurable
846- Configurable<float > cascadesetting_mindcav0topv{" cascadesetting_mindcav0topv" , 0.01 , " cascadesetting_mindcav0topv" }; // o2-linter: disable=name/configurable
843+ Configurable<float > cascadesetting_cascradius{" cascadesetting_cascradius" , 0.9 , " cascadesetting_cascradius" }; // o2-linter: disable=name/configurable (back-compat: JSON key)
844+ Configurable<float > cascadesetting_v0masswindow{" cascadesetting_v0masswindow" , 0.01 , " cascadesetting_v0masswindow" }; // o2-linter: disable=name/configurable (back-compat: JSON key)
845+ Configurable<float > cascadesetting_mindcav0topv{" cascadesetting_mindcav0topv" , 0.01 , " cascadesetting_mindcav0topv" }; // o2-linter: disable=name/configurable (back-compat: JSON key)
847846
848847 // Cascade-side ConfigurableAxes.
849848 ConfigurableAxis cascRadiusAxis{" cascRadiusAxis" , {100 , 0 .0f , 50 .0f }, " cm" };
@@ -1005,12 +1004,12 @@ struct LambdaCascadeProducer {
10051004 " maxDcaV0ToPv=%.4f minV0CosPA=%.6f maxV0Radius=%.2f maxLProper=%.2f "
10061005 " maxDauDcaToPv=%.4f minDauItsNCls=%d "
10071006 " cascRadius<v0Radius=%d cFillLambdaTreeAllCandidates=%d" ,
1008- static_cast <int >(primCfg) .cPrimEnable , static_cast <int >(primCfg) .cPrimRequireBothDauItsHits ,
1009- static_cast <int >(primCfg) .cPrimRequireItsIBHit ,
1010- static_cast <float >(primCfg) .cPrimMaxDcaV0ToPv , static_cast <float >(primCfg) .cPrimMinV0CosPA ,
1011- static_cast <float >(primCfg) .cPrimMaxV0Radius , static_cast <float >(primCfg) .cPrimMaxLProper ,
1012- static_cast <float >(primCfg) .cPrimMaxDauDcaToPv , static_cast <int >(primCfg) .cPrimMinDauItsNCls ,
1013- static_cast <int >(primCfg) .cReqCascRadiusLessThanV0Radius ,
1007+ static_cast <int >(primCfg.cPrimEnable ) , static_cast <int >(primCfg.cPrimRequireBothDauItsHits ) ,
1008+ static_cast <int >(primCfg.cPrimRequireItsIBHit ) ,
1009+ static_cast <float >(primCfg.cPrimMaxDcaV0ToPv ) , static_cast <float >(primCfg.cPrimMinV0CosPA ) ,
1010+ static_cast <float >(primCfg.cPrimMaxV0Radius ) , static_cast <float >(primCfg.cPrimMaxLProper ) ,
1011+ static_cast <float >(primCfg.cPrimMaxDauDcaToPv ) , static_cast <int >(primCfg.cPrimMinDauItsNCls ) ,
1012+ static_cast <int >(primCfg.cReqCascRadiusLessThanV0Radius ) ,
10141013 static_cast <int >(cFillLambdaTreeAllCandidates));
10151014
10161015 // initialize axis specifications
@@ -1231,8 +1230,8 @@ struct LambdaCascadeProducer {
12311230 " Event acceptance is driven exclusively by LTP's selCollision (see "
12321231 " [CFG-LTP] above). To change event cuts, set the corresponding "
12331232 " cSel8Trig / cPileupReject / cTriggerTvxSel / etc. on this same task." ,
1234- static_cast <int >(cascCfg) .doSel8 , static_cast <int >(cascCfg) .doNoSameBunchPileUp , static_cast <int >(cascCfg) .INEL ,
1235- static_cast <double >(cascCfg) .maxVertexZ , static_cast <int >(cascCfg) .doTFBorderCut );
1233+ static_cast <int >(cascCfg.doSel8 ) , static_cast <int >(cascCfg.doNoSameBunchPileUp ) , static_cast <int >(cascCfg.INEL ) ,
1234+ static_cast <double >(cascCfg.maxVertexZ ) , static_cast <int >(cascCfg.doTFBorderCut ) );
12361235
12371236 // CCDB URL conflict check.
12381237 if (std::string (cUrlCCDB.value ) != std::string (cascCfg.ccdbUrl .value )) {
@@ -1294,7 +1293,7 @@ struct LambdaCascadeProducer {
12941293 const char * reason = " ok" ;
12951294 if (!lcorr_evsel::applyEventSelection<run>(col, cuts, cent, reason)) {
12961295 LOGF (debug, " [LTP] reject: %s (Vz=%.3f cent=%.2f)" ,
1297- reason, static_cast <double >(col) .posZ (), static_cast <double >(cent));
1296+ reason, static_cast <double >(col.posZ () ), static_cast <double >(cent));
12981297 return false ;
12991298 }
13001299
@@ -3217,7 +3216,7 @@ inline void connectLambdaGenBranches(TTree* t, LambdaGenBranches* b)
32173216}
32183217} // namespace lxicorr
32193218
3220- struct LambdaXiCorrelation {
3219+ struct LambdaCascadeCorrelation {
32213220
32223221 // --- Configurables ---
32233222 Configurable<float > maxY{" maxY" , 0.5 , " Max |y| for Lambda, Xi and Omega" };
@@ -3600,9 +3599,9 @@ struct LambdaXiCorrelation {
36003599 static_cast <int >(cVetoMode), static_cast <int >(cUsePrimaryLambdasOnly),
36013600 static_cast <int >(cPrimaryRequireTopo), static_cast <int >(cRequireTrueCascade), static_cast <int >(cItsTrackMode),
36023601 static_cast <int >(saveCascTree), static_cast <int >(saveLambdaTree),
3603- static_cast <int >(pairCfg) .cFillLamXi , static_cast <int >(pairCfg) .cFillLamOm , static_cast <int >(pairCfg) .cFillLamLam ,
3604- static_cast <int >(pairCfg) .cFillXiXi , static_cast <int >(pairCfg) .cFillOmOm , static_cast <int >(pairCfg) .cFillXiOm ,
3605- static_cast <int >(yieldCfg) .cFillEventYields ,
3602+ static_cast <int >(pairCfg.cFillLamXi ) , static_cast <int >(pairCfg.cFillLamOm ) , static_cast <int >(pairCfg.cFillLamLam ) ,
3603+ static_cast <int >(pairCfg.cFillXiXi ) , static_cast <int >(pairCfg.cFillOmOm ) , static_cast <int >(pairCfg.cFillXiOm ) ,
3604+ static_cast <int >(yieldCfg.cFillEventYields ) ,
36063605 static_cast <int >(doprocessXi), static_cast <int >(doprocessOmega),
36073606 static_cast <int >(doprocessMCRecoXi), static_cast <int >(doprocessMCRecoOmega),
36083607 static_cast <int >(doprocessAllPairs), static_cast <int >(doprocessYields),
@@ -4533,7 +4532,7 @@ struct LambdaXiCorrelation {
45334532 lambdasInThisEvent.size (),
45344533 countSpeciesEligible<false >(cascadesInThisEvent, flagsStart));
45354534 }
4536- PROCESS_SWITCH (LambdaXiCorrelation , processXi, " Λ–Ξ correlation" , true );
4535+ PROCESS_SWITCH (LambdaCascadeCorrelation , processXi, " Λ–Ξ correlation" , true );
45374536
45384537 void processOmega (LambdaCollisionsExt::iterator const & lambdacoll,
45394538 GoodLambdas const & /* lambdas*/ ,
@@ -4565,7 +4564,7 @@ struct LambdaXiCorrelation {
45654564 lambdasInThisEvent.size (),
45664565 countSpeciesEligible<true >(cascadesInThisEvent, flagsStart));
45674566 }
4568- PROCESS_SWITCH (LambdaXiCorrelation , processOmega, " Λ–Ω correlation" , false );
4567+ PROCESS_SWITCH (LambdaCascadeCorrelation , processOmega, " Λ–Ω correlation" , false );
45694568
45704569 // ---------------------------------------------------------------------------
45714570 // MC Reco-level with truth matching: Λ–Ξ
@@ -4601,7 +4600,7 @@ struct LambdaXiCorrelation {
46014600 lambdasInThisEvent.size (),
46024601 countSpeciesEligible<false >(cascadesInThisEvent, flagsStart));
46034602 }
4604- PROCESS_SWITCH (LambdaXiCorrelation , processMCRecoXi, " MC reco Λ–Ξ (truth-tagged tree)" , false );
4603+ PROCESS_SWITCH (LambdaCascadeCorrelation , processMCRecoXi, " MC reco Λ–Ξ (truth-tagged tree)" , false );
46054604
46064605 // ---------------------------------------------------------------------------
46074606 // MC Reco-level with truth matching: Λ–Ω
@@ -4637,7 +4636,7 @@ struct LambdaXiCorrelation {
46374636 lambdasInThisEvent.size (),
46384637 countSpeciesEligible<true >(cascadesInThisEvent, flagsStart));
46394638 }
4640- PROCESS_SWITCH (LambdaXiCorrelation , processMCRecoOmega, " MC reco Λ–Ω (truth-tagged tree)" , false );
4639+ PROCESS_SWITCH (LambdaCascadeCorrelation , processMCRecoOmega, " MC reco Λ–Ω (truth-tagged tree)" , false );
46414640
46424641 // ===========================================================================
46434642 // Same-species and cross-species pair loops (Λ-Λ, Ξ-Ξ, Ω-Ω, Ξ-Ω)
@@ -4848,7 +4847,7 @@ struct LambdaXiCorrelation {
48484847 analyzeOmegaOmegaPairs (cascadesInThisEvent, flagsStart, centVal);
48494848 analyzeXiOmegaPairs (cascadesInThisEvent, flagsStart, centVal);
48504849 }
4851- PROCESS_SWITCH (LambdaXiCorrelation , processAllPairs, " All same-/cross-species pair loops (Λ-Λ, Ξ-Ξ, Ω-Ω, Ξ-Ω)" , false );
4850+ PROCESS_SWITCH (LambdaCascadeCorrelation , processAllPairs, " All same-/cross-species pair loops (Λ-Λ, Ξ-Ξ, Ω-Ω, Ξ-Ω)" , false );
48524851
48534852 // ---------------------------------------------------------------------------
48544853 // processYields — fills the per-event multiplicity + ⟨pT⟩
@@ -4970,7 +4969,7 @@ struct LambdaXiCorrelation {
49704969 HIST (" Yields/OmegaPlus/hNvsPt2D" ),
49714970 nOmP, sOmP );
49724971 }
4973- PROCESS_SWITCH (LambdaXiCorrelation , processYields, " Per-event multiplicity + ⟨pT⟩ for each species" , true );
4972+ PROCESS_SWITCH (LambdaCascadeCorrelation , processYields, " Per-event multiplicity + ⟨pT⟩ for each species" , true );
49744973
49754974 // ---------------------------------------------------------------------------
49764975 // MC Gen-level: Λ–Ξ truth correlation (closure test)
@@ -5114,7 +5113,7 @@ struct LambdaXiCorrelation {
51145113 }
51155114 }
51165115 }
5117- PROCESS_SWITCH (LambdaXiCorrelation , processMCGenXi, " MC gen-level Λ–Ξ closure" , false );
5116+ PROCESS_SWITCH (LambdaCascadeCorrelation , processMCGenXi, " MC gen-level Λ–Ξ closure" , false );
51185117
51195118 // ---------------------------------------------------------------------------
51205119 // MC Gen-level: Λ–Ω truth correlation (closure test)
@@ -5226,7 +5225,7 @@ struct LambdaXiCorrelation {
52265225 }
52275226 }
52285227 }
5229- PROCESS_SWITCH (LambdaXiCorrelation , processMCGenOmega, " MC gen-level Λ–Ω closure" , false );
5228+ PROCESS_SWITCH (LambdaCascadeCorrelation , processMCGenOmega, " MC gen-level Λ–Ω closure" , false );
52305229};
52315230
52325231WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
@@ -5239,7 +5238,7 @@ WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
52395238 // CascadeCorrelations were removed entirely from this file.
52405239 adaptAnalysisTask<LambdaCascadeProducer>(cfgc),
52415240 adaptAnalysisTask<LambdaTracksExtProducer>(cfgc),
5242- adaptAnalysisTask<LambdaXiCorrelation >(cfgc)
5241+ adaptAnalysisTask<LambdaCascadeCorrelation >(cfgc)
52435242
52445243 };
52455244}
0 commit comments