G4EmMultiModel Class Reference

#include <G4EmMultiModel.hh>

Inheritance diagram for G4EmMultiModel:

Inheritance graph
[legend]
List of all members.

Detailed Description

Definition at line 61 of file G4EmMultiModel.hh.

Public Member Functions

 G4EmMultiModel (const G4String &nam="MultiModel")
virtual ~G4EmMultiModel ()
void Initialise (const G4ParticleDefinition *, const G4DataVector &)
G4double MinEnergyCut (const G4ParticleDefinition *, const G4MaterialCutsCouple *)
G4double ComputeDEDX (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy)
G4double CrossSection (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy)
void SampleSecondaries (std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double tmax)
void DefineForRegion (const G4Region *)
void AddModel (G4VEmModel *, G4double tmin, G4double tmax)
virtual G4double ComputeDEDXPerVolume (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)
virtual G4double ComputeCrossSectionPerAtom (const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0., G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
virtual G4double ComputeMeanFreePath (const G4ParticleDefinition *, G4double kineticEnergy, const G4Material *, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
virtual G4double CrossSectionPerVolume (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
virtual void SampleScattering (const G4DynamicParticle *, G4double safety)
virtual G4double ComputeTruePathLengthLimit (const G4Track &track, G4PhysicsTable *theLambdaTable, G4double currentMinimalStep)
virtual G4double ComputeGeomPathLength (G4double truePathLength)
virtual G4double ComputeTrueStepLength (G4double geomPathLength)
void SetParticleChange (G4VParticleChange *, G4VEmFluctuationModel *)
G4VEmFluctuationModelGetModelOfFluctuations ()
G4double HighEnergyLimit ()
G4double LowEnergyLimit ()
void SetHighEnergyLimit (G4double)
void SetLowEnergyLimit (G4double)
G4double MaxSecondaryKinEnergy (const G4DynamicParticle *dynParticle)
const G4ElementSelectRandomAtom (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
const G4StringGetName () const

Protected Member Functions

G4double MaxSecondaryEnergy (const G4ParticleDefinition *, G4double kineticEnergy)
const G4ElementGetCurrentElement () const
void SetCurrentElement (const G4Element *)

Protected Attributes

G4VParticleChangepParticleChange

Private Member Functions

G4EmMultiModeloperator= (const G4EmMultiModel &right)
 G4EmMultiModel (const G4EmMultiModel &)

Private Attributes

G4int nModels
std::vector< G4VEmModel * > model
G4DataVector tsecmin
G4DataVector cross_section


Constructor & Destructor Documentation

G4EmMultiModel::G4EmMultiModel ( const G4String nam = "MultiModel"  ) 

Definition at line 60 of file G4EmMultiModel.cc.

References cross_section, model, and tsecmin.

G4EmMultiModel::~G4EmMultiModel (  )  [virtual]

Definition at line 71 of file G4EmMultiModel.cc.

References model, and nModels.

G4EmMultiModel::G4EmMultiModel ( const G4EmMultiModel  )  [private]


Member Function Documentation

void G4EmMultiModel::AddModel ( G4VEmModel ,
G4double  tmin,
G4double  tmax 
)

Definition at line 198 of file G4EmMultiModel.cc.

References cross_section, model, nModels, and tsecmin.

G4double G4VEmModel::ComputeCrossSectionPerAtom ( const G4ParticleDefinition ,
G4double  kinEnergy,
G4double  Z,
G4double  A = 0.,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
) [inline, virtual, inherited]

Reimplemented in G4eeToHadronsModel, G4eeToHadronsMultiModel, G4MuBetheBlochModel, G4MuBremsstrahlungModel, G4MuMscModel, G4MuPairProductionModel, G4PolarizedComptonModel, G4BetheBlochModel, G4BetheHeitlerModel, G4BraggIonModel, G4BraggModel, G4CoulombScatteringModel, G4eBremsstrahlungModel, G4eCoulombScatteringModel, G4eeToTwoGammaModel, G4KleinNishinaCompton, G4MollerBhabhaModel, G4MscModel71, G4PEEffectModel, G4UrbanMscModel, and G4UrbanMscModel90.

Definition at line 320 of file G4VEmModel.hh.

Referenced by G4EmCalculator::ComputeCrossSectionPerAtom(), G4VEmProcess::ComputeCrossSectionPerAtom(), and G4VEmModel::CrossSectionPerVolume().

G4double G4EmMultiModel::ComputeDEDX ( const G4MaterialCutsCouple ,
const G4ParticleDefinition ,
G4double  kineticEnergy,
G4double  cutEnergy 
) [virtual]

Reimplemented from G4VEmModel.

Definition at line 106 of file G4EmMultiModel.cc.

References model, and nModels.

G4double G4VEmModel::ComputeDEDXPerVolume ( const G4Material ,
const G4ParticleDefinition ,
G4double  kineticEnergy,
G4double  cutEnergy = DBL_MAX 
) [inline, virtual, inherited]

Reimplemented in G4BetheBlochNoDeltaModel, G4BraggNoDeltaModel, G4mplIonisationModel, G4MuBetheBlochModel, G4MuBremsstrahlungModel, G4MuPairProductionModel, G4BetheBlochModel, G4BraggIonModel, G4BraggModel, G4eBremsstrahlungModel, and G4MollerBhabhaModel.

Definition at line 287 of file G4VEmModel.hh.

Referenced by G4EmCalculator::ComputeDEDX(), G4VEmModel::ComputeDEDX(), and G4EmCorrections::InitialiseMaterial().

G4double G4VEmModel::ComputeGeomPathLength ( G4double  truePathLength  )  [inline, virtual, inherited]

Reimplemented in G4MuMscModel, G4UrbanMscModel, and G4UrbanMscModel90.

Definition at line 410 of file G4VEmModel.hh.

G4double G4VEmModel::ComputeMeanFreePath ( const G4ParticleDefinition ,
G4double  kineticEnergy,
const G4Material ,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
) [virtual, inherited]

Reimplemented in G4PEEffectModel.

Definition at line 89 of file G4VEmModel.cc.

References G4VEmModel::CrossSectionPerVolume(), DBL_MAX, and DBL_MIN.

Here is the call graph for this function:

G4double G4VEmModel::ComputeTruePathLengthLimit ( const G4Track track,
G4PhysicsTable theLambdaTable,
G4double  currentMinimalStep 
) [inline, virtual, inherited]

Reimplemented in G4MuMscModel, G4UrbanMscModel, and G4UrbanMscModel90.

Definition at line 400 of file G4VEmModel.hh.

References DBL_MAX.

G4double G4VEmModel::ComputeTrueStepLength ( G4double  geomPathLength  )  [inline, virtual, inherited]

Reimplemented in G4MuMscModel, G4UrbanMscModel, and G4UrbanMscModel90.

Definition at line 417 of file G4VEmModel.hh.

Referenced by G4VMultipleScattering::AlongStepDoIt().

G4double G4EmMultiModel::CrossSection ( const G4MaterialCutsCouple ,
const G4ParticleDefinition ,
G4double  kineticEnergy,
G4double  cutEnergy,
G4double  maxEnergy 
) [virtual]

Reimplemented from G4VEmModel.

Definition at line 122 of file G4EmMultiModel.cc.

References model, nModels, and tsecmin.

Referenced by SampleSecondaries().

G4double G4VEmModel::CrossSectionPerVolume ( const G4Material ,
const G4ParticleDefinition ,
G4double  kineticEnergy,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
) [virtual, inherited]

Reimplemented in G4eeToHadronsModel, G4eeToHadronsMultiModel, G4MuBetheBlochModel, G4MuBremsstrahlungModel, G4MuPairProductionModel, G4BetheBlochModel, G4BraggIonModel, G4BraggModel, G4eBremsstrahlungModel, G4eeToTwoGammaModel, and G4MollerBhabhaModel.

Definition at line 68 of file G4VEmModel.cc.

References G4VEmModel::ComputeCrossSectionPerAtom(), G4Material::GetElementVector(), G4Material::GetNumberOfElements(), G4Material::GetVecNbOfAtomsPerVolume(), and G4VEmModel::xsec.

Referenced by G4EmCalculator::ComputeCrossSectionPerVolume(), G4VEmProcess::ComputeCurrentLambda(), G4VEmModel::ComputeMeanFreePath(), G4VEmModel::CrossSection(), G4VEmProcess::MicroscopicCrossSection(), and G4VEmModel::SelectRandomAtom().

Here is the call graph for this function:

void G4EmMultiModel::DefineForRegion ( const G4Region  )  [virtual]

Reimplemented from G4VEmModel.

Definition at line 189 of file G4EmMultiModel.cc.

References model, and nModels.

const G4Element * G4VEmModel::GetCurrentElement (  )  const [inline, protected, inherited]

Definition at line 355 of file G4VEmModel.hh.

References G4VEmModel::currentElement.

Referenced by G4PolarizedPEEffectModel::SampleSecondaries(), G4PolarizedGammaConversionModel::SampleSecondaries(), G4ePolarizedBremsstrahlungModel::SampleSecondaries(), G4PolarizedGammaConversionModel::SelectedAtom(), and G4ePolarizedBremsstrahlungModel::SelectedAtom().

G4VEmFluctuationModel * G4VEmModel::GetModelOfFluctuations (  )  [inline, inherited]

Definition at line 272 of file G4VEmModel.hh.

References G4VEmModel::fluc.

Referenced by G4VEnergyLossProcess::AlongStepDoIt(), and G4VEnergyLossProcess::GetDEDXDispersion().

const G4String & G4VEmModel::GetName (  )  const [inline, inherited]

Definition at line 386 of file G4VEmModel.hh.

References G4VEmModel::name.

Referenced by G4PhotoElectricEffect::PrintInfo(), G4ionIonisation::PrintInfo(), G4hIonisation::PrintInfo(), G4GammaConversion::PrintInfo(), G4eplusAnnihilation::PrintInfo(), G4eIonisation::PrintInfo(), G4eBremsstrahlung::PrintInfo(), G4ComptonScattering::PrintInfo(), G4PolarizedPhotoElectricEffect::PrintInfo(), and G4PolarizedCompton::PrintInfo().

G4double G4VEmModel::HighEnergyLimit (  )  [inline, inherited]

Definition at line 234 of file G4VEmModel.hh.

References G4VEmModel::highLimit.

Referenced by G4EmCalculator::ComputeDEDX(), G4eBremsstrahlungModel::Initialise(), G4BetheHeitlerModel::Initialise(), G4MuBremsstrahlungModel::Initialise(), G4eeToHadronsMultiModel::Initialise(), and G4eeToHadronsModel::Initialise().

void G4EmMultiModel::Initialise ( const G4ParticleDefinition ,
const G4DataVector  
) [virtual]

Implements G4VEmModel.

Definition at line 82 of file G4EmMultiModel.cc.

References model, and nModels.

G4double G4VEmModel::LowEnergyLimit (  )  [inline, inherited]

Definition at line 241 of file G4VEmModel.hh.

References G4VEmModel::lowLimit.

Referenced by G4EmCalculator::ComputeDEDX(), G4eBremsstrahlungModel::Initialise(), G4BetheHeitlerModel::Initialise(), G4eeToHadronsMultiModel::Initialise(), and G4eeToHadronsModel::Initialise().

G4double G4EmMultiModel::MaxSecondaryEnergy ( const G4ParticleDefinition ,
G4double  kineticEnergy 
) [protected, virtual]

Reimplemented from G4VEmModel.

Definition at line 178 of file G4EmMultiModel.cc.

References G4cout, and G4endl.

G4double G4VEmModel::MaxSecondaryKinEnergy ( const G4DynamicParticle dynParticle  )  [inline, inherited]

Definition at line 369 of file G4VEmModel.hh.

References G4DynamicParticle::GetDefinition(), G4DynamicParticle::GetKineticEnergy(), and G4VEmModel::MaxSecondaryEnergy().

Referenced by G4VEnergyLossProcess::AlongStepDoIt(), G4VEnergyLossProcess::GetDEDXDispersion(), G4PAIPhotonModel::SampleSecondaries(), G4PAIModel::SampleSecondaries(), G4MollerBhabhaModel::SampleSecondaries(), G4BraggIonModel::SampleSecondaries(), and G4PolarizedMollerBhabhaModel::SampleSecondaries().

Here is the call graph for this function:

G4double G4EmMultiModel::MinEnergyCut ( const G4ParticleDefinition ,
const G4MaterialCutsCouple  
) [virtual]

Reimplemented from G4VEmModel.

Definition at line 94 of file G4EmMultiModel.cc.

References DBL_MAX, model, and nModels.

G4EmMultiModel& G4EmMultiModel::operator= ( const G4EmMultiModel right  )  [private]

void G4VEmModel::SampleScattering ( const G4DynamicParticle ,
G4double  safety 
) [inline, virtual, inherited]

Reimplemented in G4MuMscModel, G4UrbanMscModel, and G4UrbanMscModel90.

Definition at line 395 of file G4VEmModel.hh.

Referenced by G4VMultipleScattering::PostStepDoIt().

void G4EmMultiModel::SampleSecondaries ( std::vector< G4DynamicParticle * > *  ,
const G4MaterialCutsCouple ,
const G4DynamicParticle ,
G4double  tmin,
G4double  tmax 
) [virtual]

Implements G4VEmModel.

Definition at line 143 of file G4EmMultiModel.cc.

References cross_section, CrossSection(), G4UniformRand, G4DynamicParticle::GetDefinition(), G4DynamicParticle::GetKineticEnergy(), model, nModels, and tsecmin.

Here is the call graph for this function:

const G4Element * G4VEmModel::SelectRandomAtom ( const G4Material ,
const G4ParticleDefinition ,
G4double  kineticEnergy,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
) [inline, inherited]

Definition at line 330 of file G4VEmModel.hh.

References G4VEmModel::CrossSectionPerVolume(), G4VEmModel::currentElement, G4UniformRand, G4Material::GetElementVector(), G4Material::GetNumberOfElements(), and G4VEmModel::xsec.

Referenced by G4PEEffectModel::SampleSecondaries(), G4eCoulombScatteringModel::SampleSecondaries(), G4CoulombScatteringModel::SampleSecondaries(), and G4BetheHeitlerModel::SampleSecondaries().

Here is the call graph for this function:

void G4VEmModel::SetCurrentElement ( const G4Element  )  [inline, protected, inherited]

Definition at line 362 of file G4VEmModel.hh.

References G4VEmModel::currentElement.

Referenced by G4eBremsstrahlungModel::SelectRandomAtom().

void G4VEmModel::SetHighEnergyLimit ( G4double   )  [inline, inherited]

Definition at line 248 of file G4VEmModel.hh.

References G4VEmModel::highLimit.

Referenced by G4eeToHadronsMultiModel::Initialise(), G4ionIonisation::InitialiseEnergyLossProcess(), G4hIonisation::InitialiseEnergyLossProcess(), G4eIonisation::InitialiseEnergyLossProcess(), G4eBremsstrahlung::InitialiseEnergyLossProcess(), G4ePolarizedIonisation::InitialiseEnergyLossProcess(), G4ePolarizedBremsstrahlung::InitialiseEnergyLossProcess(), G4MuPairProduction::InitialiseEnergyLossProcess(), G4MuIonisation::InitialiseEnergyLossProcess(), G4MuBremsstrahlung::InitialiseEnergyLossProcess(), G4mplIonisation::InitialiseEnergyLossProcess(), G4hhIonisation::InitialiseEnergyLossProcess(), G4PhotoElectricEffect::InitialiseProcess(), G4MultipleScattering71::InitialiseProcess(), G4GammaConversion::InitialiseProcess(), G4eplusAnnihilation::InitialiseProcess(), G4CoulombScattering::InitialiseProcess(), G4ComptonScattering::InitialiseProcess(), G4PolarizedPhotoElectricEffect::InitialiseProcess(), G4PolarizedGammaConversion::InitialiseProcess(), G4PolarizedCompton::InitialiseProcess(), and G4eplusPolarizedAnnihilation::InitialiseProcess().

void G4VEmModel::SetLowEnergyLimit ( G4double   )  [inline, inherited]

Definition at line 255 of file G4VEmModel.hh.

References G4VEmModel::lowLimit.

Referenced by G4MuPairProductionModel::G4MuPairProductionModel(), G4ionIonisation::InitialiseEnergyLossProcess(), G4hIonisation::InitialiseEnergyLossProcess(), G4eIonisation::InitialiseEnergyLossProcess(), G4eBremsstrahlung::InitialiseEnergyLossProcess(), G4ePolarizedIonisation::InitialiseEnergyLossProcess(), G4ePolarizedBremsstrahlung::InitialiseEnergyLossProcess(), G4MuPairProduction::InitialiseEnergyLossProcess(), G4MuIonisation::InitialiseEnergyLossProcess(), G4MuBremsstrahlung::InitialiseEnergyLossProcess(), G4mplIonisation::InitialiseEnergyLossProcess(), G4hhIonisation::InitialiseEnergyLossProcess(), G4PhotoElectricEffect::InitialiseProcess(), G4MultipleScattering71::InitialiseProcess(), G4GammaConversion::InitialiseProcess(), G4eplusAnnihilation::InitialiseProcess(), G4CoulombScattering::InitialiseProcess(), G4ComptonScattering::InitialiseProcess(), G4PolarizedPhotoElectricEffect::InitialiseProcess(), G4PolarizedGammaConversion::InitialiseProcess(), G4PolarizedCompton::InitialiseProcess(), and G4eplusPolarizedAnnihilation::InitialiseProcess().

void G4VEmModel::SetParticleChange ( G4VParticleChange ,
G4VEmFluctuationModel  
) [inline, inherited]

Definition at line 262 of file G4VEmModel.hh.

References G4VEmModel::fluc, and G4VEmModel::pParticleChange.

Referenced by G4VMultipleScattering::AddEmModel(), G4VEnergyLossProcess::AddEmModel(), and G4VEmProcess::AddEmModel().


Member Data Documentation

G4DataVector G4EmMultiModel::cross_section [private]

Definition at line 111 of file G4EmMultiModel.hh.

Referenced by AddModel(), G4EmMultiModel(), and SampleSecondaries().

std::vector<G4VEmModel*> G4EmMultiModel::model [private]

Definition at line 109 of file G4EmMultiModel.hh.

Referenced by AddModel(), ComputeDEDX(), CrossSection(), DefineForRegion(), G4EmMultiModel(), Initialise(), MinEnergyCut(), SampleSecondaries(), and ~G4EmMultiModel().

G4int G4EmMultiModel::nModels [private]

Definition at line 108 of file G4EmMultiModel.hh.

Referenced by AddModel(), ComputeDEDX(), CrossSection(), DefineForRegion(), Initialise(), MinEnergyCut(), SampleSecondaries(), and ~G4EmMultiModel().

G4VParticleChange* G4VEmModel::pParticleChange [protected, inherited]

Definition at line 228 of file G4VEmModel.hh.

Referenced by G4UrbanMscModel90::Initialise(), G4UrbanMscModel::Initialise(), G4PEEffectModel::Initialise(), G4PAIPhotonModel::Initialise(), G4PAIModel::Initialise(), G4MscModel71::Initialise(), G4MollerBhabhaModel::Initialise(), G4KleinNishinaCompton::Initialise(), G4eeToTwoGammaModel::Initialise(), G4eCoulombScatteringModel::Initialise(), G4eBremsstrahlungModel::Initialise(), G4BraggModel::Initialise(), G4BraggIonModel::Initialise(), G4BetheHeitlerModel::Initialise(), G4BetheBlochModel::Initialise(), G4PolarizedAnnihilationModel::Initialise(), G4MuPairProductionModel::Initialise(), G4MuMscModel::Initialise(), G4MuBremsstrahlungModel::Initialise(), G4MuBetheBlochModel::Initialise(), G4mplIonisationModel::Initialise(), G4eeToHadronsMultiModel::Initialise(), and G4VEmModel::SetParticleChange().

G4DataVector G4EmMultiModel::tsecmin [private]

Definition at line 110 of file G4EmMultiModel.hh.

Referenced by AddModel(), CrossSection(), G4EmMultiModel(), and SampleSecondaries().


The documentation for this class was generated from the following files:
Generated on Sat Apr 12 06:13:22 2008 for Geant4 by  doxygen 1.4.7