From f6ccaff945b9a551e7b62d68f3ebaf908e28288a Mon Sep 17 00:00:00 2001 From: shahoian Date: Sat, 15 Nov 2025 01:27:48 +0100 Subject: [PATCH] Allow to SVertexer to use global tracks only (e.g. for online mode) --- .../GlobalTrackingWorkflow/src/SecondaryVertexingSpec.cxx | 2 +- Detectors/Vertexing/src/SVertexer.cxx | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Detectors/GlobalTrackingWorkflow/src/SecondaryVertexingSpec.cxx b/Detectors/GlobalTrackingWorkflow/src/SecondaryVertexingSpec.cxx index 043fe0e659ba6..ea566f15a0b59 100644 --- a/Detectors/GlobalTrackingWorkflow/src/SecondaryVertexingSpec.cxx +++ b/Detectors/GlobalTrackingWorkflow/src/SecondaryVertexingSpec.cxx @@ -255,7 +255,7 @@ DataProcessorSpec getSecondaryVertexingSpec(GTrackID::mask_t src, bool enableCas src |= (srcClus = GTrackID::getSourceMask(GTrackID::ITS)); } if (GTrackID::includesDet(o2::detectors::DetID::TPC, src) && !src[GTrackID::TPC]) { - throw std::runtime_error("Tracks involving TPC were requested w/o requesting TPC-only tracks"); + LOGP(warn, "Tracks involving TPC were requested w/o requesting TPC-only tracks, simplified selection will be applied"); } if (src[GTrackID::TPC]) { srcClus |= GTrackID::getSourceMask(GTrackID::TPC); diff --git a/Detectors/Vertexing/src/SVertexer.cxx b/Detectors/Vertexing/src/SVertexer.cxx index 1d48bcceb0097..d9206fe54e068 100644 --- a/Detectors/Vertexing/src/SVertexer.cxx +++ b/Detectors/Vertexing/src/SVertexer.cxx @@ -269,6 +269,9 @@ void SVertexer::updateTimeDependentParams() if (!updatedOnce) { updatedOnce = true; mSVParams = &SVertexerParams::Instance(); + if (mSVParams->mExcludeTPCtracks && !mRecoCont->isTrackSourceLoaded(GIndex::TPC)) { + LOGP(fatal, "TPC tracks requested but not provided"); + } // precalculated selection cuts mMinR2ToMeanVertex = mSVParams->minRToMeanVertex * mSVParams->minRToMeanVertex; mMaxR2ToMeanVertexCascV0 = mSVParams->maxRToMeanVertexCascV0 * mSVParams->maxRToMeanVertexCascV0; @@ -543,8 +546,7 @@ void SVertexer::buildT2V(const o2::globaltracking::RecoContainer& recoData) // a } continue; } - - if (!hasTPC && nITSclu < mSVParams->mITSSAminNclu && (!shortOBITSOnlyTrack || mSVParams->mRejectITSonlyOBtrack)) { + if ((isTPCloaded && !hasTPC) && (isITSloaded && (nITSclu < mSVParams->mITSSAminNclu && (!shortOBITSOnlyTrack || mSVParams->mRejectITSonlyOBtrack)))) { continue; // reject short ITS-only }