From bfa47da9da93372fb7f42c35d0f79d44a5659b76 Mon Sep 17 00:00:00 2001 From: altsybee Date: Tue, 10 Feb 2026 14:37:37 +0100 Subject: [PATCH 1/3] suppress MF lookup errors from G4 in MagneticFieldWrapper.cpp --- Examples/Algorithms/Geant4/src/MagneticFieldWrapper.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Examples/Algorithms/Geant4/src/MagneticFieldWrapper.cpp b/Examples/Algorithms/Geant4/src/MagneticFieldWrapper.cpp index 3963e57092d..9fe5d4ec3dc 100644 --- a/Examples/Algorithms/Geant4/src/MagneticFieldWrapper.cpp +++ b/Examples/Algorithms/Geant4/src/MagneticFieldWrapper.cpp @@ -37,7 +37,11 @@ void MagneticFieldWrapper::GetFieldValue(const G4double Point[4], convertLength * Point[2]}, bCache); if (!fieldRes.ok()) { - ACTS_ERROR("Field lookup error: " << fieldRes.error()); + if (fabs(Point[0]) < 2000 && fabs(Point[1]) < 2000 && fabs(Point[2]) < 5000) + ACTS_ERROR("Field lookup error: " << fieldRes.error() + << convertLength * Point[0] << " " + << convertLength * Point[1] << " " + << convertLength * Point[2]); return; } // Get the field now From 8d33b8a45a7061a9977b0043174346c016e33646 Mon Sep 17 00:00:00 2001 From: altsybee Date: Tue, 10 Feb 2026 14:41:36 +0100 Subject: [PATCH 2/3] suppress printouts for errors in GdmlDetectorConstruction.cpp --- .../Detectors/Geant4Detector/src/GdmlDetectorConstruction.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Examples/Detectors/Geant4Detector/src/GdmlDetectorConstruction.cpp b/Examples/Detectors/Geant4Detector/src/GdmlDetectorConstruction.cpp index b617cf687b6..08ba3418e7c 100644 --- a/Examples/Detectors/Geant4Detector/src/GdmlDetectorConstruction.cpp +++ b/Examples/Detectors/Geant4Detector/src/GdmlDetectorConstruction.cpp @@ -27,7 +27,7 @@ G4VPhysicalVolume* GdmlDetectorConstruction::Construct() { if (m_world == nullptr) { G4GDMLParser parser; // TODO how to handle errors - parser.Read(m_path); + parser.Read(m_path, false); // IA: // <- validation OFF m_world = parser.GetWorldVolume(); // Create regions From 913c4e90a59a5c3e1c5feff2c82b6c8af574ca1b Mon Sep 17 00:00:00 2001 From: altsybee Date: Tue, 10 Feb 2026 14:51:04 +0100 Subject: [PATCH 3/3] bypass problem with fake definition in TrackTruthMatcher A workaround for Geant4, to avoid a problem with loopers at low rapidities, e.g. when for a track eta, say, 0.2 we can have 70 hits in G4 (a looper), but ACTS sees the first segment (11 measurements), and the ratio nMeas/nHts <0.5 => ACTS decides that this particle is not properly reconstructed => doesn't take it in the efficiency calc. --- .../ActsExamples/TruthTracking/TrackTruthMatcher.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Examples/Algorithms/TruthTracking/ActsExamples/TruthTracking/TrackTruthMatcher.cpp b/Examples/Algorithms/TruthTracking/ActsExamples/TruthTracking/TrackTruthMatcher.cpp index 5366aadf1af..4c70258dc25 100644 --- a/Examples/Algorithms/TruthTracking/ActsExamples/TruthTracking/TrackTruthMatcher.cpp +++ b/Examples/Algorithms/TruthTracking/ActsExamples/TruthTracking/TrackTruthMatcher.cpp @@ -111,9 +111,8 @@ ActsExamples::ProcessCode TrackTruthMatcher::execute( } const bool truthMatched = static_cast(nMajorityHits) / - (abs(eta < 1.5 ? (nParticleTruthHits > 11 ? 11 : nParticleTruthHits) - : nParticleTruthHits)) >= - m_cfg.matchingRatio; + (abs(eta) < 1.5 ? (nParticleTruthHits > 13 ? 13 : nParticleTruthHits) + : nParticleTruthHits) >= m_cfg.matchingRatio; // ### IA: ACTS_DEBUG("nMajorityHits="