8 #include "CLHEP/Random/RandFlat.h"
9 #include "CLHEP/Random/RandomEngine.h"
13 #include "G4TrackVector.hh"
22 return StatusCode::SUCCESS;
27 return StatusCode::SUCCESS;
33 const G4Track* G4PrimaryTrack = fastTrack.GetPrimaryTrack();
39 std::vector<std::map<std::string, double>> secKinematicsMapVect;
42 auto secTrackCont = std::make_unique<G4TrackVector>();
45 double punchThroughClassifierRand = CLHEP::RandFlat::shoot(
rng);
51 if( punchThroughProbability > punchThroughClassifierRand){
52 secKinematicsMapVect =
m_PunchThroughG4Tool->computePunchThroughParticles(fastTrack,
rng, punchThroughProbability, punchThroughClassifierRand);
55 if(secKinematicsMapVect.size()!=0){
57 m_PunchThroughG4Tool->createAllSecondaryTracks(ptable, fastStep, *G4PrimaryTrack, secKinematicsMapVect, *secTrackCont, caloMSVars);