From d33d26c444ba84b97d15f02577eeee2f0fb2a87b Mon Sep 17 00:00:00 2001 From: jesgum Date: Tue, 13 Oct 2026 13:03:52 +0200 Subject: [PATCH] Usa track updates instead of mc info for causality check in a3 strangeness --- .../TableProducer/alice3strangenessFinder.cxx | 56 ++----------------- 1 file changed, 5 insertions(+), 51 deletions(-) diff --git a/ALICE3/TableProducer/alice3strangenessFinder.cxx b/ALICE3/TableProducer/alice3strangenessFinder.cxx index 9725d9506cf..8d8216c4c5d 100644 --- a/ALICE3/TableProducer/alice3strangenessFinder.cxx +++ b/ALICE3/TableProducer/alice3strangenessFinder.cxx @@ -21,7 +21,6 @@ #include "PWGLF/DataModel/LFStrangenessTables.h" -#include "ALICE3/Core/GeometryContainer.h" #include "ALICE3/Core/TrackUtilities.h" #include "ALICE3/DataModel/OTFPIDTrk.h" #include "ALICE3/DataModel/OTFRICH.h" @@ -32,7 +31,6 @@ #include "Common/Core/trackUtilities.h" #include "Common/DataModel/TrackSelectionTables.h" -#include #include #include #include @@ -74,9 +72,6 @@ struct Alice3strangenessFinder { SliceCache cache; HistogramRegistry histos{"histos", {}, OutputObjHandlingPolicy::AnalysisObject}; - Service ccdb{}; - o2::fastsim::GeometryContainer geoContainer; - std::vector> trackingLayers; Produces v0CandidateIndices; // contains V0 candidate indices Produces v0CandidateCores; // contains V0 candidate core information @@ -151,7 +146,6 @@ struct Alice3strangenessFinder { o2::vertexing::DCAFitterN<2> fitter; Service pdgDB{}; static constexpr float ToMicrons = 1e+4; - static constexpr int LutConfig = 0; // todo // partitions for v0/casc dau tracks Partition positiveSecondaryTracksACTS = @@ -199,7 +193,7 @@ struct Alice3strangenessFinder { float dcaToPV{}; }; - void init(InitContext& initContext) + void init(InitContext&) { // Initialization code here fitter.setBz(magneticField); @@ -280,30 +274,6 @@ struct Alice3strangenessFinder { histos.add("Generated/hGeneratedAntiOmega", "hGeneratedAntiOmega", kTH2D, {{axisPt}, {axisEta}}); } - if (doprocessFindV0CandidateOTF) { - ccdb->setURL("http://alice-ccdb.cern.ch"); - ccdb->setTimestamp(-1); - geoContainer.setCcdbManager(ccdb.operator->()); - geoContainer.init(initContext); - const int nGeometries = geoContainer.getNumberOfConfigurations(); - trackingLayers.resize(nGeometries); - - for (int icfg = 0; icfg < nGeometries; ++icfg) { - auto globalConfiguration = geoContainer.getConfigurations(icfg); - - for (const auto& [outerKey, innerMap] : globalConfiguration) { - if (outerKey.empty() || outerKey[0] != 'B') { - continue; - } - - auto it = innerMap.find("r"); - if (it != innerMap.end()) { - trackingLayers[icfg].push_back(std::stof(it->second)); - } - } - } - } - if (buildCascade) { histos.add("CascadeBuilding/hDcaBetweenDaus", "hDcaBetweenDaus", kTH1D, {{axisDCA}}); histos.add("CascadeBuilding/hXiMass", "", kTH1D, {axisXiMass}); @@ -374,19 +344,6 @@ struct Alice3strangenessFinder { return returnValue; } - template - [[nodiscard]] float getFirstLayerHitRadius(const TTrackType& track, const std::vector& layers) - { - const float trueRadius = std::hypot(track.x(), track.y()); - for (const float layerRadius : layers) { - if (layerRadius >= trueRadius) { - return layerRadius; - } - } - static constexpr float OutsideALICE3 = 100.f; - return OutsideALICE3; - } - template bool buildDecayCandidateTwoBody(TTrackType const& t0, TTrackType const& t1, std::array vtx, Candidate& thisCandidate) { @@ -672,15 +629,12 @@ struct Alice3strangenessFinder { const float radiusV0 = std::hypot(v0Cand.posSV[0], v0Cand.posSV[1]); const float radiusCasc = std::hypot(cascCand.posSV[0], cascCand.posSV[1]); - const float posCausalityRadius = getFirstLayerHitRadius(posTrack, trackingLayers[LutConfig]); - const float negCausalityRadius = getFirstLayerHitRadius(negTrack, trackingLayers[LutConfig]); - const float bachCausalityRadius = getFirstLayerHitRadius(bachTrack, trackingLayers[LutConfig]); - - if (posCausalityRadius < radiusV0) { + // tracks without update information (IU < 0) are not checked + if (posTrack.trackIU() > 0.f && posTrack.trackIU() < radiusV0) { continue; // positive track hit a layer before v0 decayed } - if (negCausalityRadius < radiusV0) { + if (negTrack.trackIU() > 0.f && negTrack.trackIU() < radiusV0) { continue; // negative track hit a layer before v0 decayed } @@ -688,7 +642,7 @@ struct Alice3strangenessFinder { continue; // v0 decayed before cascade } - if (bachCausalityRadius < radiusCasc) { + if (bachTrack.trackIU() > 0.f && bachTrack.trackIU() < radiusCasc) { continue; // bachelor track hit a layer before v0 decayed }