Geant4  10.00.p02
G4IonParametrisedLossModel Class Reference

#include <G4IonParametrisedLossModel.hh>

+ Inheritance diagram for G4IonParametrisedLossModel:
+ Collaboration diagram for G4IonParametrisedLossModel:

Public Member Functions

 G4IonParametrisedLossModel (const G4ParticleDefinition *particle=0, const G4String &name="ParamICRU73")
 
virtual ~G4IonParametrisedLossModel ()
 
virtual void Initialise (const G4ParticleDefinition *, const G4DataVector &)
 
virtual G4double MinEnergyCut (const G4ParticleDefinition *, const G4MaterialCutsCouple *)
 
virtual G4double ComputeCrossSectionPerAtom (const G4ParticleDefinition *, G4double, G4double, G4double, G4double, G4double)
 
virtual G4double CrossSectionPerVolume (const G4Material *, const G4ParticleDefinition *, G4double, G4double, G4double)
 
virtual G4double ComputeDEDXPerVolume (const G4Material *, const G4ParticleDefinition *, G4double, G4double)
 
G4double ComputeLossForStep (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double, G4double)
 
G4double DeltaRayMeanEnergyTransferRate (const G4Material *, const G4ParticleDefinition *, G4double, G4double)
 
virtual void SampleSecondaries (std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double, G4double)
 
virtual G4double GetChargeSquareRatio (const G4ParticleDefinition *, const G4Material *, G4double)
 
virtual G4double GetParticleCharge (const G4ParticleDefinition *, const G4Material *, G4double)
 
virtual void CorrectionsAlongStep (const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double &, G4double &, G4double)
 
G4bool AddDEDXTable (const G4String &name, G4VIonDEDXTable *table, G4VIonDEDXScalingAlgorithm *algorithm=0)
 
G4bool RemoveDEDXTable (const G4String &name)
 
void DeactivateICRU73Scaling ()
 
LossTableList::iterator IsApplicable (const G4ParticleDefinition *, const G4Material *)
 
void PrintDEDXTable (const G4ParticleDefinition *, const G4Material *, G4double, G4double, G4int, G4bool)
 
void PrintDEDXTableHandlers (const G4ParticleDefinition *, const G4Material *, G4double, G4double, G4int, G4bool)
 
void SetEnergyLossLimit (G4double ionEnergyLossLimit)
 
- Public Member Functions inherited from G4VEmModel
 G4VEmModel (const G4String &nam)
 
virtual ~G4VEmModel ()
 
virtual void InitialiseLocal (const G4ParticleDefinition *, G4VEmModel *masterModel)
 
virtual void InitialiseForMaterial (const G4ParticleDefinition *, const G4Material *)
 
virtual void InitialiseForElement (const G4ParticleDefinition *, G4int Z)
 
virtual G4double ChargeSquareRatio (const G4Track &)
 
virtual void StartTracking (G4Track *)
 
virtual G4double Value (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy)
 
virtual G4double MinPrimaryEnergy (const G4Material *, const G4ParticleDefinition *, G4double cut=0.0)
 
