BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | Private Attributes
BDSTerminatorUserLimits Class Reference

Dynamic user limits for a volume that changed based on the parameter turnstaken in BDSGlobalConstants(). More...

#include <BDSTerminatorUserLimits.hh>

Inheritance diagram for BDSTerminatorUserLimits:
Inheritance graph
Collaboration diagram for BDSTerminatorUserLimits:
Collaboration graph

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
 

Detailed Description

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.

Author
Laurie Nevay

Definition at line 38 of file BDSTerminatorUserLimits.hh.

Constructor & Destructor Documentation

◆ BDSTerminatorUserLimits() [1/2]

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() [2/2]

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.

◆ ~BDSTerminatorUserLimits()

virtual BDSTerminatorUserLimits::~BDSTerminatorUserLimits ( )
inlinevirtual

Definition at line 57 of file BDSTerminatorUserLimits.hh.

Member Function Documentation

◆ GetUserMinEkine()

G4double BDSTerminatorUserLimits::GetUserMinEkine ( const G4Track &  )
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.

Here is the call graph for this function:

Field Documentation

◆ keeprunningEK

G4double BDSTerminatorUserLimits::keeprunningEK
protected

Minimum energy particle must have to keep going.

Definition at line 65 of file BDSTerminatorUserLimits.hh.

Referenced by GetUserMinEkine().

◆ stoprunningEK

G4double BDSTerminatorUserLimits::stoprunningEK
protected

Same, so everything < DBL_MAX so everything stopped.

Definition at line 66 of file BDSTerminatorUserLimits.hh.

Referenced by GetUserMinEkine().

◆ turnsToTake

const G4int BDSTerminatorUserLimits::turnsToTake
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().


The documentation for this class was generated from the following files: