#include <BgsGentleGenocide.hh>
Inheritance diagram for BgsGentleGenocide:
Public Member Functions | |
virtual G4VParticleChange * | AlongStepDoIt (const G4Track &track, const G4Step &step) |
virtual G4VParticleChange * | AlongStepDoIt (const G4Track &track, const G4Step &step) |
virtual G4double | AlongStepGetPhysicalInteractionLength (const G4Track &, G4double previousStepSize, G4double currentMinimumStep, G4double ¤tSafety, G4GPILSelection *selection) |
virtual G4double | AlongStepGetPhysicalInteractionLength (const G4Track &, G4double previousStepSize, G4double currentMinimumStep, G4double ¤tSafety, G4GPILSelection *selection) |
virtual G4VParticleChange * | AtRestDoIt (const G4Track &track, const G4Step &step) |
virtual G4VParticleChange * | AtRestDoIt (const G4Track &track, const G4Step &step) |
virtual G4double | AtRestGetPhysicalInteractionLength (const G4Track &track, G4ForceCondition *force) |
virtual G4double | AtRestGetPhysicalInteractionLength (const G4Track &track, G4ForceCondition *force) |
BgsGentleGenocide (G4double theMaxKineticEnergy, G4int theMinNumberSteps, const G4String &name="BgsGentleGenocide", G4ProcessType type=fUserDefined) | |
BgsGentleGenocide (G4double theMaxKineticEnergy, G4int theMinNumberSteps, const G4String &name="BgsGentleGenocide", G4ProcessType type=fUserDefined) | |
virtual G4VParticleChange * | PostStepDoIt (const G4Track &track, const G4Step &step) |
virtual G4VParticleChange * | PostStepDoIt (const G4Track &track, const G4Step &step) |
virtual G4double | PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) |
virtual G4double | PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) |
virtual | ~BgsGentleGenocide () |
virtual | ~BgsGentleGenocide () |
Protected Attributes | |
G4double | maxKineticEnergy |
G4int | minNumberSteps |
|
00036 : BgsGenocide( name, type ), 00037 maxKineticEnergy(theMaxKineticEnergy), 00038 minNumberSteps(theMinNumberSteps) 00039 {;}
|
|
00045 {;}
|
|
|
|
|
|
00058 { return 0; }
|
|
00058 { return 0; }
|
|
00054 { return -1.0; }
|
|
00054 { return -1.0; }
|
|
00067 { return 0; }
|
|
00067 { return 0; }
|
|
00063 { return -1.0; }
|
|
00063 { return -1.0; }
|
|
|
|
00036 {
00037 pParticleChange->Initialize(track);
00038
00039 pParticleChange->ProposeTrackStatus( fStopAndKill );
00040 pParticleChange->SetNumberOfSecondaries( 0 );
00041 pParticleChange->ProposeLocalEnergyDeposit( 0 );
00042 ClearNumberOfInteractionLengthLeft();
00043
00044 return pParticleChange;
00045 }
|
|
Reimplemented from BgsGenocide. |
|
Reimplemented from BgsGenocide. 00055 { 00056 *condition = NotForced; 00057 00058 // 00059 // Do nothing if we haven't reached the minimum number of steps 00060 // 00061 if (track.GetCurrentStepNumber() < minNumberSteps) return DBL_MAX; 00062 00063 // 00064 // Do nothing if we are above the threshold kinetic energy 00065 // 00066 const G4DynamicParticle *particle = track.GetDynamicParticle(); 00067 00068 if (particle->GetKineticEnergy() > maxKineticEnergy) return DBL_MAX; 00069 00070 // 00071 // Die! 00072 // 00073 // const G4ThreeVector &pos = track.GetPosition(); 00074 00075 const G4VProcess *creator = track.GetCreatorProcess(); 00076 G4String creatorProcessName = "(none?)"; 00077 if (creator) creatorProcessName = creator->GetProcessName(); 00078 00079 /* 00080 G4cout << "BgsGentleGenocide: rogue " 00081 << particle->GetDefinition()->GetParticleName() 00082 << " terminated, created by " 00083 << creatorProcessName << G4endl; 00084 00085 G4cout << " KE = " 00086 << particle->GetKineticEnergy()/keV << " keV, " 00087 << " global coords (cm): (" 00088 << pos.x()/cm << "," 00089 << pos.y()/cm << "," 00090 << pos.z()/cm << ")" << G4endl; 00091 */ 00092 00093 *condition = NotForced; 00094 return 0; 00095 }
|
|
|
|
|