From 7fee829e406e473332a18c7fff5a8c16b692c3f8 Mon Sep 17 00:00:00 2001
From: Markus Frank <Markus.Frank@cern.ch>
Date: Wed, 22 Mar 2023 18:23:16 +0100
Subject: [PATCH] Remove by default debug printing for user limits (too
 verbose)

---
 DDG4/include/DDG4/Geant4UserLimits.h |  2 ++
 DDG4/src/Geant4UserLimits.cpp        | 26 +++++++++++++++++++++-----
 2 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/DDG4/include/DDG4/Geant4UserLimits.h b/DDG4/include/DDG4/Geant4UserLimits.h
index 6776c1745..80286fca2 100644
--- a/DDG4/include/DDG4/Geant4UserLimits.h
+++ b/DDG4/include/DDG4/Geant4UserLimits.h
@@ -98,6 +98,8 @@ namespace dd4hep {
       virtual void SetUserMaxTime(G4double utimeMax);
       virtual void SetUserMinEkine(G4double uekinMin);
       virtual void SetUserMinRange(G4double urangMin);
+      /// Allow for debugging user limits (very verbose)
+      static bool enable_debug(bool value);
     };
   }
 }
diff --git a/DDG4/src/Geant4UserLimits.cpp b/DDG4/src/Geant4UserLimits.cpp
index 63cba69bb..54e6c0602 100644
--- a/DDG4/src/Geant4UserLimits.cpp
+++ b/DDG4/src/Geant4UserLimits.cpp
@@ -30,19 +30,34 @@
 using namespace std;
 using namespace dd4hep::sim;
 
+namespace  {
+  bool user_limit_debug = false;
+}
+
+      /// Allow for debugging user limits (very verbose)
+bool Geant4UserLimits::enable_debug(bool value)   {
+  bool tmp = user_limit_debug;
+  user_limit_debug = value;
+  return tmp;
+}
+
 /// Access value according to track
 double Geant4UserLimits::Handler::value(const G4Track& track) const    {
   auto* def = track.GetParticleDefinition();
   if ( !particleLimits.empty() )  {
     auto i = particleLimits.find(track.GetDefinition());
     if ( i != particleLimits.end() )  {
-      dd4hep::printout(dd4hep::INFO,"Geant4UserLimits", "Apply explicit limit %f to track: %s",
-		       def->GetParticleName().c_str());
+      if ( user_limit_debug )   {
+	dd4hep::printout(dd4hep::INFO,"Geant4UserLimits", "Apply explicit limit %f to track: %s",
+			 def->GetParticleName().c_str());
+      }
       return (*i).second;
     }
   }
-  dd4hep::printout(dd4hep::INFO,"Geant4UserLimits", "Apply default limit %f to track: %s",
-		   def->GetParticleName().c_str());
+  if ( user_limit_debug )   {
+    dd4hep::printout(dd4hep::INFO,"Geant4UserLimits", "Apply default limit %f to track: %s",
+		     def->GetParticleName().c_str());
+  }
   return defaultValue;
 }
 
@@ -53,8 +68,9 @@ void Geant4UserLimits::Handler::set(const string& particles, double val)   {
     return;
   }
   auto defs = Geant4ParticleHandle::g4DefinitionsRegEx(particles);
-  for( auto* d : defs )
+  for( auto* d : defs )  {
     particleLimits[d] = val;
+  }
 }
 
 /// Initializing Constructor
-- 
GitLab