Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes
G4VEmModel Class Referenceabstract

#include <G4VEmModel.hh>

Inheritance diagram for G4VEmModel:
G4BetheBlochModel G4BetheHeitlerModel G4BoldyshevTripletModel G4BraggIonModel G4BraggModel G4DNABornExcitationModel G4DNABornIonisationModel G4DNAChampionElasticModel G4DNADingfelderChargeDecreaseModel G4DNADingfelderChargeIncreaseModel G4DNAEmfietzoglouExcitationModel G4DNAMeltonAttachmentModel G4DNAMillerGreenExcitationModel G4DNAOneStepSolvatationModel G4DNARuddIonisationExtendedModel G4DNARuddIonisationModel G4DNASancheExcitationModel G4DNAScreenedRutherfordElasticModel G4DNATransformElectronModel G4eBremParametrizedModel G4eBremsstrahlungRelModel G4eCoulombScatteringModel G4eeToHadronsModel G4eeToHadronsMultiModel G4eeToTwoGammaModel G4EmMultiModel G4eSingleCoulombScatteringModel G4hCoulombScatteringModel G4HeatedKleinNishinaCompton G4ICRU49NuclearStoppingModel G4ICRU73QOModel G4IonCoulombScatteringModel G4IonParametrisedLossModel G4KleinNishinaCompton G4KleinNishinaModel G4LivermoreComptonModel G4LivermoreComptonModifiedModel G4LivermoreGammaConversionModel G4LivermoreGammaConversionModelRC G4LivermoreIonisationModel G4LivermoreNuclearGammaConversionModel G4LivermorePhotoElectricModel G4LivermorePolarizedComptonModel G4LivermorePolarizedGammaConversionModel G4LivermorePolarizedPhotoElectricModel G4LivermorePolarizedRayleighModel G4LivermoreRayleighModel G4LowEPComptonModel G4MicroElecElasticModel G4MicroElecInelasticModel G4MollerBhabhaModel G4mplIonisationModel G4mplIonisationWithDeltaModel G4MuBetheBlochModel G4MuBremsstrahlungModel G4MuElecElasticModel G4MuElecInelasticModel G4MuPairProductionModel G4PAIModel G4PAIPhotModel G4PAIPhotonModel G4PairProductionRelModel G4PEEffectFluoModel G4PenelopeAnnihilationModel G4PenelopeBremsstrahlungModel G4PenelopeComptonModel G4PenelopeGammaConversionModel G4PenelopeIonisationModel G4PenelopePhotoElectricModel G4PenelopeRayleighModel G4VMscModel G4XrayRayleighModel

Public Member Functions

 G4VEmModel (const G4String &nam)
 
virtual ~G4VEmModel ()
 
virtual void Initialise (const G4ParticleDefinition *, const G4DataVector &)=0
 
virtual void SampleSecondaries (std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin=0.0, G4double tmax=DBL_MAX)=0
 
virtual void InitialiseLocal (const G4ParticleDefinition *, G4VEmModel *masterModel)
 
virtual void InitialiseForMaterial (const G4ParticleDefinition *, const G4Material *)
 
virtual void InitialiseForElement (const G4ParticleDefinition *, G4int Z)
 
virtual G4double ComputeDEDXPerVolume (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)
 