virtual void SetupForMaterial (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
virtual void DefineForRegion (const G4Region *)
 
void InitialiseElementSelectors (const G4ParticleDefinition *, const G4DataVector &)
 
std::vector
< G4EmElementSelector * > * 
GetElementSelectors ()
 
void SetElementSelectors (std::vector< G4EmElementSelector * > *)
 
G4double ComputeDEDX (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)
 
G4double CrossSection (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
G4double ComputeMeanFreePath (const G4ParticleDefinition *, G4double kineticEnergy, const G4Material *, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
G4double ComputeCrossSectionPerAtom (const G4ParticleDefinition *, const G4Element *, G4double kinEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
G4int SelectIsotopeNumber (const G4Element *)
 
const G4ElementSelectRandomAtom (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
const G4ElementSelectRandomAtom (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
G4int SelectRandomAtomNumber (const G4Material *)
 
void SetParticleChange (G4VParticleChange *, G4VEmFluctuationModel *f=0)
 
void SetCrossSectionTable (G4PhysicsTable *, G4bool isLocal)
 
G4ElementDataGetElementData ()
 
G4PhysicsTableGetCrossSectionTable ()
 
G4VEmFluctuationModelGetModelOfFluctuations ()
 
G4VEmAngularDistributionGetAngularDistribution ()
 
void SetAngularDistribution (G4VEmAngularDistribution *)
 
G4double HighEnergyLimit () const
 
G4double LowEnergyLimit () const
 
G4double HighEnergyActivationLimit () const
 
G4double LowEnergyActivationLimit () const
 
G4double PolarAngleLimit () const
 
G4double SecondaryThreshold () const
 
G4bool LPMFlag () const
 
G4bool DeexcitationFlag () const
 
G4bool ForceBuildTableFlag () const
 
G4bool UseAngularGeneratorFlag () const
 
void SetAngularGeneratorFlag (G4bool)
 
void SetHighEnergyLimit (G4double)
 
void SetLowEnergyLimit (G4double)
 
void SetActivationHighEnergyLimit (G4double)
 
void SetActivationLowEnergyLimit (G4double)
 
G4bool IsActive (G4double kinEnergy)
 
void SetPolarAngleLimit (G4double)
 
void SetSecondaryThreshold (G4double)
 
void SetLPMFlag (G4bool val)
 
void SetDeexcitationFlag (G4bool val)
 
void SetForceBuildTable (G4bool val)
 
void SetMasterThread (G4bool val)
 
G4bool IsMaster () const
 
G4double MaxSecondaryKinEnergy (const G4DynamicParticle *dynParticle)
 
const G4StringGetName () const
 
void SetCurrentCouple (const G4MaterialCutsCouple *)
 
const G4ElementGetCurrentElement () const
 

Protected Member Functions

virtual G4double MaxSecondaryEnergy (const G4ParticleDefinition *, G4double)
 
- Protected Member Functions inherited from G4VEmModel
G4ParticleChangeForLossGetParticleChangeForLoss ()
 
G4ParticleChangeForGammaGetParticleChangeForGamma ()
 
const G4MaterialCutsCoupleCurrentCouple () const
 
void SetCurrentElement (const G4Element *)
 

Private Types

typedef std::map< IonMatCouple,
G4LPhysicsFreeVector * > 
RangeEnergyTable
 
typedef std::map< IonMatCouple,
G4LPhysicsFreeVector * > 
EnergyRangeTable
 

Private Member Functions

void UpdateDEDXCache (const G4ParticleDefinition *, const G4Material *, G4double cutEnergy)
 
void UpdateRangeCache (const G4ParticleDefinition *, const G4MaterialCutsCouple *)
 
void UpdateCache (const G4ParticleDefinition *)
 
void BuildRangeVector (const G4ParticleDefinition *, const G4MaterialCutsCouple *)
 
G4IonParametrisedLossModeloperator= (const G4IonParametrisedLossModel &right)
 
 G4IonParametrisedLossModel (const G4IonParametrisedLossModel &)
 

Private Attributes

G4BraggIonModelbraggIonModel
 
G4BetheBlochModelbetheBlochModel
 
LossTableList lossTableList
 
RangeEnergyTable r
 
EnergyRangeTable E
 
G4double lowerEnergyEdgeIntegr
 
G4double upperEnergyEdgeIntegr
 
size_t nmbBins
 
size_t nmbSubBins
 
G4ParticleChangeForLossparticleChangeLoss
 
G4EmCorrectionscorrections
 
G4double corrFactor
 
G4double energyLossLimit
 
G4DataVector cutEnergies
 
G4ParticleDefinitiongenericIon
 
G4double genericIonPDGMass
 
const G4ParticleDefinitioncacheParticle
 
G4double cacheMass
 
G4double cacheElecMassRatio
 
G4double cacheChargeSquare
 
const G4ParticleDefinitionrangeCacheParticle
 
const G4MaterialCutsCouplerangeCacheMatCutsCouple
 
G4PhysicsVectorrangeCacheEnergyRange
 
G4PhysicsVectorrangeCacheRangeEnergy
 
const G4ParticleDefinitiondedxCacheParticle
 
const G4MaterialdedxCacheMaterial
 
G4double dedxCacheEnergyCut
 
LossTableList::iterator dedxCacheIter
 
G4double dedxCacheTransitionEnergy
 
G4double dedxCacheTransitionFactor
 
G4double dedxCacheGenIonMassRatio
 

Additional Inherited Members

- Protected Attributes inherited from G4VEmModel
G4ElementDatafElementData
 
G4VParticleChangepParticleChange
 
G4PhysicsTablexSectionTable
 
const std::vector< G4double > * theDensityFactor
 
const std::vector< G4int > * theDensityIdx
 
size_t idxTable
 

Detailed Description

Definition at line 93 of file G4IonParametrisedLossModel.hh.

Member Typedef Documentation

Constructor & Destructor Documentation

G4IonParametrisedLossModel::~G4IonParametrisedLossModel ( )
virtual

Definition at line 160 of file G4IonParametrisedLossModel.cc.

References lossTableList.

G4IonParametrisedLossModel::G4IonParametrisedLossModel ( const G4IonParametrisedLossModel )
private

Member Function Documentation

G4bool G4IonParametrisedLossModel::AddDEDXTable ( const G4String name,
G4VIonDEDXTable table,
G4VIonDEDXScalingAlgorithm algorithm = 0 
)

Definition at line 1226 of file G4IonParametrisedLossModel.cc.

References G4cerr, G4endl, G4VEmModel::GetName(), and lossTableList.

Referenced by DeactivateICRU73Scaling(), and G4IonParametrisedLossModel().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4IonParametrisedLossModel::BuildRangeVector ( const G4ParticleDefinition particle,
const G4MaterialCutsCouple matCutsCouple 
)
private

Definition at line 1048 of file G4IonParametrisedLossModel.cc.

References ComputeDEDXPerVolume(), cutEnergies, DBL_MAX, E, G4INCL::KinematicsUtils::energy(), G4cout, G4endl, genericIonPDGMass, lowerEnergyEdgeIntegr, MeV, mm, nmbBins, nmbSubBins, r, upperEnergyEdgeIntegr, and G4VEmModel::Value().

Referenced by UpdateRangeCache().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4IonParametrisedLossModel::ComputeCrossSectionPerAtom ( const G4ParticleDefinition particle,
G4double  kineticEnergy,
G4double  atomicNumber,
G4double  ,
G4double  cutEnergy,
G4double  maxKinEnergy 
)
virtual

Reimplemented from G4VEmModel.

Definition at line 352 of file G4IonParametrisedLossModel.cc.

References cacheChargeSquare, cacheMass, G4INCL::KinematicsUtils::energy(), G4cout, G4endl, MaxSecondaryEnergy(), MeV, G4INCL::Math::min(), and right.

Referenced by CrossSectionPerVolume().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4IonParametrisedLossModel::ComputeDEDXPerVolume ( const G4Material material,
const G4ParticleDefinition particle,
G4double  kineticEnergy,
G4double  cutEnergy 
)
virtual

Reimplemented from G4VEmModel.

Definition at line 436 of file G4IonParametrisedLossModel.cc.

References betheBlochModel, braggIonModel, corrections, dedxCacheGenIonMassRatio, dedxCacheIter, dedxCacheTransitionEnergy, dedxCacheTransitionFactor, DeltaRayMeanEnergyTransferRate(), genericIon, genericIonPDGMass, GetChargeSquareRatio(), lossTableList, G4VEmModel::LowEnergyLimit(), and UpdateDEDXCache().

Referenced by BuildRangeVector(), CorrectionsAlongStep(), PrintDEDXTable(), and UpdateDEDXCache().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4IonParametrisedLossModel::ComputeLossForStep ( const G4MaterialCutsCouple matCutsCouple,
const G4ParticleDefinition particle,
G4double  kineticEnergy,
G4double  stepLength 
)

Definition at line 1167 of file G4IonParametrisedLossModel.cc.

References G4INCL::KinematicsUtils::energy(), G4cout, G4endl, mm, rangeCacheEnergyRange, rangeCacheRangeEnergy, UpdateRangeCache(), and G4VEmModel::Value().

Referenced by CorrectionsAlongStep().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4IonParametrisedLossModel::CorrectionsAlongStep ( const G4MaterialCutsCouple couple,
const G4DynamicParticle dynamicParticle,
G4double eloss,
G4double ,
G4double  length 
)
virtual

Reimplemented from G4VEmModel.

Definition at line 901 of file G4IonParametrisedLossModel.cc.

References betheBlochModel, ComputeDEDXPerVolume(), ComputeLossForStep(), corrections, corrFactor, cutEnergies, DBL_MAX, dedxCacheGenIonMassRatio, dedxCacheIter, dedxCacheTransitionEnergy, G4INCL::KinematicsUtils::energy(), energyLossLimit, G4cout, G4endl, G4VEmModel::GetModelOfFluctuations(), lossTableList, G4VEmModel::LowEnergyLimit(), MeV, right, and UpdateDEDXCache().

+ Here is the call graph for this function:

G4double G4IonParametrisedLossModel::CrossSectionPerVolume ( const G4Material material,
const G4ParticleDefinition particle,
G4double  kineticEnergy,
G4double  cutEnergy,
G4double  maxEnergy 
)
virtual

Reimplemented from G4VEmModel.

Definition at line 417 of file G4IonParametrisedLossModel.cc.

References ComputeCrossSectionPerAtom().

+ Here is the call graph for this function:

void G4IonParametrisedLossModel::DeactivateICRU73Scaling ( )

Definition at line 1308 of file G4IonParametrisedLossModel.cc.

References AddDEDXTable(), and RemoveDEDXTable().

+ Here is the call graph for this function:

G4double G4IonParametrisedLossModel::DeltaRayMeanEnergyTransferRate ( const G4Material ,
const G4ParticleDefinition ,
G4double  ,
G4double   
)
inline

Referenced by ComputeDEDXPerVolume(), and UpdateDEDXCache().

+ Here is the caller graph for this function:

G4double G4IonParametrisedLossModel::GetChargeSquareRatio ( const G4ParticleDefinition particle,
const G4Material material,
G4double  kineticEnergy 
)
virtual

Reimplemented from G4VEmModel.

Definition at line 210 of file G4IonParametrisedLossModel.cc.

References corrections, and corrFactor.

Referenced by ComputeDEDXPerVolume(), and UpdateDEDXCache().

+ Here is the caller graph for this function:

G4double G4IonParametrisedLossModel::GetParticleCharge ( const G4ParticleDefinition particle,
const G4Material material,
G4double  kineticEnergy 
)
virtual

Reimplemented from G4VEmModel.

Definition at line 228 of file G4IonParametrisedLossModel.cc.

References corrections.

LossTableList::iterator G4IonParametrisedLossModel::IsApplicable ( const G4ParticleDefinition ,
const G4Material  
)
inline

Referenced by PrintDEDXTableHandlers(), UpdateDEDXCache(), and UpdateRangeCache().

+ Here is the caller graph for this function:

G4double G4IonParametrisedLossModel::MaxSecondaryEnergy ( const G4ParticleDefinition particle,
G4double  kineticEnergy 
)
protectedvirtual

Reimplemented from G4VEmModel.

Definition at line 182 of file G4IonParametrisedLossModel.cc.

References cacheElecMassRatio, cacheMass, cacheParticle, and UpdateCache().

Referenced by ComputeCrossSectionPerAtom().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4IonParametrisedLossModel::MinEnergyCut ( const G4ParticleDefinition ,
const G4MaterialCutsCouple couple 
)
virtual

Reimplemented from G4VEmModel.

Definition at line 172 of file G4IonParametrisedLossModel.cc.

G4IonParametrisedLossModel& G4IonParametrisedLossModel::operator= ( const G4IonParametrisedLossModel right)
private
void G4IonParametrisedLossModel::PrintDEDXTable ( const G4ParticleDefinition particle,
const G4Material material,
G4double  lowerBoundary,
G4double  upperBoundary,
G4int  numBins,
G4bool  logScaleEnergy 
)

Definition at line 585 of file G4IonParametrisedLossModel.cc.

References cm, cm2, cm3, ComputeDEDXPerVolume(), DBL_MAX, G4INCL::KinematicsUtils::energy(), g, G4cout, G4endl, G4VEmModel::GetName(), MeV, nmbBins, and right.

Referenced by PrintDEDXTableHandlers().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4IonParametrisedLossModel::PrintDEDXTableHandlers ( const G4ParticleDefinition particle,
const G4Material material,
G4double  lowerBoundary,
G4double  upperBoundary,
G4int  numBins,
G4bool  logScaleEnergy 
)

Definition at line 649 of file G4IonParametrisedLossModel.cc.

References IsApplicable(), lossTableList, and PrintDEDXTable().

+ Here is the call graph for this function:

G4bool G4IonParametrisedLossModel::RemoveDEDXTable ( const G4String name)

Definition at line 1269 of file G4IonParametrisedLossModel.cc.

References E, G4VEmModel::GetName(), lossTableList, r, and second.

Referenced by DeactivateICRU73Scaling().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4IonParametrisedLossModel::SampleSecondaries ( std::vector< G4DynamicParticle * > *  secondaries,
const G4MaterialCutsCouple ,
const G4DynamicParticle particle,
G4double  cutKinEnergySec,
G4double  userMaxKinEnergySec 
)
virtual

Implements G4VEmModel.

Definition at line 673 of file G4IonParametrisedLossModel.cc.

References cacheMass, G4Electron::Definition(), G4INCL::KinematicsUtils::energy(), G4cout, G4endl, G4UniformRand, G4DynamicParticle::GetMomentumDirection(), G4VEmModel::MaxSecondaryKinEnergy(), G4INCL::Math::min(), and particleChangeLoss.

+ Here is the call graph for this function:

void G4IonParametrisedLossModel::SetEnergyLossLimit ( G4double  ionEnergyLossLimit)
inline
void G4IonParametrisedLossModel::UpdateCache ( const G4ParticleDefinition )
inlineprivate

Referenced by MaxSecondaryEnergy().

+ Here is the caller graph for this function:

void G4IonParametrisedLossModel::UpdateDEDXCache ( const G4ParticleDefinition particle,
const G4Material material,
G4double  cutEnergy 
)
private

Definition at line 813 of file G4IonParametrisedLossModel.cc.

References betheBlochModel, ComputeDEDXPerVolume(), corrections, dedxCacheEnergyCut, dedxCacheGenIonMassRatio, dedxCacheIter, dedxCacheMaterial, dedxCacheParticle, dedxCacheTransitionEnergy, dedxCacheTransitionFactor, DeltaRayMeanEnergyTransferRate(), genericIon, genericIonPDGMass, GetChargeSquareRatio(), IsApplicable(), and lossTableList.

Referenced by ComputeDEDXPerVolume(), and CorrectionsAlongStep().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4IonParametrisedLossModel::UpdateRangeCache ( const G4ParticleDefinition particle,
const G4MaterialCutsCouple matCutsCouple 
)
private

Definition at line 774 of file G4IonParametrisedLossModel.cc.

References BuildRangeVector(), E, IsApplicable(), lossTableList, r, rangeCacheEnergyRange, rangeCacheMatCutsCouple, rangeCacheParticle, and rangeCacheRangeEnergy.

Referenced by ComputeLossForStep().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

G4BetheBlochModel* G4IonParametrisedLossModel::betheBlochModel
private
G4BraggIonModel* G4IonParametrisedLossModel::braggIonModel
private
G4double G4IonParametrisedLossModel::cacheChargeSquare
private
G4double G4IonParametrisedLossModel::cacheElecMassRatio
private
G4double G4IonParametrisedLossModel::cacheMass
private
const G4ParticleDefinition* G4IonParametrisedLossModel::cacheParticle
private
G4double G4IonParametrisedLossModel::corrFactor
private

Definition at line 309 of file G4IonParametrisedLossModel.hh.

Referenced by CorrectionsAlongStep(), and GetChargeSquareRatio().

G4DataVector G4IonParametrisedLossModel::cutEnergies
private
G4double G4IonParametrisedLossModel::dedxCacheEnergyCut
private
G4double G4IonParametrisedLossModel::dedxCacheGenIonMassRatio
private
LossTableList::iterator G4IonParametrisedLossModel::dedxCacheIter
private
const G4Material* G4IonParametrisedLossModel::dedxCacheMaterial
private
const G4ParticleDefinition* G4IonParametrisedLossModel::dedxCacheParticle
private
G4double G4IonParametrisedLossModel::dedxCacheTransitionEnergy
private
G4double G4IonParametrisedLossModel::dedxCacheTransitionFactor
private
EnergyRangeTable G4IonParametrisedLossModel::E
private
G4double G4IonParametrisedLossModel::energyLossLimit
private

Definition at line 315 of file G4IonParametrisedLossModel.hh.

Referenced by CorrectionsAlongStep().

G4ParticleDefinition* G4IonParametrisedLossModel::genericIon
private
G4double G4IonParametrisedLossModel::genericIonPDGMass
private
G4double G4IonParametrisedLossModel::lowerEnergyEdgeIntegr
private

Definition at line 281 of file G4IonParametrisedLossModel.hh.

Referenced by BuildRangeVector(), and G4IonParametrisedLossModel().

size_t G4IonParametrisedLossModel::nmbBins
private

Definition at line 284 of file G4IonParametrisedLossModel.hh.

Referenced by BuildRangeVector(), and PrintDEDXTable().

size_t G4IonParametrisedLossModel::nmbSubBins
private

Definition at line 285 of file G4IonParametrisedLossModel.hh.

Referenced by BuildRangeVector().

G4ParticleChangeForLoss* G4IonParametrisedLossModel::particleChangeLoss
private

Definition at line 295 of file G4IonParametrisedLossModel.hh.

Referenced by Initialise(), and SampleSecondaries().

RangeEnergyTable G4IonParametrisedLossModel::r
private
G4PhysicsVector* G4IonParametrisedLossModel::rangeCacheEnergyRange
private
const G4MaterialCutsCouple* G4IonParametrisedLossModel::rangeCacheMatCutsCouple
private
const G4ParticleDefinition* G4IonParametrisedLossModel::rangeCacheParticle
private
G4PhysicsVector* G4IonParametrisedLossModel::rangeCacheRangeEnergy
private
G4double G4IonParametrisedLossModel::upperEnergyEdgeIntegr
private

Definition at line 282 of file G4IonParametrisedLossModel.hh.

Referenced by BuildRangeVector(), and G4IonParametrisedLossModel().


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