Geant4  10.00.p04
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4LossTableManager Class Reference

Public Member Functions

 ~G4LossTableManager ()
 
void Clear ()
 
void PreparePhysicsTable (const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p, G4bool theMaster)
 
void PreparePhysicsTable (const G4ParticleDefinition *aParticle, G4VEmProcess *p, G4bool theMaster)
 
void PreparePhysicsTable (const G4ParticleDefinition *aParticle, G4VMultipleScattering *p, G4bool theMaster)
 
void BuildPhysicsTable (const G4ParticleDefinition *aParticle)
 
void BuildPhysicsTable (const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
 
void LocalPhysicsTables (const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
 
G4double GetDEDX (const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
G4double GetSubDEDX (const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
G4double GetRange (const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
G4double GetCSDARange (const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
G4double GetRangeFromRestricteDEDX (const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
G4double GetEnergy (const G4ParticleDefinition *aParticle, G4double range, const G4MaterialCutsCouple *couple)
 
G4double GetDEDXDispersion (const G4MaterialCutsCouple *couple, const G4DynamicParticle *dp, G4double &length)
 
void Register (G4VEnergyLossProcess *p)
 
void DeRegister (G4VEnergyLossProcess *p)
 
void Register (G4VMultipleScattering *p)
 
void DeRegister (G4VMultipleScattering *p)
 
void Register (G4VEmProcess *p)
 
void DeRegister (G4VEmProcess *p)
 
void Register (G4VEmModel *p)
 
void DeRegister (G4VEmModel *p)
 
void Register (G4VEmFluctuationModel *p)
 
void DeRegister (G4VEmFluctuationModel *p)
 
void RegisterExtraParticle (const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
 
void SetLossFluctuations (G4bool val)
 
void SetSubCutoff (G4bool val, const G4Region *r=0)
 
void SetIntegral (G4bool val)
 
void SetRandomStep (G4bool val)
 
void SetMinSubRange (G4double val)
 
void SetMinEnergy (G4double val)
 
void SetMaxEnergy (G4double val)
 
void SetMaxEnergyForCSDARange (G4double val)
 
void SetMaxEnergyForMuons (G4double val)
 
void SetDEDXBinning (G4int val)
 
void SetDEDXBinningForCSDARange (G4int val)
 
void SetLambdaBinning (G4int val)
 
G4int GetNumberOfBinsPerDecade () const
 
void SetStepFunction (G4double v1, G4double v2)
 
void SetBuildCSDARange (G4bool val)
 
void SetLPMFlag (G4bool val)
 
void SetSplineFlag (G4bool val)
 
void SetLinearLossLimit (G4double val)
 
void SetBremsstrahlungTh (G4double val)
 
void SetFactorForAngleLimit (G4double val)
 
void SetVerbose (G4int val)
 
G4EnergyLossMessengerGetMessenger ()
 
G4bool BuildCSDARange () const
 
G4bool LPMFlag () const
 
G4bool SplineFlag () const
 
G4bool IsMaster () const
 
G4double BremsstrahlungTh () const
 
G4double FactorForAngleLimit () const
 
G4double MinKinEnergy () const
 
G4double MaxKinEnergy () const
 
const std::vector
< G4VEnergyLossProcess * > & 
GetEnergyLossProcessVector ()
 
const std::vector
< G4VEmProcess * > & 
GetEmProcessVector ()
 
const std::vector
< G4VMultipleScattering * > & 
GetMultipleScatteringVector ()
 
G4VEnergyLossProcessGetEnergyLossProcess (const G4ParticleDefinition *)
 
G4EmCorrectionsEmCorrections ()
 
G4EmSaturationEmSaturation ()
 
G4EmConfiguratorEmConfigurator ()
 
G4ElectronIonPairElectronIonPair ()
 
G4VAtomDeexcitationAtomDeexcitation ()
 
G4LossTableBuilderGetTableBuilder ()
 
void SetAtomDeexcitation (G4VAtomDeexcitation *)
 

Static Public Member Functions

static G4LossTableManagerInstance ()
 

Private Types

typedef const
G4ParticleDefinition
PD
 

Private Member Functions

 G4LossTableManager ()
 
G4VEnergyLossProcessBuildTables (const G4ParticleDefinition *aParticle)
 
void CopyTables (const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *)
 
void ParticleHaveNoLoss (const G4ParticleDefinition *aParticle)
 
void SetParameters (const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *)
 
void CopyDEDXTables ()
 
 G4LossTableManager (G4LossTableManager &)
 
G4LossTableManageroperator= (const G4LossTableManager &right)
 

Private Attributes

std::map< PD,
G4VEnergyLossProcess
*, std::less< PD > > 
loss_map
 
std::vector
< G4VEnergyLossProcess * > 
loss_vector
 
std::vector< PDpart_vector
 
std::vector< PDbase_part_vector
 
std::vector< G4booltables_are_built
 
std::vector< G4boolisActive
 
std::vector< G4PhysicsTable * > dedx_vector
 
std::vector< G4PhysicsTable * > range_vector
 
std::vector< G4PhysicsTable * > inv_range_vector
 
std::vector
< G4VMultipleScattering * > 
msc_vector
 
std::vector< G4VEmProcess * > emp_vector
 
std::vector< G4VEmModel * > mod_vector
 
std::vector
< G4VEmFluctuationModel * > 
fmod_vector
 
G4VEnergyLossProcesscurrentLoss
 
PD currentParticle
 
PD theElectron
 
PD theGenericIon
 
PD firstParticle
 
G4int n_loss
 
G4int run
 
G4bool all_tables_are_built
 
G4bool startInitialisation
 
G4bool lossFluctuationFlag
 
G4bool subCutoffFlag
 
G4bool rndmStepFlag
 
G4bool integral
 
G4bool integralActive
 
G4bool buildCSDARange
 
G4bool minEnergyActive
 
G4bool maxEnergyActive
 
G4bool maxEnergyForMuonsActive
 
G4bool stepFunctionActive
 
G4bool flagLPM
 
G4bool splineFlag
 
G4bool isMaster
 
G4double minSubRange
 
G4double maxRangeVariation
 
G4double maxFinalStep
 
G4double minKinEnergy
 
G4double maxKinEnergy
 
G4double maxKinEnergyForMuons
 
G4double bremsTh
 
G4double factorForAngleLimit
 
G4LossTableBuildertableBuilder
 
G4EnergyLossMessengertheMessenger
 
G4EmCorrectionsemCorrections
 
G4EmSaturationemSaturation
 
G4EmConfiguratoremConfigurator
 
G4ElectronIonPairemElectronIonPair
 
G4VAtomDeexcitationatomDeexcitation
 
G4int nbinsLambda
 
G4int nbinsPerDecade
 
G4int verbose
 

Friends

class G4ThreadLocalSingleton< G4LossTableManager >
 

Member Typedef Documentation

typedef const G4ParticleDefinition* PD
private

Constructor & Destructor Documentation

G4LossTableManager ( )
private

Member Function Documentation

static G4LossTableManager* Instance ( )
static
void Clear ( )
void PreparePhysicsTable ( const G4ParticleDefinition aParticle,
G4VEnergyLossProcess p,
G4bool  theMaster 
)
void PreparePhysicsTable ( const G4ParticleDefinition aParticle,
G4VEmProcess p,
G4bool  theMaster 
)
void PreparePhysicsTable ( const G4ParticleDefinition aParticle,
G4VMultipleScattering p,
G4bool  theMaster 
)
void BuildPhysicsTable ( const G4ParticleDefinition aParticle)
void BuildPhysicsTable ( const G4ParticleDefinition aParticle,
G4VEnergyLossProcess p 
)
void LocalPhysicsTables ( const G4ParticleDefinition aParticle,
G4VEnergyLossProcess p 
)
G4double GetDEDX ( const G4ParticleDefinition aParticle,
G4double  kineticEnergy,
const G4MaterialCutsCouple couple 
)
G4double GetSubDEDX ( const G4ParticleDefinition aParticle,
G4double  kineticEnergy,
const G4MaterialCutsCouple couple 
)
G4double GetRange ( const G4ParticleDefinition aParticle,
G4double  kineticEnergy,
const G4MaterialCutsCouple couple 
)
G4double GetCSDARange ( const G4ParticleDefinition aParticle,
G4double  kineticEnergy,
const G4MaterialCutsCouple couple 
)
G4double GetRangeFromRestricteDEDX ( const G4ParticleDefinition aParticle,
G4double  kineticEnergy,
const G4MaterialCutsCouple couple 
)
G4double GetEnergy ( const G4ParticleDefinition aParticle,
G4double  range,
const G4MaterialCutsCouple couple 
)
G4double GetDEDXDispersion ( const G4MaterialCutsCouple couple,
const G4DynamicParticle dp,
G4double length 
)
void Register ( G4VEnergyLossProcess p)
void DeRegister ( G4VEnergyLossProcess p)
void Register ( G4VMultipleScattering p)
void DeRegister ( G4VMultipleScattering p)
void Register ( G4VEmProcess p)
void DeRegister ( G4VEmProcess p)
void Register ( G4VEmModel p)
void DeRegister ( G4VEmModel p)
void Register ( G4VEmFluctuationModel p)
void DeRegister ( G4VEmFluctuationModel p)
void RegisterExtraParticle ( const G4ParticleDefinition aParticle,
G4VEnergyLossProcess p 
)
void SetLossFluctuations ( G4bool  val)
void SetSubCutoff ( G4bool  val,
const G4Region r = 0 
)
void SetIntegral ( G4bool  val)
void SetRandomStep ( G4bool  val)
void SetMinSubRange ( G4double  val)
void SetMinEnergy ( G4double  val)
void SetMaxEnergy ( G4double  val)
void SetMaxEnergyForCSDARange ( G4double  val)
void SetMaxEnergyForMuons ( G4double  val)
void SetDEDXBinning ( G4int  val)
void SetDEDXBinningForCSDARange ( G4int  val)
void SetLambdaBinning ( G4int  val)
G4int GetNumberOfBinsPerDecade ( ) const
void SetStepFunction ( G4double  v1,
G4double  v2 
)
void SetBuildCSDARange ( G4bool  val)
void SetLPMFlag ( G4bool  val)
void SetSplineFlag ( G4bool  val)
void SetLinearLossLimit ( G4double  val)
void SetBremsstrahlungTh ( G4double  val)
void SetFactorForAngleLimit ( G4double  val)
void SetVerbose ( G4int  val)
G4EnergyLossMessenger* GetMessenger ( )
G4bool BuildCSDARange ( ) const
G4bool LPMFlag ( ) const
G4bool SplineFlag ( ) const
G4bool IsMaster ( ) const
G4double BremsstrahlungTh ( ) const
G4double FactorForAngleLimit ( ) const
G4double MinKinEnergy ( ) const
G4double MaxKinEnergy ( ) const
const std::vector<G4VEnergyLossProcess*>& GetEnergyLossProcessVector ( )
const std::vector<G4VEmProcess*>& GetEmProcessVector ( )
const std::vector<G4VMultipleScattering*>& GetMultipleScatteringVector ( )
G4VEnergyLossProcess* GetEnergyLossProcess ( const G4ParticleDefinition )
G4EmCorrections* EmCorrections ( )
G4EmSaturation* EmSaturation ( )
G4EmConfigurator* EmConfigurator ( )
G4ElectronIonPair* ElectronIonPair ( )
G4VAtomDeexcitation* AtomDeexcitation ( )
G4LossTableBuilder* GetTableBuilder ( )
void SetAtomDeexcitation ( G4VAtomDeexcitation )
G4VEnergyLossProcess* BuildTables ( const G4ParticleDefinition aParticle)
private
void CopyTables ( const G4ParticleDefinition aParticle,
G4VEnergyLossProcess  
)
private
void ParticleHaveNoLoss ( const G4ParticleDefinition aParticle)
private
void SetParameters ( const G4ParticleDefinition aParticle,
G4VEnergyLossProcess  
)
private
void CopyDEDXTables ( )
private
G4LossTableManager& operator= ( const G4LossTableManager right)
private

Friends And Related Function Documentation

Member Data Documentation

std::map<PD,G4VEnergyLossProcess*,std::less<PD> > loss_map
private
std::vector<G4VEnergyLossProcess*> loss_vector
private
std::vector<PD> part_vector
private
std::vector<PD> base_part_vector
private
std::vector<G4bool> tables_are_built
private
std::vector<G4bool> isActive
private
std::vector<G4PhysicsTable*> dedx_vector
private
std::vector<G4PhysicsTable*> range_vector
private
std::vector<G4PhysicsTable*> inv_range_vector
private
std::vector<G4VMultipleScattering*> msc_vector
private
std::vector<G4VEmProcess*> emp_vector
private
std::vector<G4VEmModel*> mod_vector
private
std::vector<G4VEmFluctuationModel*> fmod_vector
private
G4VEnergyLossProcess* currentLoss
private
PD currentParticle
private
PD theElectron
private
PD theGenericIon
private
PD firstParticle
private
G4int n_loss
private
G4int run
private
G4bool all_tables_are_built
private
G4bool startInitialisation
private
G4bool lossFluctuationFlag
private
G4bool subCutoffFlag
private
G4bool rndmStepFlag
private
G4bool integral
private
G4bool integralActive
private
G4bool buildCSDARange
private
G4bool minEnergyActive
private
G4bool maxEnergyActive
private
G4bool maxEnergyForMuonsActive
private
G4bool stepFunctionActive
private
G4bool flagLPM
private
G4bool splineFlag
private
G4bool isMaster
private
G4double minSubRange
private
G4double maxRangeVariation
private
G4double maxFinalStep
private
G4double minKinEnergy
private
G4double maxKinEnergy
private
G4double maxKinEnergyForMuons
private
G4double bremsTh
private
G4double factorForAngleLimit
private
G4LossTableBuilder* tableBuilder
private
G4EnergyLossMessenger* theMessenger
private
G4EmCorrections* emCorrections
private
G4EmSaturation* emSaturation
private
G4EmConfigurator* emConfigurator
private
G4ElectronIonPair* emElectronIonPair
private
G4VAtomDeexcitation* atomDeexcitation
private
G4int nbinsLambda
private
G4int nbinsPerDecade
private
G4int verbose
private