10#include "G4SDManager.hh"
11#include "G4VSensitiveDetector.hh"
12#include "G4EventManager.hh"
18 : G4VFastSimulationModel(name, region)
33 G4SDManager *sdm = G4SDManager::GetSDMpointer();
34 G4VSensitiveDetector * vsd = sdm->FindSensitiveDetector(
m_fsSDname );
36 G4cout <<
"NeutronFastSim::IsApplicable WARNING Could not get TrackFastSimSD sensitive detector. If you are not writing track records this is expected." << G4endl;
40 G4cout <<
"NeutronFastSim::IsApplicable WARNING Could not cast the SD. If you are not writing track records this is expected." << G4endl;
50 if (fastTrack.GetPrimaryTrack()->GetDefinition() == G4Neutron::NeutronDefinition() ){
51 return (
m_Energy<0?
true:fastTrack.GetPrimaryTrack()->GetKineticEnergy()<
m_Energy) || fastTrack.GetPrimaryTrack()->GetGlobalTime()>
m_timeCut;
66 if (
m_fsSD)
m_fsSD->WriteTrack( fastTrack.GetPrimaryTrack() ,
false ,
false );
67 fastStep.KillPrimaryTrack();
This class is attached to G4Event objects as UserInformation.
HepMC::ConstGenParticlePtr GetCurrentPrimaryGenParticle() const
return a pointer to the HepMC::GenParticle used to create the current G4PrimaryParticle.
virtual G4bool ModelTrigger(const G4FastTrack &) override final
void DoIt(const G4FastTrack &, G4FastStep &) override final
G4bool IsApplicable(const G4ParticleDefinition &) override final
NeutronFastSim(const std::string &name, G4Region *region, const std::string &fsSDname, const double etaCut, const double timeCut)
bool is_simulation_particle(const T &p)
Method to establish if a particle (or barcode) was created during the simulation (TODO update to be s...
const GenParticle * ConstGenParticlePtr