virtual G4double CrossSectionPerVolume (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
virtual G4double ComputeCrossSectionPerAtom (const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0., G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
virtual G4double ChargeSquareRatio (const G4Track &)
 
virtual G4double GetChargeSquareRatio (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
virtual G4double GetParticleCharge (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
virtual void StartTracking (G4Track *)
 
virtual void CorrectionsAlongStep (const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double &eloss, G4double &niel, G4double length)
 
virtual G4double Value (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy)
 
virtual G4double MinPrimaryEnergy (const G4Material *, const G4ParticleDefinition *, G4double cut=0.0)
 
virtual G4double MinEnergyCut (const G4ParticleDefinition *, const G4MaterialCutsCouple *)
 
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

G4ParticleChangeForLossGetParticleChangeForLoss ()
 
G4ParticleChangeForGammaGetParticleChangeForGamma ()
 
virtual G4double MaxSecondaryEnergy (const G4ParticleDefinition *, G4double kineticEnergy)
 
const G4MaterialCutsCoupleCurrentCouple () const
 
void SetCurrentElement (const G4Element *)
 

Protected Attributes

G4ElementDatafElementData
 
G4VParticleChangepParticleChange
 
G4PhysicsTablexSectionTable
 
const std::vector< G4double > * theDensityFactor
 
const std::vector< G4int > * theDensityIdx
 
size_t idxTable
 

Detailed Description

Definition at line 103 of file G4VEmModel.hh.

Constructor & Destructor Documentation

G4VEmModel::G4VEmModel ( const G4String nam)

Definition at line 65 of file G4VEmModel.cc.

References idxTable, G4LossTableManager::Instance(), and G4LossTableManager::Register().

65  :
66  flucModel(0),anglModel(0), name(nam), lowLimit(0.1*CLHEP::keV),
67  highLimit(100.0*CLHEP::TeV),eMinActive(0.0),eMaxActive(DBL_MAX),
68  polarAngleLimit(CLHEP::pi),secondaryThreshold(DBL_MAX),
69  theLPMflag(false),flagDeexcitation(false),flagForceBuildTable(false),
70  isMaster(true),fElementData(0),pParticleChange(0),xSectionTable(0),
71  theDensityFactor(0),theDensityIdx(0),fCurrentCouple(0),fCurrentElement(0),
72  nsec(5)
73 {
74  xsec.resize(nsec);
75  nSelectors = 0;
76  elmSelectors = 0;
77  localElmSelectors = true;
78  localTable = true;
79  useAngularGenerator = false;
80  idxTable = 0;
81 
82  fManager = G4LossTableManager::Instance();
83  fManager->Register(this);
84 }
size_t idxTable
Definition: G4VEmModel.hh:402
static G4LossTableManager * Instance()
const XML_Char * name
const std::vector< G4int > * theDensityIdx
Definition: G4VEmModel.hh:401
void Register(G4VEnergyLossProcess *p)
const std::vector< G4double > * theDensityFactor
Definition: G4VEmModel.hh:400
G4VParticleChange * pParticleChange
Definition: G4VEmModel.hh:398
G4PhysicsTable * xSectionTable
Definition: G4VEmModel.hh:399
#define DBL_MAX
Definition: templates.hh:83
G4ElementData * fElementData
Definition: G4VEmModel.hh:397
G4VEmModel::~G4VEmModel ( )
virtual

Definition at line 88 of file G4VEmModel.cc.

References G4LossTableManager::DeRegister(), and xSectionTable.

89 {
90  if(localElmSelectors) {
91  if(nSelectors > 0) {
92  for(G4int i=0; i<nSelectors; ++i) {
93  delete (*elmSelectors)[i];
94  }
95  }
96  delete elmSelectors;
97  }
98  delete anglModel;
99 
100  if(localTable) { delete xSectionTable; }
101 
102  fManager->DeRegister(this);
103 }
void DeRegister(G4VEnergyLossProcess *p)
int G4int
Definition: G4Types.hh:78
G4PhysicsTable * xSectionTable
Definition: G4VEmModel.hh:399

Member Function Documentation

G4double G4VEmModel::ChargeSquareRatio ( const G4Track track)
virtual

Reimplemented in G4BraggIonGasModel, and G4BetheBlochIonGasModel.

Definition at line 314 of file G4VEmModel.cc.

References GetChargeSquareRatio(), G4Track::GetKineticEnergy(), G4Track::GetMaterial(), and G4Track::GetParticleDefinition().

Referenced by G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength().

315 {
317  track.GetMaterial(), track.GetKineticEnergy());
318 }
G4double GetKineticEnergy() const
const G4ParticleDefinition * GetParticleDefinition() const
G4Material * GetMaterial() const
virtual G4double GetChargeSquareRatio(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
Definition: G4VEmModel.cc:322
G4double G4VEmModel::ComputeCrossSectionPerAtom ( const G4ParticleDefinition ,
G4double  kinEnergy,
G4double  Z,
G4double  A = 0.,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)
virtual

Reimplemented in G4IonParametrisedLossModel, G4BetheBlochModel, G4eCoulombScatteringModel, G4LowEPComptonModel, G4MuBetheBlochModel, G4MuBremsstrahlungModel, G4BraggIonModel, G4BraggModel, G4ICRU73QOModel, G4MuPairProductionModel, G4UrbanMscModel, G4PenelopeComptonModel, G4GoudsmitSaundersonMscModel, G4eBremParametrizedModel, G4PenelopeIonisationModel, G4eBremsstrahlungRelModel, G4IonCoulombScatteringModel, G4WentzelVIModel, G4WentzelVIRelModel, G4mplIonisationWithDeltaModel, G4MollerBhabhaModel, G4EmMultiModel, G4eeToHadronsMultiModel, G4PenelopeBremsstrahlungModel, G4eeToTwoGammaModel, G4eSingleCoulombScatteringModel, G4hCoulombScatteringModel, G4eeToHadronsModel, G4PairProductionRelModel, G4BetheHeitlerModel, G4PenelopePhotoElectricModel, G4KleinNishinaCompton, G4KleinNishinaModel, G4LivermoreIonisationModel, G4PenelopeRayleighModel, G4HeatedKleinNishinaCompton, G4PEEffectFluoModel, G4PenelopeAnnihilationModel, G4PenelopeGammaConversionModel, G4PolarizedComptonModel, G4LivermoreComptonModel, G4LivermoreGammaConversionModel, G4LivermorePhotoElectricModel, G4LivermoreComptonModifiedModel, G4LivermorePolarizedComptonModel, G4LivermorePolarizedGammaConversionModel, G4LivermoreGammaConversionModelRC, G4LivermoreNuclearGammaConversionModel, G4LivermorePolarizedRayleighModel, G4LivermoreRayleighModel, G4BoldyshevTripletModel, G4XrayRayleighModel, and G4LivermorePolarizedPhotoElectricModel.

Definition at line 300 of file G4VEmModel.cc.

Referenced by G4VEmProcess::ComputeCrossSectionPerAtom(), G4EmCalculator::ComputeCrossSectionPerAtom(), ComputeCrossSectionPerAtom(), G4AdjointIonIonisationModel::CorrectPostStepWeight(), CrossSectionPerVolume(), G4AdjointComptonModel::DiffCrossSectionPerAtomPrimToScatPrim(), G4AdjointIonIonisationModel::DiffCrossSectionPerAtomPrimToSecond(), G4AdjointhIonisationModel::DiffCrossSectionPerAtomPrimToSecond(), G4VEmAdjointModel::DiffCrossSectionPerAtomPrimToSecond(), G4AdjointBremsstrahlungModel::DiffCrossSectionPerVolumePrimToSecondApproximated2(), and main().

303 {
304  return 0.0;
305 }
G4double G4VEmModel::ComputeCrossSectionPerAtom ( const G4ParticleDefinition part,
const G4Element elm,
G4double  kinEnergy,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)
inline

Definition at line 495 of file G4VEmModel.hh.

References ComputeCrossSectionPerAtom(), G4Element::GetN(), G4Element::GetZ(), and SetCurrentElement().

501 {
502  SetCurrentElement(elm);
503  return ComputeCrossSectionPerAtom(part,kinEnergy,elm->GetZ(),elm->GetN(),
504  cutEnergy,maxEnergy);
505 }
G4double GetN() const
Definition: G4Element.hh:134
G4double GetZ() const
Definition: G4Element.hh:131
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0., G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
Definition: G4VEmModel.cc:300
void SetCurrentElement(const G4Element *)
Definition: G4VEmModel.hh:433
G4double G4VEmModel::ComputeDEDX ( const G4MaterialCutsCouple couple,
const G4ParticleDefinition part,
G4double  kineticEnergy,
G4double  cutEnergy = DBL_MAX 
)
inline

Definition at line 456 of file G4VEmModel.hh.

References ComputeDEDXPerVolume(), G4MaterialCutsCouple::GetMaterial(), and SetCurrentCouple().

460 {
461  SetCurrentCouple(couple);
462  return ComputeDEDXPerVolume(couple->GetMaterial(),part,kinEnergy,cutEnergy);
463 }
virtual G4double ComputeDEDXPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)
Definition: G4VEmModel.cc:236
void SetCurrentCouple(const G4MaterialCutsCouple *)
Definition: G4VEmModel.hh:419
const G4Material * GetMaterial() const
G4double G4VEmModel::ComputeDEDXPerVolume ( const G4Material ,
const G4ParticleDefinition ,
G4double  kineticEnergy,
G4double  cutEnergy = DBL_MAX 
)
virtual
G4double G4VEmModel::ComputeMeanFreePath ( const G4ParticleDefinition part,
G4double  kineticEnergy,
const G4Material material,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)
inline

Definition at line 481 of file G4VEmModel.hh.

References CrossSectionPerVolume(), DBL_MAX, and DBL_MIN.

Referenced by main().

486 {
487  G4double mfp = DBL_MAX;
488  G4double cross = CrossSectionPerVolume(material,part,ekin,emin,emax);
489  if (cross > DBL_MIN) { mfp = 1./cross; }
490  return mfp;
491 }
virtual G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
Definition: G4VEmModel.cc:245
#define DBL_MIN
Definition: templates.hh:75
double G4double
Definition: G4Types.hh:76
#define DBL_MAX
Definition: templates.hh:83
void G4VEmModel::CorrectionsAlongStep ( const G4MaterialCutsCouple ,
const G4DynamicParticle ,
G4double eloss,
G4double niel,
G4double  length 
)
virtual
G4double G4VEmModel::CrossSection ( const G4MaterialCutsCouple couple,
const G4ParticleDefinition part,
G4double  kineticEnergy,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)
inline

Definition at line 467 of file G4VEmModel.hh.

References CrossSectionPerVolume(), G4MaterialCutsCouple::GetMaterial(), and SetCurrentCouple().

Referenced by G4PolarizedCompton::ComputeAsymmetry(), G4ePolarizedIonisation::ComputeAsymmetry(), G4eplusPolarizedAnnihilation::ComputeAsymmetry(), G4EmModelManager::FillLambdaVector(), and G4EmMultiModel::SampleSecondaries().

472 {
473  SetCurrentCouple(couple);
474  return CrossSectionPerVolume(couple->GetMaterial(),part,kinEnergy,
475  cutEnergy,maxEnergy);
476 }
virtual G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
Definition: G4VEmModel.cc:245
void SetCurrentCouple(const G4MaterialCutsCouple *)
Definition: G4VEmModel.hh:419
const G4Material * GetMaterial() const
G4double G4VEmModel::CrossSectionPerVolume ( const G4Material material,
const G4ParticleDefinition p,
G4double  kineticEnergy,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)
virtual

Reimplemented in G4IonParametrisedLossModel, G4BetheBlochModel, G4MuBetheBlochModel, G4BraggIonModel, G4BraggModel, G4ICRU73QOModel, G4PenelopeIonisationModel, G4MollerBhabhaModel, G4PAIModel, G4PAIPhotonModel, G4PenelopeBremsstrahlungModel, G4eeToTwoGammaModel, G4PAIPhotModel, G4PenelopeComptonModel, G4PEEffectFluoModel, G4MicroElecInelasticModel, G4MuElecInelasticModel, G4eeToHadronsMultiModel, G4eeToHadronsModel, G4BetheBlochNoDeltaModel, G4BraggNoDeltaModel, G4ICRU73NoDeltaModel, G4DNAOneStepSolvatationModel, G4MicroElecElasticModel, G4MuElecElasticModel, G4DNABornIonisationModel, G4DNATransformElectronModel, G4DNARuddIonisationExtendedModel, G4DNARuddIonisationModel, G4DNASancheExcitationModel, G4DNAMeltonAttachmentModel, G4DNABornExcitationModel, G4DNAMillerGreenExcitationModel, MyKleinNishinaCompton, G4DNAEmfietzoglouExcitationModel, G4DNAChampionElasticModel, G4DNADingfelderChargeIncreaseModel, G4DNADingfelderChargeDecreaseModel, and G4DNAScreenedRutherfordElasticModel.

Definition at line 245 of file G4VEmModel.cc.

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

Referenced by G4AdjointBremsstrahlungModel::AdjointCrossSection(), G4EmCalculator::ComputeCrossSectionPerVolume(), ComputeMeanFreePath(), CrossSection(), MyKleinNishinaCompton::CrossSectionPerVolume(), G4VEmProcess::CrossSectionPerVolume(), G4VEnergyLossProcess::CrossSectionPerVolume(), G4VEmAdjointModel::DiffCrossSectionPerVolumePrimToSecond(), G4AdjointBremsstrahlungModel::DiffCrossSectionPerVolumePrimToSecondApproximated1(), G4AdjointBremsstrahlungModel::GetAdjointCrossSection(), G4VMscModel::GetTransportMeanFreePath(), SelectRandomAtom(), and Value().

250 {
251  SetupForMaterial(p, material, ekin);
252  G4double cross = 0.0;
253  const G4ElementVector* theElementVector = material->GetElementVector();
254  const G4double* theAtomNumDensityVector =
255  material->GetVecNbOfAtomsPerVolume();
256  G4int nelm = material->GetNumberOfElements();
257  if(nelm > nsec) {
258  xsec.resize(nelm);
259  nsec = nelm;
260  }
261  for (G4int i=0; i<nelm; i++) {
262  cross += theAtomNumDensityVector[i]*
263  ComputeCrossSectionPerAtom(p,(*theElementVector)[i],ekin,emin,emax);
264  xsec[i] = cross;
265  }
266  return cross;
267 }
std::vector< G4Element * > G4ElementVector
virtual void SetupForMaterial(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
Definition: G4VEmModel.cc:380
const G4ElementVector * GetElementVector() const
Definition: G4Material.hh:188
int G4int
Definition: G4Types.hh:78
const G4double * GetVecNbOfAtomsPerVolume() const
Definition: G4Material.hh:204
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0., G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
Definition: G4VEmModel.cc:300
size_t GetNumberOfElements() const
Definition: G4Material.hh:184
double G4double
Definition: G4Types.hh:76
const G4MaterialCutsCouple * G4VEmModel::CurrentCouple ( ) const
inlineprotected
G4bool G4VEmModel::DeexcitationFlag ( ) const
inline

Definition at line 641 of file G4VEmModel.hh.

Referenced by G4EmModelManager::DumpModelList().

642 {
643  return flagDeexcitation;
644 }
void G4VEmModel::DefineForRegion ( const G4Region )
virtual

Reimplemented in G4PAIPhotonModel, G4PAIModel, and G4PAIPhotModel.

Definition at line 309 of file G4VEmModel.cc.

Referenced by G4EmModelManager::AddEmModel().

310 {}
G4bool G4VEmModel::ForceBuildTableFlag ( ) const
inline

Definition at line 648 of file G4VEmModel.hh.

Referenced by G4VMscModel::GetParticleChangeForMSC().

649 {
650  return flagForceBuildTable;
651 }
G4VEmAngularDistribution * G4VEmModel::GetAngularDistribution ( )
inline
G4double G4VEmModel::GetChargeSquareRatio ( const G4ParticleDefinition p,
const G4Material ,
G4double  kineticEnergy 
)
virtual
G4PhysicsTable * G4VEmModel::GetCrossSectionTable ( )
inline

Definition at line 784 of file G4VEmModel.hh.

References xSectionTable.

Referenced by G4VMultipleScattering::BuildPhysicsTable(), G4EmModelManager::DumpModelList(), and G4VMultipleScattering::StorePhysicsTable().

785 {
786  return xSectionTable;
787 }
G4PhysicsTable * xSectionTable
Definition: G4VEmModel.hh:399
const G4Element * G4VEmModel::GetCurrentElement ( ) const
inline
G4ElementData * G4VEmModel::GetElementData ( )
inline

Definition at line 777 of file G4VEmModel.hh.

References fElementData.

Referenced by G4MuPairProductionModel::InitialiseLocal(), and G4MuPairProduction::PrintInfo().

778 {
779  return fElementData;
780 }
G4ElementData * fElementData
Definition: G4VEmModel.hh:397
std::vector< G4EmElementSelector * > * G4VEmModel::GetElementSelectors ( )
inline
G4VEmFluctuationModel * G4VEmModel::GetModelOfFluctuations ( )
inline
const G4String & G4VEmModel::GetName ( void  ) const
inline
G4ParticleChangeForGamma * G4VEmModel::GetParticleChangeForGamma ( )
protected

Definition at line 121 of file G4VEmModel.cc.

References pParticleChange.

Referenced by G4LivermoreRayleighModel::Initialise(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4LivermorePolarizedPhotoElectricModel::Initialise(), G4DNAChampionElasticModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4BoldyshevTripletModel::Initialise(), G4DNAEmfietzoglouExcitationModel::Initialise(), G4XrayRayleighModel::Initialise(), G4LivermorePolarizedRayleighModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4DNABornExcitationModel::Initialise(), G4LivermoreNuclearGammaConversionModel::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4LivermoreGammaConversionModelRC::Initialise(), G4DNASancheExcitationModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), G4DNARuddIonisationModel::Initialise(), G4LivermoreComptonModel::Initialise(), G4DNABornIonisationModel::Initialise(), G4LivermoreComptonModifiedModel::Initialise(), G4DNATransformElectronModel::Initialise(), G4LivermorePhotoElectricModel::Initialise(), G4MicroElecElasticModel::Initialise(), G4MuElecElasticModel::Initialise(), G4DNAOneStepSolvatationModel::Initialise(), G4PenelopeAnnihilationModel::Initialise(), G4PenelopeRayleighModel::Initialise(), G4PenelopeGammaConversionModel::Initialise(), G4KleinNishinaModel::Initialise(), G4PEEffectFluoModel::Initialise(), G4KleinNishinaCompton::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4HeatedKleinNishinaCompton::Initialise(), G4BetheHeitlerModel::Initialise(), G4eeToTwoGammaModel::Initialise(), G4eeToHadronsMultiModel::Initialise(), G4PairProductionRelModel::Initialise(), G4PenelopeComptonModel::Initialise(), G4PolarizedAnnihilationModel::Initialise(), G4MicroElecInelasticModel::Initialise(), G4MuElecInelasticModel::Initialise(), G4hCoulombScatteringModel::Initialise(), G4eSingleCoulombScatteringModel::Initialise(), G4IonCoulombScatteringModel::Initialise(), G4eCoulombScatteringModel::Initialise(), and G4LowEPComptonModel::Initialise().

122 {
124  if (pParticleChange) {
125  p = static_cast<G4ParticleChangeForGamma*>(pParticleChange);
126  } else {
127  p = new G4ParticleChangeForGamma();
128  pParticleChange = p;
129  }
130  return p;
131 }
const char * p
Definition: xmltok.h:285
G4VParticleChange * pParticleChange
Definition: G4VEmModel.hh:398
G4ParticleChangeForLoss * G4VEmModel::GetParticleChangeForLoss ( )
protected
G4double G4VEmModel::GetParticleCharge ( const G4ParticleDefinition p,
const G4Material ,
G4double  kineticEnergy 
)
virtual
G4double G4VEmModel::HighEnergyActivationLimit ( ) const
inline

Definition at line 606 of file G4VEmModel.hh.

Referenced by G4EmModelManager::DumpModelList(), and G4VMscModel::GetParticleChangeForMSC().

607 {
608  return eMaxActive;
609 }
G4double G4VEmModel::HighEnergyLimit ( ) const
inline

Definition at line 592 of file G4VEmModel.hh.

Referenced by G4DNATransformElectronModel::CrossSectionPerVolume(), G4DNAOneStepSolvatationModel::CrossSectionPerVolume(), G4eeToHadronsModel::G4eeToHadronsModel(), G4IonParametrisedLossModel::G4IonParametrisedLossModel(), G4ContinuousGainOfEnergy::GetContinuousStepLimit(), G4VMscModel::GetParticleChangeForMSC(), G4LivermoreRayleighModel::Initialise(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4LivermorePolarizedPhotoElectricModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4DNAChampionElasticModel::Initialise(), G4DNAEmfietzoglouExcitationModel::Initialise(), G4BoldyshevTripletModel::Initialise(), G4LivermorePolarizedRayleighModel::Initialise(), G4DNABornExcitationModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4LivermoreNuclearGammaConversionModel::Initialise(), G4LivermoreGammaConversionModelRC::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4DNASancheExcitationModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4DNARuddIonisationModel::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), G4LivermoreComptonModel::Initialise(), G4DNABornIonisationModel::Initialise(), G4LivermoreComptonModifiedModel::Initialise(), G4MicroElecElasticModel::Initialise(), G4MuElecElasticModel::Initialise(), G4PenelopeAnnihilationModel::Initialise(), G4PenelopeGammaConversionModel::Initialise(), G4PenelopeRayleighModel::Initialise(), G4LivermoreIonisationModel::Initialise(), G4eeToHadronsModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4PAIPhotModel::Initialise(), G4PenelopeComptonModel::Initialise(), G4PenelopeBremsstrahlungModel::Initialise(), G4MicroElecInelasticModel::Initialise(), G4MuElecInelasticModel::Initialise(), G4PenelopeIonisationModel::Initialise(), G4PAIModel::Initialise(), G4MuPairProductionModel::Initialise(), G4LowEPComptonModel::Initialise(), G4EmModelManager::Initialise(), G4alphaIonisation::InitialiseEnergyLossProcess(), G4mplIonisation::InitialiseEnergyLossProcess(), G4ionIonisation::InitialiseEnergyLossProcess(), G4CoulombScattering::InitialiseProcess(), G4VMultipleScattering::PreparePhysicsTable(), G4VEmProcess::PreparePhysicsTable(), G4VEnergyLossProcess::PreparePhysicsTable(), G4eBremsstrahlung::PrintInfo(), G4DNAOneStepSolvatationModel::SampleSecondaries(), G4mplIonisationModel::SetParticle(), and G4mplIonisationWithDeltaModel::SetParticle().

593 {
594  return highLimit;
595 }
virtual void G4VEmModel::Initialise ( const G4ParticleDefinition ,
const G4DataVector  
)
pure virtual

Implemented in G4IonParametrisedLossModel, G4LowEPComptonModel, G4eCoulombScatteringModel, G4UrbanMscModel, G4MuBremsstrahlungModel, G4MuPairProductionModel, G4BetheBlochModel, G4BraggModel, G4GoudsmitSaundersonMscModel, G4ICRU73QOModel, G4IonCoulombScatteringModel, G4MuBetheBlochModel, G4BraggIonModel, G4PAIModel, G4PAIPhotonModel, G4WentzelVIModel, G4WentzelVIRelModel, G4eSingleCoulombScatteringModel, G4hCoulombScatteringModel, G4PenelopeIonisationModel, G4MicroElecInelasticModel, G4MuElecInelasticModel, G4PenelopeBremsstrahlungModel, G4PenelopeComptonModel, G4PolarizedAnnihilationModel, G4MollerBhabhaModel, G4PAIPhotModel, G4PolarizedPEEffectModel, G4eBremsstrahlungRelModel, G4eeToHadronsMultiModel, G4LivermoreBremsstrahlungModel, G4eBremParametrizedModel, G4ICRU49NuclearStoppingModel, G4PairProductionRelModel, G4SeltzerBergerModel, G4BetheHeitlerModel, G4eeToTwoGammaModel, G4EmMultiModel, G4eeToHadronsModel, G4PenelopePhotoElectricModel, G4HeatedKleinNishinaCompton, G4mplIonisationModel, G4mplIonisationWithDeltaModel, G4LivermoreIonisationModel, G4ePolarizedBremsstrahlungModel, G4PolarizedGammaConversionModel, G4KleinNishinaCompton, G4KleinNishinaModel, G4PEEffectFluoModel, G4PenelopeGammaConversionModel, G4PenelopeRayleighModel, G4PenelopeAnnihilationModel, G4DummyModel, G4DNAOneStepSolvatationModel, G4MicroElecElasticModel, G4MuElecElasticModel, G4LivermorePhotoElectricModel, G4DNABornIonisationModel, G4DNATransformElectronModel, G4LivermoreComptonModifiedModel, G4LivermoreComptonModel, G4DNARuddIonisationExtendedModel, G4DNARuddIonisationModel, G4DNASancheExcitationModel, G4LivermorePolarizedComptonModel, G4LivermorePolarizedGammaConversionModel, G4DNAMeltonAttachmentModel, G4LivermoreGammaConversionModelRC, G4DNABornExcitationModel, G4DNAMillerGreenExcitationModel, G4LivermoreNuclearGammaConversionModel, G4LivermorePolarizedRayleighModel, G4DNAEmfietzoglouExcitationModel, G4BoldyshevTripletModel, G4XrayRayleighModel, G4DNAChampionElasticModel, G4DNADingfelderChargeIncreaseModel, G4LivermoreGammaConversionModel, G4LivermorePolarizedPhotoElectricModel, G4DNADingfelderChargeDecreaseModel, G4DNAScreenedRutherfordElasticModel, and G4LivermoreRayleighModel.

Referenced by G4EmModelManager::Initialise(), and InitialiseElementSelectors().

void G4VEmModel::InitialiseElementSelectors ( const G4ParticleDefinition part,
const G4DataVector cuts 
)

Definition at line 135 of file G4VEmModel.cc.

References DBL_MAX, G4Log(), G4MaterialCutsCouple::GetMaterial(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4LossTableManager::GetNumberOfBinsPerDecade(), G4ProductionCutsTable::GetProductionCutsTable(), G4ProductionCutsTable::GetTableSize(), Initialise(), log106, eplot::material, G4INCL::Math::max(), and MinPrimaryEnergy().

Referenced by G4LivermoreRayleighModel::Initialise(), G4XrayRayleighModel::Initialise(), G4LivermorePolarizedRayleighModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermoreComptonModel::Initialise(), G4LivermoreComptonModifiedModel::Initialise(), G4KleinNishinaCompton::Initialise(), G4KleinNishinaModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4BetheHeitlerModel::Initialise(), G4eBremParametrizedModel::Initialise(), G4PairProductionRelModel::Initialise(), G4eBremsstrahlungRelModel::Initialise(), G4PAIPhotModel::Initialise(), G4hCoulombScatteringModel::Initialise(), G4PAIModel::Initialise(), G4MuBremsstrahlungModel::Initialise(), G4MuPairProductionModel::Initialise(), G4eCoulombScatteringModel::Initialise(), and G4LowEPComptonModel::Initialise().

137 {
138  // using spline for element selectors should be investigated in details
139  // because small number of points may provide biased results
140  // large number of points requires significant increase of memory
141  //G4bool spline = fManager->SplineFlag();
142  G4bool spline = false;
143 
144  //G4cout << "IES: for " << GetName() << " Emin(MeV)= " << lowLimit/MeV
145  // << " Emax(MeV)= " << highLimit/MeV << G4endl;
146 
147  // two times less bins because probability functon is normalized
148  // so correspondingly is more smooth
149  if(highLimit <= lowLimit) { return; }
150 
151  G4ProductionCutsTable* theCoupleTable=
153  G4int numOfCouples = theCoupleTable->GetTableSize();
154 
155  // prepare vector
156  if(!elmSelectors) {
157  elmSelectors = new std::vector<G4EmElementSelector*>;
158  }
159  if(numOfCouples > nSelectors) {
160  for(G4int i=nSelectors; i<numOfCouples; ++i) {
161  elmSelectors->push_back(0);
162  }
163  nSelectors = numOfCouples;
164  }
165 
166  // initialise vector
167  for(G4int i=0; i<numOfCouples; ++i) {
168 
169  // no need in element selectors for infionite cuts
170  if(cuts[i] == DBL_MAX) { continue; }
171 
172  fCurrentCouple = theCoupleTable->GetMaterialCutsCouple(i);
173  const G4Material* material = fCurrentCouple->GetMaterial();
174 
175  // selector already exist check if should be deleted
176  G4bool create = true;
177  if((*elmSelectors)[i]) {
178  if(material == ((*elmSelectors)[i])->GetMaterial()) { create = false; }
179  else { delete (*elmSelectors)[i]; }
180  }
181  if(create) {
182  G4double emin = std::max(lowLimit,
183  MinPrimaryEnergy(material, part, cuts[i]));
184  G4double emax = std::max(highLimit, 10*emin);
185  G4int nbins = G4int(fManager->GetNumberOfBinsPerDecade()
186  *G4Log(emax/emin)/log106);
187  if(nbins < 3) { nbins = 3; }
188 
189  (*elmSelectors)[i] = new G4EmElementSelector(this,material,nbins,
190  emin,emax,spline);
191  }
192  ((*elmSelectors)[i])->Initialise(part, cuts[i]);
193  /*
194  G4cout << "G4VEmModel::InitialiseElmSelectors i= " << i
195  << " idx= " << fCurrentCouple->GetIndex()
196  << " " << part->GetParticleName()
197  << " for " << GetName() << " cut= " << cuts[i]
198  << " " << (*elmSelectors)[i] << G4endl;
199  ((*elmSelectors)[i])->Dump(part);
200  */
201  }
202 }
virtual G4double MinPrimaryEnergy(const G4Material *, const G4ParticleDefinition *, G4double cut=0.0)
Definition: G4VEmModel.cc:355
int G4int
Definition: G4Types.hh:78
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &)=0
string material
Definition: eplot.py:19
bool G4bool
Definition: G4Types.hh:79
G4double G4Log(G4double x)
Definition: G4Log.hh:227
static G4ProductionCutsTable * GetProductionCutsTable()
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4int GetNumberOfBinsPerDecade() const
const G4double log106
Definition: G4VEmModel.cc:63
double G4double
Definition: G4Types.hh:76
#define DBL_MAX
Definition: templates.hh:83
const G4Material * GetMaterial() const
void G4VEmModel::InitialiseForElement ( const G4ParticleDefinition ,
G4int  Z 
)
virtual
void G4VEmModel::InitialiseForMaterial ( const G4ParticleDefinition part,
const G4Material material 
)
virtual

Definition at line 212 of file G4VEmModel.cc.

References G4lrint(), G4Material::GetElementVector(), G4Material::GetNumberOfElements(), InitialiseForElement(), and n.

214 {
215  if(material) {
216  const G4ElementVector* theElementVector = material->GetElementVector();
217  G4int n = material->GetNumberOfElements();
218  for(G4int i=0; i<n; ++i) {
219  G4int Z = G4lrint(((*theElementVector)[i])->GetZ());
220  InitialiseForElement(part, Z);
221  }
222  } else {
223  //G4cout << "G4VEmModel::InitialiseForMaterial for " << GetName();
224  //if(part) { G4cout << " and " << part->GetParticleName(); }
225  //G4cout << " with no material" << G4endl;
226  }
227 }
virtual void InitialiseForElement(const G4ParticleDefinition *, G4int Z)
Definition: G4VEmModel.cc:231
std::vector< G4Element * > G4ElementVector
const G4ElementVector * GetElementVector() const
Definition: G4Material.hh:188
int G4int
Definition: G4Types.hh:78
const G4int n
int G4lrint(double ad)
Definition: templates.hh:163
size_t GetNumberOfElements() const
Definition: G4Material.hh:184
void G4VEmModel::InitialiseLocal ( const G4ParticleDefinition ,
G4VEmModel masterModel 
)
virtual
G4bool G4VEmModel::IsActive ( G4double  kinEnergy)
inline
G4bool G4VEmModel::IsMaster ( ) const
inline

Definition at line 676 of file G4VEmModel.hh.

Referenced by G4PenelopePhotoElectricModel::GetNumberOfShellXS(), G4VMscModel::GetParticleChangeForMSC(), G4LivermoreRayleighModel::Initialise(), G4LivermoreComptonModel::Initialise(), G4LivermorePhotoElectricModel::Initialise(), G4PenelopeAnnihilationModel::Initialise(), G4PenelopeRayleighModel::Initialise(), G4PenelopeGammaConversionModel::Initialise(), G4KleinNishinaCompton::Initialise(), G4mplIonisationWithDeltaModel::Initialise(), G4KleinNishinaModel::Initialise(), G4mplIonisationModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4BetheHeitlerModel::Initialise(), G4LivermoreBremsstrahlungModel::Initialise(), G4SeltzerBergerModel::Initialise(), G4eBremParametrizedModel::Initialise(), G4PairProductionRelModel::Initialise(), G4eBremsstrahlungRelModel::Initialise(), G4PAIPhotModel::Initialise(), G4PenelopeBremsstrahlungModel::Initialise(), G4PenelopeComptonModel::Initialise(), G4PenelopeIonisationModel::Initialise(), G4PAIModel::Initialise(), G4MuBremsstrahlungModel::Initialise(), G4MuPairProductionModel::Initialise(), G4eCoulombScatteringModel::Initialise(), G4PenelopeBremsstrahlungModel::InitialiseLocal(), G4LivermoreBremsstrahlungModel::~G4LivermoreBremsstrahlungModel(), G4LivermoreComptonModel::~G4LivermoreComptonModel(), G4LivermorePhotoElectricModel::~G4LivermorePhotoElectricModel(), G4mplIonisationModel::~G4mplIonisationModel(), G4mplIonisationWithDeltaModel::~G4mplIonisationWithDeltaModel(), G4PAIModel::~G4PAIModel(), G4PAIPhotModel::~G4PAIPhotModel(), G4PenelopeBremsstrahlungModel::~G4PenelopeBremsstrahlungModel(), G4PenelopeGammaConversionModel::~G4PenelopeGammaConversionModel(), G4PenelopeIonisationModel::~G4PenelopeIonisationModel(), G4PenelopePhotoElectricModel::~G4PenelopePhotoElectricModel(), G4PenelopeRayleighModel::~G4PenelopeRayleighModel(), and G4SeltzerBergerModel::~G4SeltzerBergerModel().

677 {
678  return isMaster;
679 }
G4double G4VEmModel::LowEnergyActivationLimit ( ) const
inline

Definition at line 613 of file G4VEmModel.hh.

Referenced by G4EmModelManager::DumpModelList(), and G4VMscModel::GetParticleChangeForMSC().

614 {
615  return eMinActive;
616 }
G4double G4VEmModel::LowEnergyLimit ( ) const
inline

Definition at line 599 of file G4VEmModel.hh.

Referenced by G4eBremsstrahlungRelModel::ComputeCrossSectionPerAtom(), G4mplIonisationWithDeltaModel::ComputeCrossSectionPerElectron(), G4EmCalculator::ComputeDEDX(), G4mplIonisationWithDeltaModel::ComputeDEDXPerVolume(), G4eBremsstrahlungRelModel::ComputeDEDXPerVolume(), G4IonParametrisedLossModel::ComputeDEDXPerVolume(), G4IonParametrisedLossModel::CorrectionsAlongStep(), G4eeToHadronsModel::G4eeToHadronsModel(), G4VMscModel::GetParticleChangeForMSC(), G4LivermoreRayleighModel::Initialise(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4DNAChampionElasticModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4LivermorePolarizedPhotoElectricModel::Initialise(), G4DNAEmfietzoglouExcitationModel::Initialise(), G4BoldyshevTripletModel::Initialise(), G4LivermorePolarizedRayleighModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4DNABornExcitationModel::Initialise(), G4LivermoreNuclearGammaConversionModel::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4LivermoreGammaConversionModelRC::Initialise(), G4DNASancheExcitationModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), G4DNARuddIonisationModel::Initialise(), G4LivermoreComptonModel::Initialise(), G4DNABornIonisationModel::Initialise(), G4LivermoreComptonModifiedModel::Initialise(), G4MicroElecElasticModel::Initialise(), G4MuElecElasticModel::Initialise(), G4PenelopeAnnihilationModel::Initialise(), G4PenelopeRayleighModel::Initialise(), G4PenelopeGammaConversionModel::Initialise(), G4LivermoreIonisationModel::Initialise(), G4eeToHadronsModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4eBremParametrizedModel::Initialise(), G4PenelopeBremsstrahlungModel::Initialise(), G4PAIPhotModel::Initialise(), G4PenelopeComptonModel::Initialise(), G4MicroElecInelasticModel::Initialise(), G4MuElecInelasticModel::Initialise(), G4PenelopeIonisationModel::Initialise(), G4PAIModel::Initialise(), G4MuPairProductionModel::Initialise(), G4LowEPComptonModel::Initialise(), G4EmModelManager::Initialise(), G4mplIonisation::InitialiseEnergyLossProcess(), G4CoulombScattering::InitialiseProcess(), G4eBremsstrahlungRelModel::SampleSecondaries(), G4mplIonisationModel::SetParticle(), and G4mplIonisationWithDeltaModel::SetParticle().

600 {
601  return lowLimit;
602 }
G4bool G4VEmModel::LPMFlag ( ) const
inline

Definition at line 634 of file G4VEmModel.hh.

Referenced by G4eBremsstrahlungRelModel::SetupForMaterial().

635 {
636  return theLPMflag;
637 }
G4double G4VEmModel::MaxSecondaryEnergy ( const G4ParticleDefinition ,
G4double  kineticEnergy 
)
protectedvirtual
G4double G4VEmModel::MaxSecondaryKinEnergy ( const G4DynamicParticle dynParticle)
inline
G4double G4VEmModel::MinEnergyCut ( const G4ParticleDefinition ,
const G4MaterialCutsCouple  
)
virtual
G4double G4VEmModel::MinPrimaryEnergy ( const G4Material ,
const G4ParticleDefinition ,
G4double  cut = 0.0 
)
virtual
G4double G4VEmModel::PolarAngleLimit ( ) const
inline
virtual void G4VEmModel::SampleSecondaries ( std::vector< G4DynamicParticle * > *  ,
const G4MaterialCutsCouple ,
const G4DynamicParticle ,
G4double  tmin = 0.0,
G4double  tmax = DBL_MAX 
)
pure virtual

Implemented in G4IonParametrisedLossModel, G4BetheBlochModel, G4MuBetheBlochModel, G4BraggIonModel, G4BraggModel, G4ICRU73QOModel, G4MuBremsstrahlungModel, G4PAIPhotonModel, G4eCoulombScatteringModel, G4MuPairProductionModel, G4MollerBhabhaModel, G4LowEPComptonModel, G4PenelopeIonisationModel, G4PAIModel, G4PenelopeBremsstrahlungModel, G4PenelopeComptonModel, G4eeToTwoGammaModel, G4eeToHadronsModel, G4eBremParametrizedModel, G4IonCoulombScatteringModel, G4PAIPhotModel, G4mplIonisationWithDeltaModel, G4eBremsstrahlungRelModel, G4VMscModel, G4EmMultiModel, G4eeToHadronsMultiModel, G4eSingleCoulombScatteringModel, G4hCoulombScatteringModel, G4PolarizedAnnihilationModel, G4PairProductionRelModel, G4BetheHeitlerModel, G4PEEffectFluoModel, G4MicroElecInelasticModel, G4MuElecInelasticModel, G4PenelopePhotoElectricModel, G4KleinNishinaCompton, G4KleinNishinaModel, G4ICRU49NuclearStoppingModel, G4PolarizedComptonModel, G4HeatedKleinNishinaCompton, G4LivermoreIonisationModel, G4PenelopeRayleighModel, G4PenelopeGammaConversionModel, G4PenelopeAnnihilationModel, G4mplIonisationModel, G4LivermoreBremsstrahlungModel, G4PolarizedMollerBhabhaModel, G4PolarizedPEEffectModel, G4SeltzerBergerModel, G4LivermoreComptonModel, G4ePolarizedBremsstrahlungModel, G4PolarizedGammaConversionModel, G4DNAOneStepSolvatationModel, G4LivermoreGammaConversionModel, G4LivermorePhotoElectricModel, G4MicroElecElasticModel, G4MuElecElasticModel, G4LivermoreComptonModifiedModel, G4DNABornIonisationModel, G4DNATransformElectronModel, G4LivermorePolarizedComptonModel, G4LivermorePolarizedGammaConversionModel, G4DummyModel, G4DNARuddIonisationExtendedModel, G4DNARuddIonisationModel, G4LivermoreGammaConversionModelRC, G4DNASancheExcitationModel, G4LivermoreNuclearGammaConversionModel, G4LivermorePolarizedRayleighModel, G4LivermoreRayleighModel, G4DNAMeltonAttachmentModel, G4BoldyshevTripletModel, G4XrayRayleighModel, MyKleinNishinaCompton, G4DNABornExcitationModel, G4DNAMillerGreenExcitationModel, G4LivermorePolarizedPhotoElectricModel, G4DNAEmfietzoglouExcitationModel, G4DNAChampionElasticModel, G4DNADingfelderChargeIncreaseModel, G4DNADingfelderChargeDecreaseModel, and G4DNAScreenedRutherfordElasticModel.

Referenced by G4VEmProcess::PostStepDoIt(), G4VEnergyLossProcess::PostStepDoIt(), and G4VEnergyLossProcess::SampleSubCutSecondaries().

G4double G4VEmModel::SecondaryThreshold ( ) const
inline
G4int G4VEmModel::SelectIsotopeNumber ( const G4Element elm)
inline

Definition at line 548 of file G4VEmModel.hh.

References G4UniformRand, G4Element::GetIsotope(), G4Isotope::GetN(), G4Element::GetN(), G4Element::GetNumberOfIsotopes(), G4Element::GetRelativeAbundanceVector(), N, SetCurrentElement(), and test::x.

Referenced by G4eSingleCoulombScatteringModel::SampleSecondaries(), G4hCoulombScatteringModel::SampleSecondaries(), G4IonCoulombScatteringModel::SampleSecondaries(), and G4eCoulombScatteringModel::SampleSecondaries().

549 {
550  SetCurrentElement(elm);
551  G4int N = G4int(elm->GetN() + 0.5);
552  G4int ni = elm->GetNumberOfIsotopes();
553  if(ni > 0) {
554  G4int idx = 0;
555  if(ni > 1) {
558  for(; idx<ni; ++idx) {
559  x -= ab[idx];
560  if (x <= 0.0) { break; }
561  }
562  if(idx >= ni) { idx = ni - 1; }
563  }
564  N = elm->GetIsotope(idx)->GetN();
565  }
566  return N;
567 }
size_t GetNumberOfIsotopes() const
Definition: G4Element.hh:158
G4double GetN() const
Definition: G4Element.hh:134
int G4int
Definition: G4Types.hh:78
G4int GetN() const
Definition: G4Isotope.hh:94
#define G4UniformRand()
Definition: Randomize.hh:87
G4double * GetRelativeAbundanceVector() const
Definition: G4Element.hh:166
const G4Isotope * GetIsotope(G4int iso) const
Definition: G4Element.hh:169
**D E S C R I P T I O N
double G4double
Definition: G4Types.hh:76
void SetCurrentElement(const G4Element *)
Definition: G4VEmModel.hh:433
const G4Element * G4VEmModel::SelectRandomAtom ( const G4MaterialCutsCouple couple,
const G4ParticleDefinition part,
G4double  kineticEnergy,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)
inline

Definition at line 510 of file G4VEmModel.hh.

References G4MaterialCutsCouple::GetIndex(), and G4MaterialCutsCouple::GetMaterial().

Referenced by G4LivermorePolarizedPhotoElectricModel::SampleSecondaries(), G4XrayRayleighModel::SampleSecondaries(), G4LivermoreNuclearGammaConversionModel::SampleSecondaries(), G4LivermorePolarizedRayleighModel::SampleSecondaries(), G4LivermoreRayleighModel::SampleSecondaries(), G4LivermoreGammaConversionModelRC::SampleSecondaries(), G4LivermorePolarizedGammaConversionModel::SampleSecondaries(), G4LivermorePolarizedComptonModel::SampleSecondaries(), G4LivermoreComptonModifiedModel::SampleSecondaries(), G4LivermorePhotoElectricModel::SampleSecondaries(), G4LivermoreComptonModel::SampleSecondaries(), G4LivermoreBremsstrahlungModel::SampleSecondaries(), G4SeltzerBergerModel::SampleSecondaries(), G4KleinNishinaModel::SampleSecondaries(), G4PenelopePhotoElectricModel::SampleSecondaries(), G4BetheHeitlerModel::SampleSecondaries(), G4PEEffectFluoModel::SampleSecondaries(), G4PairProductionRelModel::SampleSecondaries(), G4hCoulombScatteringModel::SampleSecondaries(), G4eSingleCoulombScatteringModel::SampleSecondaries(), G4eBremsstrahlungRelModel::SampleSecondaries(), G4PAIPhotModel::SampleSecondaries(), G4IonCoulombScatteringModel::SampleSecondaries(), G4eBremParametrizedModel::SampleSecondaries(), G4PAIModel::SampleSecondaries(), G4LowEPComptonModel::SampleSecondaries(), G4MuPairProductionModel::SampleSecondaries(), G4eCoulombScatteringModel::SampleSecondaries(), and G4MuBremsstrahlungModel::SampleSecondaries().

515 {
516  fCurrentCouple = couple;
517  if(nSelectors > 0) {
518  fCurrentElement =
519  ((*elmSelectors)[couple->GetIndex()])->SelectRandomAtom(kinEnergy);
520  } else {
521  fCurrentElement = SelectRandomAtom(couple->GetMaterial(),part,kinEnergy,
522  cutEnergy,maxEnergy);
523  }
524  return fCurrentElement;
525 }
const G4Element * SelectRandomAtom(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
Definition: G4VEmModel.hh:510
const G4Material * GetMaterial() const
const G4Element * G4VEmModel::SelectRandomAtom ( const G4Material material,
const G4ParticleDefinition pd,
G4double  kineticEnergy,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)

Definition at line 276 of file G4VEmModel.cc.

References CrossSectionPerVolume(), G4UniformRand, G4Material::GetElementVector(), G4Material::GetNumberOfElements(), n, and test::x.

281 {
282  const G4ElementVector* theElementVector = material->GetElementVector();
283  G4int n = material->GetNumberOfElements() - 1;
284  fCurrentElement = (*theElementVector)[n];
285  if (n > 0) {
287  G4VEmModel::CrossSectionPerVolume(material,pd,kinEnergy,tcut,tmax);
288  for(G4int i=0; i<n; ++i) {
289  if (x <= xsec[i]) {
290  fCurrentElement = (*theElementVector)[i];
291  break;
292  }
293  }
294  }
295  return fCurrentElement;
296 }
virtual G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
Definition: G4VEmModel.cc:245
std::vector< G4Element * > G4ElementVector
const G4ElementVector * GetElementVector() const
Definition: G4Material.hh:188
int G4int
Definition: G4Types.hh:78
#define G4UniformRand()
Definition: Randomize.hh:87
const G4int n
size_t GetNumberOfElements() const
Definition: G4Material.hh:184
double G4double
Definition: G4Types.hh:76
G4int G4VEmModel::SelectRandomAtomNumber ( const G4Material mat)
inline

Definition at line 529 of file G4VEmModel.hh.

References G4UniformRand, G4Material::GetElementVector(), G4Material::GetNumberOfElements(), G4Material::GetTotNbOfAtomsPerVolume(), G4Material::GetVecNbOfAtomsPerVolume(), and G4InuclParticleNames::nn.

Referenced by G4MollerBhabhaModel::SampleSecondaries(), G4BraggIonModel::SampleSecondaries(), G4BraggModel::SampleSecondaries(), and G4BetheBlochModel::SampleSecondaries().

530 {
531  size_t nn = mat->GetNumberOfElements();
532  const G4ElementVector* elmv = mat->GetElementVector();
533  G4int Z = G4int((*elmv)[0]->GetZ());
534  if(1 < nn) {
535  const G4double* at = mat->GetVecNbOfAtomsPerVolume();
537  for( size_t i=0; i<nn; ++i) {
538  Z = G4int((*elmv)[0]->GetZ());
539  tot -= Z*at[i];
540  if(tot <= 0.0) { break; }
541  }
542  }
543  return Z;
544 }
std::vector< G4Element * > G4ElementVector
const G4ElementVector * GetElementVector() const
Definition: G4Material.hh:188
int G4int
Definition: G4Types.hh:78
const G4double * GetVecNbOfAtomsPerVolume() const
Definition: G4Material.hh:204
#define G4UniformRand()
Definition: Randomize.hh:87
G4double GetTotNbOfAtomsPerVolume() const
Definition: G4Material.hh:207
size_t GetNumberOfElements() const
Definition: G4Material.hh:184
double G4double
Definition: G4Types.hh:76
void G4VEmModel::SetActivationHighEnergyLimit ( G4double  val)
inline

Definition at line 697 of file G4VEmModel.hh.

698 {
699  eMaxActive = val;
700 }
void G4VEmModel::SetActivationLowEnergyLimit ( G4double  val)
inline
void G4VEmModel::SetAngularDistribution ( G4VEmAngularDistribution p)
inline
void G4VEmModel::SetAngularGeneratorFlag ( G4bool  val)
inline

Definition at line 662 of file G4VEmModel.hh.

663 {
664  useAngularGenerator = val;
665 }
void G4VEmModel::SetCrossSectionTable ( G4PhysicsTable p,
G4bool  isLocal 
)

Definition at line 395 of file G4VEmModel.cc.

References G4PhysicsTable::clearAndDestroy(), and xSectionTable.

Referenced by G4VMultipleScattering::BuildPhysicsTable().

396 {
397  if(p != xSectionTable) {
398  if(xSectionTable && localTable) {
400  delete xSectionTable;
401  }
402  xSectionTable = p;
403  }
404  localTable = isLocal;
405 }
const char * p
Definition: xmltok.h:285
G4PhysicsTable * xSectionTable
Definition: G4VEmModel.hh:399
void clearAndDestroy()
void G4VEmModel::SetCurrentCouple ( const G4MaterialCutsCouple p)
inline
void G4VEmModel::SetCurrentElement ( const G4Element elm)
inlineprotected
void G4VEmModel::SetDeexcitationFlag ( G4bool  val)
inline
void G4VEmModel::SetElementSelectors ( std::vector< G4EmElementSelector * > *  p)
inline
void G4VEmModel::SetForceBuildTable ( G4bool  val)
inline

Definition at line 746 of file G4VEmModel.hh.

747 {
748  flagForceBuildTable = val;
749 }
void G4VEmModel::SetHighEnergyLimit ( G4double  val)
inline

Definition at line 683 of file G4VEmModel.hh.

Referenced by G4EmLivermorePolarizedPhysics::ConstructProcess(), G4EmLowEPPhysics::ConstructProcess(), G4EmLivermorePhysics::ConstructProcess(), G4EmPenelopePhysics::ConstructProcess(), G4EmDNAPhysics::ConstructProcess(), PhysListEmLivermore::ConstructProcess(), PhysListEmPenelope::ConstructProcess(), PhysListEmStandardNR::ConstructProcess(), G4EmStandardPhysics::ConstructProcess(), G4EmStandardPhysics_option4::ConstructProcess(), G4EmStandardPhysics_option1::ConstructProcess(), G4EmStandardPhysics_option2::ConstructProcess(), G4BoldyshevTripletModel::G4BoldyshevTripletModel(), G4BraggIonModel::G4BraggIonModel(), G4BraggModel::G4BraggModel(), G4DNAChampionElasticModel::G4DNAChampionElasticModel(), G4DNAEmfietzoglouExcitationModel::G4DNAEmfietzoglouExcitationModel(), G4DNAMeltonAttachmentModel::G4DNAMeltonAttachmentModel(), G4DNAOneStepSolvatationModel::G4DNAOneStepSolvatationModel(), G4DNASancheExcitationModel::G4DNASancheExcitationModel(), G4DNATransformElectronModel::G4DNATransformElectronModel(), G4ICRU73QOModel::G4ICRU73QOModel(), G4IonParametrisedLossModel::G4IonParametrisedLossModel(), G4LivermoreGammaConversionModelRC::G4LivermoreGammaConversionModelRC(), G4LivermoreNuclearGammaConversionModel::G4LivermoreNuclearGammaConversionModel(), G4LivermorePolarizedComptonModel::G4LivermorePolarizedComptonModel(), G4LivermorePolarizedGammaConversionModel::G4LivermorePolarizedGammaConversionModel(), G4LivermorePolarizedRayleighModel::G4LivermorePolarizedRayleighModel(), G4MicroElecElasticModel::G4MicroElecElasticModel(), G4MuElecElasticModel::G4MuElecElasticModel(), G4PenelopeAnnihilationModel::G4PenelopeAnnihilationModel(), G4PenelopeBremsstrahlungModel::G4PenelopeBremsstrahlungModel(), G4PenelopeComptonModel::G4PenelopeComptonModel(), G4PenelopeGammaConversionModel::G4PenelopeGammaConversionModel(), G4PenelopeIonisationModel::G4PenelopeIonisationModel(), G4PenelopePhotoElectricModel::G4PenelopePhotoElectricModel(), G4PenelopeRayleighModel::G4PenelopeRayleighModel(), G4XrayRayleighModel::G4XrayRayleighModel(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4DNAChampionElasticModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4DNAEmfietzoglouExcitationModel::Initialise(), G4DNABornExcitationModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4DNASancheExcitationModel::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), G4DNARuddIonisationModel::Initialise(), G4DNABornIonisationModel::Initialise(), G4MuElecElasticModel::Initialise(), G4MicroElecElasticModel::Initialise(), G4eeToHadronsModel::Initialise(), G4MicroElecInelasticModel::Initialise(), G4MuElecInelasticModel::Initialise(), G4ePolarizedBremsstrahlung::InitialiseEnergyLossProcess(), G4hPairProduction::InitialiseEnergyLossProcess(), G4alphaIonisation::InitialiseEnergyLossProcess(), G4hBremsstrahlung::InitialiseEnergyLossProcess(), G4mplIonisation::InitialiseEnergyLossProcess(), G4hhIonisation::InitialiseEnergyLossProcess(), G4ePolarizedIonisation::InitialiseEnergyLossProcess(), G4MuPairProduction::InitialiseEnergyLossProcess(), G4eIonisation::InitialiseEnergyLossProcess(), G4eBremsstrahlung::InitialiseEnergyLossProcess(), G4ionIonisation::InitialiseEnergyLossProcess(), G4MuBremsstrahlung::InitialiseEnergyLossProcess(), G4hIonisation::InitialiseEnergyLossProcess(), G4MuIonisation::InitialiseEnergyLossProcess(), G4DNAChargeIncrease::InitialiseProcess(), G4DNAVibExcitation::InitialiseProcess(), G4DNAElastic::InitialiseProcess(), G4DNAAttachment::InitialiseProcess(), G4DNAChargeDecrease::InitialiseProcess(), G4DNAExcitation::InitialiseProcess(), G4DNAIonisation::InitialiseProcess(), G4MuElecElastic::InitialiseProcess(), G4MicroElecElastic::InitialiseProcess(), G4CoulombScattering::InitialiseProcess(), G4MicroElecInelastic::InitialiseProcess(), G4MuElecInelastic::InitialiseProcess(), G4PolarizedGammaConversion::InitialiseProcess(), G4ComptonScattering::InitialiseProcess(), G4eplusAnnihilation::InitialiseProcess(), G4PolarizedCompton::InitialiseProcess(), G4GammaConversion::InitialiseProcess(), G4PhotoElectricEffect::InitialiseProcess(), G4PolarizedPhotoElectricEffect::InitialiseProcess(), G4eplusPolarizedAnnihilation::InitialiseProcess(), G4VMultipleScattering::PreparePhysicsTable(), G4VEmProcess::PreparePhysicsTable(), G4VEnergyLossProcess::PreparePhysicsTable(), G4VEmAdjointModel::SetHighEnergyLimit(), G4mplIonisationModel::SetParticle(), and G4mplIonisationWithDeltaModel::SetParticle().

684 {
685  highLimit = val;
686 }
void G4VEmModel::SetLowEnergyLimit ( G4double  val)
inline

Definition at line 690 of file G4VEmModel.hh.

Referenced by G4EmLivermorePolarizedPhysics::ConstructProcess(), G4EmLivermorePhysics::ConstructProcess(), G4EmPenelopePhysics::ConstructProcess(), G4EmStandardPhysics::ConstructProcess(), G4EmStandardPhysics_option4::ConstructProcess(), G4EmStandardPhysics_option1::ConstructProcess(), G4EmStandardPhysics_option2::ConstructProcess(), G4BetheBlochModel::G4BetheBlochModel(), G4DNAChampionElasticModel::G4DNAChampionElasticModel(), G4DNAEmfietzoglouExcitationModel::G4DNAEmfietzoglouExcitationModel(), G4DNAMeltonAttachmentModel::G4DNAMeltonAttachmentModel(), G4DNAOneStepSolvatationModel::G4DNAOneStepSolvatationModel(), G4DNASancheExcitationModel::G4DNASancheExcitationModel(), G4DNATransformElectronModel::G4DNATransformElectronModel(), G4eBremParametrizedModel::G4eBremParametrizedModel(), G4eBremsstrahlungRelModel::G4eBremsstrahlungRelModel(), G4LivermoreBremsstrahlungModel::G4LivermoreBremsstrahlungModel(), G4LivermorePolarizedGammaConversionModel::G4LivermorePolarizedGammaConversionModel(), G4MicroElecElasticModel::G4MicroElecElasticModel(), G4MuElecElasticModel::G4MuElecElasticModel(), G4SeltzerBergerModel::G4SeltzerBergerModel(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4DNAChampionElasticModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4DNAEmfietzoglouExcitationModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4DNABornExcitationModel::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4DNASancheExcitationModel::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), G4DNARuddIonisationModel::Initialise(), G4DNABornIonisationModel::Initialise(), G4MuElecElasticModel::Initialise(), G4MicroElecElasticModel::Initialise(), G4eeToHadronsModel::Initialise(), G4MuElecInelasticModel::Initialise(), G4MicroElecInelasticModel::Initialise(), G4ePolarizedBremsstrahlung::InitialiseEnergyLossProcess(), G4hPairProduction::InitialiseEnergyLossProcess(), G4alphaIonisation::InitialiseEnergyLossProcess(), G4hBremsstrahlung::InitialiseEnergyLossProcess(), G4hhIonisation::InitialiseEnergyLossProcess(), G4mplIonisation::InitialiseEnergyLossProcess(), G4ePolarizedIonisation::InitialiseEnergyLossProcess(), G4MuPairProduction::InitialiseEnergyLossProcess(), G4eIonisation::InitialiseEnergyLossProcess(), G4eBremsstrahlung::InitialiseEnergyLossProcess(), G4ionIonisation::InitialiseEnergyLossProcess(), G4MuBremsstrahlung::InitialiseEnergyLossProcess(), G4MuIonisation::InitialiseEnergyLossProcess(), G4hIonisation::InitialiseEnergyLossProcess(), G4DNAVibExcitation::InitialiseProcess(), G4DNAChargeIncrease::InitialiseProcess(), G4DNAAttachment::InitialiseProcess(), G4DNAElastic::InitialiseProcess(), G4DNAChargeDecrease::InitialiseProcess(), G4DNAExcitation::InitialiseProcess(), G4DNAIonisation::InitialiseProcess(), G4MuElecElastic::InitialiseProcess(), G4MicroElecElastic::InitialiseProcess(), G4CoulombScattering::InitialiseProcess(), G4MuElecInelastic::InitialiseProcess(), G4MicroElecInelastic::InitialiseProcess(), G4PolarizedGammaConversion::InitialiseProcess(), G4ComptonScattering::InitialiseProcess(), G4eplusAnnihilation::InitialiseProcess(), G4PolarizedCompton::InitialiseProcess(), G4GammaConversion::InitialiseProcess(), G4PhotoElectricEffect::InitialiseProcess(), G4PolarizedPhotoElectricEffect::InitialiseProcess(), G4eplusPolarizedAnnihilation::InitialiseProcess(), G4VEmAdjointModel::SetLowEnergyLimit(), G4mplIonisationModel::SetParticle(), and G4mplIonisationWithDeltaModel::SetParticle().

691 {
692  lowLimit = val;
693 }
void G4VEmModel::SetLPMFlag ( G4bool  val)
inline
void G4VEmModel::SetMasterThread ( G4bool  val)
inline
void G4VEmModel::SetParticleChange ( G4VParticleChange p,
G4VEmFluctuationModel f = 0 
)

Definition at line 387 of file G4VEmModel.cc.

References pParticleChange.

Referenced by G4VMultipleScattering::AddEmModel(), G4VEmProcess::AddEmModel(), G4VEnergyLossProcess::AddEmModel(), G4EmMultiModel::Initialise(), G4IonParametrisedLossModel::Initialise(), and G4NuclearStopping::InitialiseProcess().

388 {
389  if(p && pParticleChange != p) { pParticleChange = p; }
390  flucModel = f;
391 }
const char * p
Definition: xmltok.h:285
G4VParticleChange * pParticleChange
Definition: G4VEmModel.hh:398
void G4VEmModel::SetPolarAngleLimit ( G4double  val)
inline
void G4VEmModel::SetSecondaryThreshold ( G4double  val)
inline

Definition at line 725 of file G4VEmModel.hh.

Referenced by G4eBremsstrahlung::InitialiseEnergyLossProcess().

726 {
727  secondaryThreshold = val;
728 }
void G4VEmModel::SetupForMaterial ( const G4ParticleDefinition ,
const G4Material ,
G4double  kineticEnergy 
)
virtual
void G4VEmModel::StartTracking ( G4Track )
virtual
G4bool G4VEmModel::UseAngularGeneratorFlag ( ) const
inline
G4double G4VEmModel::Value ( const G4MaterialCutsCouple couple,
const G4ParticleDefinition p,
G4double  kineticEnergy 
)
virtual

Definition at line 346 of file G4VEmModel.cc.

References CrossSectionPerVolume(), DBL_MAX, G4MaterialCutsCouple::GetMaterial(), and SetCurrentCouple().

Referenced by G4LossTableBuilder::BuildTableForModel(), G4LivermorePhotoElectricModel::ComputeCrossSectionPerAtom(), G4IonParametrisedLossModel::ComputeLossForStep(), G4LivermorePhotoElectricModel::SampleSecondaries(), G4SeltzerBergerModel::SampleSecondaries(), and G4LivermoreBremsstrahlungModel::SampleSecondaries().

348 {
349  SetCurrentCouple(couple);
350  return e*e*CrossSectionPerVolume(couple->GetMaterial(),p,e,0.0,DBL_MAX);
351 }
virtual G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
Definition: G4VEmModel.cc:245
const char * p
Definition: xmltok.h:285
void SetCurrentCouple(const G4MaterialCutsCouple *)
Definition: G4VEmModel.hh:419
#define DBL_MAX
Definition: templates.hh:83
const G4Material * GetMaterial() const

Field Documentation

G4ElementData* G4VEmModel::fElementData
protected
size_t G4VEmModel::idxTable
protected
G4VParticleChange* G4VEmModel::pParticleChange
protected
const std::vector<G4double>* G4VEmModel::theDensityFactor
protected

Definition at line 400 of file G4VEmModel.hh.

Referenced by G4VMscModel::GetParticleChangeForMSC().

const std::vector<G4int>* G4VEmModel::theDensityIdx
protected

Definition at line 401 of file G4VEmModel.hh.

Referenced by G4VMscModel::GetParticleChangeForMSC().

G4PhysicsTable* G4VEmModel::xSectionTable
protected

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