BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
Dynamic user limits for a volume that changed based on the parameter turnstaken in BDSGlobalConstants(). More...
#include <BDSTerminatorUserLimits.hh>
Public Member Functions | |
BDSTerminatorUserLimits (G4double ustepMax=std::numeric_limits< double >::max(), G4double utrakMax=std::numeric_limits< double >::max(), G4double utimeMax=std::numeric_limits< double >::max(), G4double uekinMin=0., G4double urangMin=0.) | |
BDSTerminatorUserLimits (const G4String &type, G4double ustepMax=std::numeric_limits< double >::max(), G4double utrakMax=std::numeric_limits< double >::max(), G4double utimeMax=std::numeric_limits< double >::max(), G4double uekinMin=0., G4double urangMin=0.) | |
virtual G4double | GetUserMinEkine (const G4Track &) |
Protected Attributes | |
G4double | keeprunningEK |
Minimum energy particle must have to keep going. | |
G4double | stoprunningEK |
Same, so everything < DBL_MAX so everything stopped. | |
Private Attributes | |
const G4int | turnsToTake |
Dynamic user limits for a volume that changed based on the parameter turnstaken in BDSGlobalConstants().
Used to control the number of turns a particle completes around a circular accelerator. An instance of these user limits is typically attached to a volume near the end of the lattice.
Definition at line 38 of file BDSTerminatorUserLimits.hh.
BDSTerminatorUserLimits::BDSTerminatorUserLimits | ( | G4double | ustepMax = std::numeric_limits<double>::max() , |
G4double | utrakMax = std::numeric_limits<double>::max() , |
||
G4double | utimeMax = std::numeric_limits<double>::max() , |
||
G4double | uekinMin = 0. , |
||
G4double | urangMin = 0. |
||
) |
Basic inheritance - just use everything normally from G4UserLimits but replace one function in inherited class. Default values are defined in G4UserLimits so all particles continue.
Definition at line 28 of file BDSTerminatorUserLimits.cc.
BDSTerminatorUserLimits::BDSTerminatorUserLimits | ( | const G4String & | type, |
G4double | ustepMax = std::numeric_limits<double>::max() , |
||
G4double | utrakMax = std::numeric_limits<double>::max() , |
||
G4double | utimeMax = std::numeric_limits<double>::max() , |
||
G4double | uekinMin = 0. , |
||
G4double | urangMin = 0. |
||
) |
Definition at line 43 of file BDSTerminatorUserLimits.cc.
|
inlinevirtual |
Definition at line 57 of file BDSTerminatorUserLimits.hh.
|
inlinevirtual |
Replace this function alone in G4UserLimits where we only set the limit to E=0 eV on the last turn.
Definition at line 60 of file BDSTerminatorUserLimits.cc.
References BDSGlobalConstants::Instance(), keeprunningEK, stoprunningEK, and turnsToTake.
|
protected |
Minimum energy particle must have to keep going.
Definition at line 65 of file BDSTerminatorUserLimits.hh.
Referenced by GetUserMinEkine().
|
protected |
Same, so everything < DBL_MAX so everything stopped.
Definition at line 66 of file BDSTerminatorUserLimits.hh.
Referenced by GetUserMinEkine().
|
private |
Number of turns in total that simulation will progress for - not changed during run or after construction.
Definition at line 71 of file BDSTerminatorUserLimits.hh.
Referenced by GetUserMinEkine().