38 int id = fastTrack.GetPrimaryTrack()->GetDynamicParticle()->GetDefinition()->GetPDGEncoding();
39 if (id<1000000 || id>1100000)
return true;
43 G4Material * mat = fastTrack.GetPrimaryTrack()->GetMaterial();
45 for (
unsigned int i=0;i<mat->GetNumberOfElements();++i){
46 if (mat->GetElement(i) &&
47 minA>mat->GetElement(i)->GetN()){
48 minA=mat->GetElement(i)->GetN();
51 if (fastTrack.GetPrimaryTrack()->GetVelocity()<0.15*std::pow(minA,-2./3.)*CLHEP::c_light)
return true;
62 G4SDManager *sdm = G4SDManager::GetSDMpointer();
63 G4VSensitiveDetector * vsd = sdm->FindSensitiveDetector(
m_fsSDname );
68 description <<
"DoIt: Could not cast the SD into an instance of TrackFasSimSD.";
69 G4Exception(
"StoppedParticleFastSim",
"MissingTrackFastSimSD", FatalException,
description);
74 G4cout <<
"StoppedParticleFastSim::DoIt INFO Could not get TrackFastSimSD sensitive detector. If you are not writing track records this is expected." << G4endl;
78 const int id = fastTrack.GetPrimaryTrack()->GetDynamicParticle()->GetDefinition()->GetPDGEncoding();
83 m_fsSD->WriteTrack( fastTrack.GetPrimaryTrack() ,
false ,
true );
85 fastStep.KillPrimaryTrack();
StoppedParticleFastSim(const std::string &name, G4Region *region, const std::string &fsSDname)
G4bool IsApplicable(const G4ParticleDefinition &) override final
void DoIt(const G4FastTrack &, G4FastStep &) override final
virtual G4bool ModelTrigger(const G4FastTrack &) override final