8 #include "CLHEP/Random/RandFlat.h"
12 #include "G4TrackVector.hh"
21 return StatusCode::SUCCESS;
26 return StatusCode::SUCCESS;
32 const G4Track* G4PrimaryTrack = fastTrack.GetPrimaryTrack();
38 std::vector<std::map<std::string, double>> secKinematicsMapVect;
41 auto secTrackCont = std::make_unique<G4TrackVector>();
44 double punchThroughClassifierRand = CLHEP::RandFlat::shoot(*rngWrapper);
50 if( punchThroughProbability > punchThroughClassifierRand){
51 secKinematicsMapVect =
m_PunchThroughG4Tool->computePunchThroughParticles(fastTrack, *rngWrapper, punchThroughProbability, punchThroughClassifierRand);
54 if(secKinematicsMapVect.size()!=0){
56 m_PunchThroughG4Tool->createAllSecondaryTracks(ptable, fastStep, *G4PrimaryTrack, secKinematicsMapVect, *secTrackCont, caloMSVars);