From 264aaa26a6bedd5fd885ad94cb60f666b2ceaa24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Tiek=C3=B6tter?= Date: Wed, 4 Mar 2026 20:15:55 +0100 Subject: [PATCH 1/4] Pass number of silicon hits to the track and store it. --- ALICE3/TableProducer/OTF/onTheFlyTracker.cxx | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx b/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx index 14ab69f0dab..e18bb04d0d6 100644 --- a/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx +++ b/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx @@ -1525,14 +1525,16 @@ struct OnTheFlyTracker { } bool reconstructed = true; + int numHits = 0; if (enablePrimarySmearing && !fastPrimaryTrackerSettings.fastTrackPrimaries) { reconstructed = mSmearer[icfg]->smearTrack(trackParCov, mcParticle.pdgCode(), dNdEta); + numHits = fastTrackerSettings.minSiliconHits; } else if (fastPrimaryTrackerSettings.fastTrackPrimaries) { o2::track::TrackParCov o2Track; o2::upgrade::convertMCParticleToO2Track(mcParticle, o2Track, pdgDB); o2Track.setPID(pdgCodeToPID(mcParticle.pdgCode())); - const int nHits = fastTracker[icfg]->FastTrack(o2Track, trackParCov, dNdEta); - if (nHits < fastPrimaryTrackerSettings.minSiliconHits) { + numHits = fastTracker[icfg]->FastTrack(o2Track, trackParCov, dNdEta); + if (numHits < fastPrimaryTrackerSettings.minSiliconHits) { reconstructed = false; } } @@ -1567,7 +1569,7 @@ struct OnTheFlyTracker { // populate vector with track if we reco-ed it if (reconstructed) { - tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter}); + tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter, false, 0, numHits, 0}); } else { ghostTracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter}); } @@ -1927,15 +1929,17 @@ struct OnTheFlyTracker { const float time = (eventCollisionTimeNS + gRandom->Gaus(0., timeResolutionNs)) * nsToMus; bool reconstructed = false; + int numHits = 0; if (enablePrimarySmearing && mcParticle.isPrimary()) { o2::upgrade::convertMCParticleToO2Track(mcParticle, trackParCov, pdgDB); reconstructed = mSmearer[icfg]->smearTrack(trackParCov, mcParticle.pdgCode(), dNdEta); + numHits = fastTrackerSettings.minSiliconHits; } else if (enableSecondarySmearing) { o2::track::TrackParCov perfectTrackParCov; o2::upgrade::convertMCParticleToO2Track(mcParticle, perfectTrackParCov, pdgDB); perfectTrackParCov.setPID(pdgCodeToPID(mcParticle.pdgCode())); - const int nHits = fastTracker[icfg]->FastTrack(perfectTrackParCov, trackParCov, dNdEta); - if (nHits < fastTrackerSettings.minSiliconHits) { + numHits = fastTracker[icfg]->FastTrack(perfectTrackParCov, trackParCov, dNdEta); + if (numHits < fastTrackerSettings.minSiliconHits) { reconstructed = false; } else { reconstructed = true; @@ -1965,7 +1969,7 @@ struct OnTheFlyTracker { } if (reconstructed) { - tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter}); + tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter, false, 0, numHits, 0}); } else { ghostTracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter}); } From 18a141b0981ead8c31b43e419563bf8de06fcdfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Thu, 5 Mar 2026 09:43:27 +0100 Subject: [PATCH 2/4] Rename numHits to nHits in onTheFlyTracker.cxx --- ALICE3/TableProducer/OTF/onTheFlyTracker.cxx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx b/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx index e18bb04d0d6..5873eda8b87 100644 --- a/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx +++ b/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx @@ -1525,16 +1525,16 @@ struct OnTheFlyTracker { } bool reconstructed = true; - int numHits = 0; + int nHits = 0; if (enablePrimarySmearing && !fastPrimaryTrackerSettings.fastTrackPrimaries) { reconstructed = mSmearer[icfg]->smearTrack(trackParCov, mcParticle.pdgCode(), dNdEta); - numHits = fastTrackerSettings.minSiliconHits; + nHits = fastTrackerSettings.minSiliconHits; } else if (fastPrimaryTrackerSettings.fastTrackPrimaries) { o2::track::TrackParCov o2Track; o2::upgrade::convertMCParticleToO2Track(mcParticle, o2Track, pdgDB); o2Track.setPID(pdgCodeToPID(mcParticle.pdgCode())); - numHits = fastTracker[icfg]->FastTrack(o2Track, trackParCov, dNdEta); - if (numHits < fastPrimaryTrackerSettings.minSiliconHits) { + nHits = fastTracker[icfg]->FastTrack(o2Track, trackParCov, dNdEta); + if (nHits < fastPrimaryTrackerSettings.minSiliconHits) { reconstructed = false; } } @@ -1569,7 +1569,7 @@ struct OnTheFlyTracker { // populate vector with track if we reco-ed it if (reconstructed) { - tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter, false, 0, numHits, 0}); + tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter, false, 0, nHits}); } else { ghostTracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter}); } @@ -1929,17 +1929,17 @@ struct OnTheFlyTracker { const float time = (eventCollisionTimeNS + gRandom->Gaus(0., timeResolutionNs)) * nsToMus; bool reconstructed = false; - int numHits = 0; + int nHits = 0; if (enablePrimarySmearing && mcParticle.isPrimary()) { o2::upgrade::convertMCParticleToO2Track(mcParticle, trackParCov, pdgDB); reconstructed = mSmearer[icfg]->smearTrack(trackParCov, mcParticle.pdgCode(), dNdEta); - numHits = fastTrackerSettings.minSiliconHits; + nHits = fastTrackerSettings.minSiliconHits; } else if (enableSecondarySmearing) { o2::track::TrackParCov perfectTrackParCov; o2::upgrade::convertMCParticleToO2Track(mcParticle, perfectTrackParCov, pdgDB); perfectTrackParCov.setPID(pdgCodeToPID(mcParticle.pdgCode())); - numHits = fastTracker[icfg]->FastTrack(perfectTrackParCov, trackParCov, dNdEta); - if (numHits < fastTrackerSettings.minSiliconHits) { + nHits = fastTracker[icfg]->FastTrack(perfectTrackParCov, trackParCov, dNdEta); + if (nHits < fastTrackerSettings.minSiliconHits) { reconstructed = false; } else { reconstructed = true; @@ -1969,7 +1969,7 @@ struct OnTheFlyTracker { } if (reconstructed) { - tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter, false, 0, numHits, 0}); + tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter, false, 0, nHits}); } else { ghostTracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter}); } From 2478cfc9d09272c919325697545f7391aecd5f8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Thu, 5 Mar 2026 09:58:55 +0100 Subject: [PATCH 3/4] Rename nHits to nTrkHits for clarity --- ALICE3/TableProducer/OTF/onTheFlyTracker.cxx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx b/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx index 5873eda8b87..c2b14a5c6f4 100644 --- a/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx +++ b/ALICE3/TableProducer/OTF/onTheFlyTracker.cxx @@ -1525,16 +1525,16 @@ struct OnTheFlyTracker { } bool reconstructed = true; - int nHits = 0; + int nTrkHits = 0; if (enablePrimarySmearing && !fastPrimaryTrackerSettings.fastTrackPrimaries) { reconstructed = mSmearer[icfg]->smearTrack(trackParCov, mcParticle.pdgCode(), dNdEta); - nHits = fastTrackerSettings.minSiliconHits; + nTrkHits = fastTrackerSettings.minSiliconHits; } else if (fastPrimaryTrackerSettings.fastTrackPrimaries) { o2::track::TrackParCov o2Track; o2::upgrade::convertMCParticleToO2Track(mcParticle, o2Track, pdgDB); o2Track.setPID(pdgCodeToPID(mcParticle.pdgCode())); - nHits = fastTracker[icfg]->FastTrack(o2Track, trackParCov, dNdEta); - if (nHits < fastPrimaryTrackerSettings.minSiliconHits) { + nTrkHits = fastTracker[icfg]->FastTrack(o2Track, trackParCov, dNdEta); + if (nTrkHits < fastPrimaryTrackerSettings.minSiliconHits) { reconstructed = false; } } @@ -1569,7 +1569,7 @@ struct OnTheFlyTracker { // populate vector with track if we reco-ed it if (reconstructed) { - tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter, false, 0, nHits}); + tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter, false, 0, nTrkHits}); } else { ghostTracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter}); } @@ -1929,17 +1929,17 @@ struct OnTheFlyTracker { const float time = (eventCollisionTimeNS + gRandom->Gaus(0., timeResolutionNs)) * nsToMus; bool reconstructed = false; - int nHits = 0; + int nTrkHits = 0; if (enablePrimarySmearing && mcParticle.isPrimary()) { o2::upgrade::convertMCParticleToO2Track(mcParticle, trackParCov, pdgDB); reconstructed = mSmearer[icfg]->smearTrack(trackParCov, mcParticle.pdgCode(), dNdEta); - nHits = fastTrackerSettings.minSiliconHits; + nTrkHits = fastTrackerSettings.minSiliconHits; } else if (enableSecondarySmearing) { o2::track::TrackParCov perfectTrackParCov; o2::upgrade::convertMCParticleToO2Track(mcParticle, perfectTrackParCov, pdgDB); perfectTrackParCov.setPID(pdgCodeToPID(mcParticle.pdgCode())); - nHits = fastTracker[icfg]->FastTrack(perfectTrackParCov, trackParCov, dNdEta); - if (nHits < fastTrackerSettings.minSiliconHits) { + nTrkHits = fastTracker[icfg]->FastTrack(perfectTrackParCov, trackParCov, dNdEta); + if (nTrkHits < fastTrackerSettings.minSiliconHits) { reconstructed = false; } else { reconstructed = true; @@ -1969,7 +1969,7 @@ struct OnTheFlyTracker { } if (reconstructed) { - tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter, false, 0, nHits}); + tracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter, false, 0, nTrkHits}); } else { ghostTracksAlice3.push_back(TrackAlice3{trackParCov, mcParticle.globalIndex(), time, timeResolutionUs, isDecayDaughter}); } From f7a12a5c62ea263223ae2e9a545204771d0156e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Tiek=C3=B6tter?= Date: Thu, 5 Mar 2026 12:27:56 +0100 Subject: [PATCH 4/4] Trigger Build