diff --git a/DDG4/plugins/Geant4TCUserParticleHandler.cpp b/DDG4/plugins/Geant4TCUserParticleHandler.cpp index c7e3400ad5b83fe864aea694e403403d4ed50d0c..f32a73fa994b21fe2bc9e69101f555437be766d6 100644 --- a/DDG4/plugins/Geant4TCUserParticleHandler.cpp +++ b/DDG4/plugins/Geant4TCUserParticleHandler.cpp @@ -102,13 +102,18 @@ void Geant4TCUserParticleHandler::end(const G4Track* /* track */, Particle& p) bool ends_in_trk_vol = ( r_end <= m_rTracker && z_end <= m_zTracker ) ; // created and ended in calo - if( !starts_in_trk_vol && !ends_in_trk_vol ){ - p.reason = 0; - return ; + if( !starts_in_trk_vol ) { + + if( !ends_in_trk_vol ){ + p.reason = 0; + } + //fg: dont keep backscatter that did not create a tracker hit + else if( !( p.reason & G4PARTICLE_CREATED_TRACKER_HIT ) ) + p.reason = 0; } + + return ; - //fg: backscatter ?? - // if( !starts_in_trk_vol && ends_in_trk_vol ){ keep ? } } /// Post-event action callback