diff --git a/DDG4/include/DDG4/Geant4UserLimits.h b/DDG4/include/DDG4/Geant4UserLimits.h index 6776c174571ddd1c86778af40ec4a07749aada1c..80286fca2c6d45bc1c8e0bf1dee567af119b0267 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 63cba69bbff5d8e3f2ad98533cf2475480c19391..54e6c060266f1600978552e73ce3797c28fa0170 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