Geant4-11
Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes
G4DNARuddIonisationModel Class Reference

#include <G4DNARuddIonisationModel.hh>

Inheritance diagram for G4DNARuddIonisationModel:
G4VEmModel

Public Member Functions

virtual G4double ChargeSquareRatio (const G4Track &)
 
G4double ComputeCrossSectionPerAtom (const G4ParticleDefinition *, const G4Element *, G4double kinEnergy, 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 ComputeCrossSectionPerShell (const G4ParticleDefinition *, G4int Z, G4int shellIdx, G4double kinEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
G4double ComputeDEDX (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)
 
virtual G4double ComputeDEDXPerVolume (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)
 
G4double ComputeMeanFreePath (const G4ParticleDefinition *, G4double kineticEnergy, const G4Material *, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
virtual void CorrectionsAlongStep (const G4MaterialCutsCouple *, const G4DynamicParticle *, const G4double &length, G4double &eloss)
 
G4double CrossSection (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
virtual G4double CrossSectionPerVolume (const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax)
 
G4bool DeexcitationFlag () const
 
virtual void DefineForRegion (const G4Region *)
 
virtual void FillNumberOfSecondaries (G4int &numberOfTriplets, G4int &numberOfRecoil)
 
G4bool ForceBuildTableFlag () const
 
 G4DNARuddIonisationModel (const G4ParticleDefinition *p=0, const G4String &nam="DNARuddIonisationModel")
 
G4VEmAngularDistributionGetAngularDistribution ()
 
virtual G4double GetChargeSquareRatio (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4PhysicsTableGetCrossSectionTable ()
 
const G4ElementGetCurrentElement () const
 
const G4IsotopeGetCurrentIsotope () const
 
G4ElementDataGetElementData ()
 
std::vector< G4EmElementSelector * > * GetElementSelectors ()
 
G4VEmFluctuationModelGetModelOfFluctuations ()
 
const G4StringGetName () const
 
virtual G4double GetPartialCrossSection (const G4Material *, G4int level, const G4ParticleDefinition *, G4double kineticEnergy)
 
virtual G4double GetParticleCharge (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4VEmModelGetTripletModel ()
 
G4double HighEnergyActivationLimit () const
 
G4double HighEnergyLimit () const
 
virtual void Initialise (const G4ParticleDefinition *, const G4DataVector &)
 
void InitialiseElementSelectors (const G4ParticleDefinition *, const G4DataVector &)
 
virtual void InitialiseForElement (const G4ParticleDefinition *, G4int Z)
 
virtual void InitialiseForMaterial (const G4ParticleDefinition *, const G4Material *)
 
virtual void InitialiseLocal (const G4ParticleDefinition *, G4VEmModel *masterModel)
 
G4bool IsActive (G4double kinEnergy) const
 
G4bool IsLocked () const
 
G4bool IsMaster () const
 
G4double LowEnergyActivationLimit () const
 
G4double LowEnergyLimit () const
 
G4bool LPMFlag () const
 
G4double MaxSecondaryKinEnergy (const G4DynamicParticle *dynParticle)
 
virtual G4double MinEnergyCut (const G4ParticleDefinition *, const G4MaterialCutsCouple *)
 
virtual G4double MinPrimaryEnergy (const G4Material *, const G4ParticleDefinition *, G4double cut=0.0)
 
virtual void ModelDescription (std::ostream &outFile) const
 
G4double PolarAngleLimit () const
 
virtual void SampleSecondaries (std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
 
G4double SecondaryThreshold () const
 
G4int SelectIsotopeNumber (const G4Element *)
 
const G4ElementSelectRandomAtom (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
const G4ElementSelectRandomAtom (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
G4int SelectRandomAtomNumber (const G4Material *)
 
void SelectStationary (G4bool input)
 
const G4ElementSelectTargetAtom (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double logKineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
void SetActivationHighEnergyLimit (G4double)
 
void SetActivationLowEnergyLimit (G4double)
 
void SetAngularDistribution (G4VEmAngularDistribution *)
 
void SetAngularGeneratorFlag (G4bool)
 
void SetCrossSectionTable (G4PhysicsTable *, G4bool isLocal)
 
void SetCurrentCouple (const G4MaterialCutsCouple *)
 
void SetDeexcitationFlag (G4bool val)
 
void SetElementSelectors (std::vector< G4EmElementSelector * > *)
 
void SetFluctuationFlag (G4bool val)
 
void SetForceBuildTable (G4bool val)
 
void SetHighEnergyLimit (G4double)
 
void SetLocked (G4bool)
 
void SetLowEnergyLimit (G4double)
 
void SetLPMFlag (G4bool val)
 
void SetMasterThread (G4bool val)
 
void SetParticleChange (G4VParticleChange *, G4VEmFluctuationModel *f=nullptr)
 
void SetPolarAngleLimit (G4double)
 
void SetSecondaryThreshold (G4double)
 
void SetTripletModel (G4VEmModel *)
 
virtual void SetupForMaterial (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
void SetUseBaseMaterials (G4bool val)
 
virtual void StartTracking (G4Track *)
 
G4bool UseAngularGeneratorFlag () const
 
G4bool UseBaseMaterials () const
 
virtual G4double Value (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy)
 
virtual ~G4DNARuddIonisationModel ()
 

Protected Member Functions

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

Protected Attributes

size_t basedCoupleIndex = 0
 
size_t currentCoupleIndex = 0
 
G4ElementDatafElementData = nullptr
 
G4ParticleChangeForGammafParticleChangeForGamma
 
G4double inveplus
 
G4bool lossFlucFlag = true
 
const G4MaterialpBaseMaterial = nullptr
 
G4double pFactor = 1.0
 
G4VParticleChangepParticleChange = nullptr
 
const std::vector< G4double > * theDensityFactor = nullptr
 
const std::vector< G4int > * theDensityIdx = nullptr
 
G4PhysicsTablexSectionTable = nullptr
 

Private Types

typedef std::map< G4String, G4DNACrossSectionDataSet *, std::less< G4String > > MapData
 
typedef std::map< G4String, G4String, std::less< G4String > > MapFile
 

Private Member Functions

G4double CorrectionFactor (G4ParticleDefinition *particleDefinition, G4double k)
 
G4double DifferentialCrossSection (G4ParticleDefinition *particleDefinition, G4double k, G4double energyTransfer, G4int shell)
 
 G4DNARuddIonisationModel (const G4DNARuddIonisationModel &)
 
G4DNARuddIonisationModeloperator= (const G4DNARuddIonisationModel &right)
 
G4double PartialCrossSection (const G4Track &track)
 
G4double R (G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)
 
G4double RandomizeEjectedElectronEnergy (G4ParticleDefinition *particleDefinition, G4double incomingParticleEnergy, G4int shell)
 
G4int RandomSelect (G4double energy, const G4String &particle)
 
G4double S_1s (G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)
 
G4double S_2p (G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)
 
G4double S_2s (G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)
 
G4double Sum (G4double energy, const G4String &particle)
 

Private Attributes

G4VEmAngularDistributionanglModel = nullptr
 
std::vector< G4EmElementSelector * > * elmSelectors = nullptr
 
G4double eMaxActive = DBL_MAX
 
G4double eMinActive = 0.0
 
G4VAtomDeexcitationfAtomDeexcitation
 
const G4MaterialCutsCouplefCurrentCouple = nullptr
 
const G4ElementfCurrentElement = nullptr
 
const G4IsotopefCurrentIsotope = nullptr
 
G4LossTableManagerfEmManager
 
G4bool flagDeexcitation = false
 
G4bool flagForceBuildTable = false
 
G4VEmFluctuationModelflucModel = nullptr
 
const std::vector< G4double > * fpWaterDensity
 
G4VEmModelfTripletModel = nullptr
 
std::map< G4String, G4double, std::less< G4String > > highEnergyLimit
 
G4double highLimit
 
G4bool isInitialised
 
G4bool isLocked = false
 
G4bool isMaster = true
 
G4double killBelowEnergyForZ1
 
G4double killBelowEnergyForZ2
 
G4bool localElmSelectors = true
 
G4bool localTable = true
 
std::map< G4String, G4double, std::less< G4String > > lowEnergyLimit
 
G4double lowEnergyLimitForZ1
 
G4double lowEnergyLimitForZ2
 
G4double lowEnergyLimitOfModelForZ1
 
G4double lowEnergyLimitOfModelForZ2
 
G4double lowLimit
 
const G4String name
 
G4int nsec = 5
 
G4int nSelectors = 0
 
G4double polarAngleLimit
 
G4double sCoefficient [3]
 
G4double secondaryThreshold = DBL_MAX
 
G4double slaterEffectiveCharge [3]
 
G4bool statCode
 
MapData tableData
 
MapFile tableFile
 
G4bool theLPMflag = false
 
G4bool useAngularGenerator = false
 
G4bool useBaseMaterials = false
 
G4int verboseLevel
 
G4DNAWaterIonisationStructure waterStructure
 
std::vector< G4doublexsec
 

Detailed Description

Definition at line 45 of file G4DNARuddIonisationModel.hh.

Member Typedef Documentation

◆ MapData

Definition at line 103 of file G4DNARuddIonisationModel.hh.

◆ MapFile

typedef std::map<G4String,G4String,std::less<G4String> > G4DNARuddIonisationModel::MapFile
private

Definition at line 100 of file G4DNARuddIonisationModel.hh.

Constructor & Destructor Documentation

◆ G4DNARuddIonisationModel() [1/2]

G4DNARuddIonisationModel::G4DNARuddIonisationModel ( const G4ParticleDefinition p = 0,
const G4String nam = "DNARuddIonisationModel" 
)

Definition at line 45 of file G4DNARuddIonisationModel.cc.

46 :
47G4VEmModel(nam), isInitialised(false)
48{
50
54 sCoefficient[0] = 0.;
55 sCoefficient[1] = 0.;
56 sCoefficient[2] = 0.;
57
64
65 verboseLevel = 0;
66 // Verbosity scale:
67 // 0 = nothing
68 // 1 = warning for energy non-conservation
69 // 2 = details of energy budget
70 // 3 = calculation of cross sections, file openings, sampling of atoms
71 // 4 = entering in methods
72
73 if (verboseLevel > 0)
74 {
75 G4cout << "Rudd ionisation model is constructed " << G4endl;
76 }
77
78 // Define default angular generator
80
81 // Mark this model as "applicable" for atomic deexcitation
85
86 // Selection of stationary mode
87
88 statCode = false;
89}
static constexpr double keV
Definition: G4SIunits.hh:202
static constexpr double eV
Definition: G4SIunits.hh:201
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
G4ParticleChangeForGamma * fParticleChangeForGamma
const std::vector< G4double > * fpWaterDensity
G4VAtomDeexcitation * fAtomDeexcitation
void SetDeexcitationFlag(G4bool val)
Definition: G4VEmModel.hh:823
G4VEmModel(const G4String &nam)
Definition: G4VEmModel.cc:66
void SetAngularDistribution(G4VEmAngularDistribution *)
Definition: G4VEmModel.hh:628

References eV, fAtomDeexcitation, fParticleChangeForGamma, fpWaterDensity, G4cout, G4endl, keV, killBelowEnergyForZ1, killBelowEnergyForZ2, lowEnergyLimitForZ1, lowEnergyLimitForZ2, lowEnergyLimitOfModelForZ1, lowEnergyLimitOfModelForZ2, sCoefficient, G4VEmModel::SetAngularDistribution(), G4VEmModel::SetDeexcitationFlag(), slaterEffectiveCharge, statCode, and verboseLevel.

◆ ~G4DNARuddIonisationModel()

G4DNARuddIonisationModel::~G4DNARuddIonisationModel ( )
virtual

Definition at line 93 of file G4DNARuddIonisationModel.cc.

94{
95 // Cross section
96
97 std::map<G4String, G4DNACrossSectionDataSet*, std::less<G4String> >::iterator pos;
98 for (pos = tableData.begin(); pos != tableData.end(); ++pos)
99 {
100 G4DNACrossSectionDataSet* table = pos->second;
101 delete table;
102 }
103
104 // The following removal is forbidden since G4VEnergyLossmodel takes care of deletion
105 // Coverity however will signal this as an error
106 // if (fAtomDeexcitation) {delete fAtomDeexcitation;}
107
108}
static const G4double pos

References pos, and tableData.

◆ G4DNARuddIonisationModel() [2/2]

G4DNARuddIonisationModel::G4DNARuddIonisationModel ( const G4DNARuddIonisationModel )
private

Member Function Documentation

◆ ChargeSquareRatio()

G4double G4VEmModel::ChargeSquareRatio ( const G4Track track)
virtualinherited

Reimplemented in G4BraggIonGasModel, and G4BetheBlochIonGasModel.

Definition at line 374 of file G4VEmModel.cc.

375{
377 track.GetMaterial(), track.GetKineticEnergy());
378}
const G4ParticleDefinition * GetParticleDefinition() const
G4Material * GetMaterial() const
G4double GetKineticEnergy() const
virtual G4double GetChargeSquareRatio(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
Definition: G4VEmModel.cc:382

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

Referenced by G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength().

◆ ComputeCrossSectionPerAtom() [1/2]

G4double G4VEmModel::ComputeCrossSectionPerAtom ( const G4ParticleDefinition part,
const G4Element elm,
G4double  kinEnergy,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)
inlineinherited

Definition at line 566 of file G4VEmModel.hh.

571{
573 return ComputeCrossSectionPerAtom(part,kinEnergy,elm->GetZ(),elm->GetN(),
574 cutEnergy,maxEnergy);
575}
G4double GetZ() const
Definition: G4Element.hh:131
G4double GetN() const
Definition: G4Element.hh:135
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0., G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
Definition: G4VEmModel.cc:341
void SetCurrentElement(const G4Element *)
Definition: G4VEmModel.hh:497

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

◆ ComputeCrossSectionPerAtom() [2/2]

G4double G4VEmModel::ComputeCrossSectionPerAtom ( const G4ParticleDefinition ,
G4double  kinEnergy,
G4double  Z,
G4double  A = 0.,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)
virtualinherited

Reimplemented in G4eDPWACoulombScatteringModel, G4eBremsstrahlungRelModel, G4LivermorePhotoElectricModel, G4eSingleCoulombScatteringModel, G4IonCoulombScatteringModel, G4PolarizedComptonModel, G4eCoulombScatteringModel, G4hCoulombScatteringModel, G4KleinNishinaCompton, G4KleinNishinaModel, G4PEEffectFluoModel, G4JAEAElasticScatteringModel, G4JAEAPolarizedElasticScatteringModel, G4LivermoreComptonModel, G4LivermoreIonisationModel, G4LivermoreNuclearGammaConversionModel, G4LivermorePolarizedComptonModel, G4LivermorePolarizedGammaConversionModel, G4LivermorePolarizedRayleighModel, G4LivermoreRayleighModel, G4LowEPComptonModel, G4LowEPPolarizedComptonModel, G4PenelopeAnnihilationModel, G4PenelopeGammaConversionModel, G4PenelopePhotoElectricModel, G4PenelopeRayleighModel, G4PenelopeRayleighModelMI, G4XrayRayleighModel, G4BoldyshevTripletModel, G4BetheHeitlerModel, G4PairProductionRelModel, G4eplusTo2GammaOKVIModel, G4eplusTo3GammaOKVIModel, G4eeToTwoGammaModel, G4EmMultiModel, G4LivermoreGammaConversion5DModel, G4LivermoreGammaConversionModel, G4WentzelVIModel, G4WentzelVIRelModel, G4mplIonisationWithDeltaModel, G4MuBetheBlochModel, G4MuBremsstrahlungModel, G4MuPairProductionModel, G4AtimaEnergyLossModel, G4BetheBlochModel, G4BraggIonModel, G4BraggModel, G4ICRU73QOModel, G4LindhardSorensenIonModel, G4MollerBhabhaModel, G4eeToHadronsModel, G4eeToHadronsMultiModel, G4eBremParametrizedModel, G4IonParametrisedLossModel, G4PenelopeComptonModel, G4PenelopeIonisationModel, G4UrbanAdjointMscModel, G4UrbanMscModel, and G4PenelopeBremsstrahlungModel.

Definition at line 341 of file G4VEmModel.cc.

344{
345 return 0.0;
346}

Referenced by G4AdjointPhotoElectricModel::AdjointCrossSectionPerAtom(), G4VEmModel::ComputeCrossSectionPerAtom(), G4EmCalculator::ComputeCrossSectionPerAtom(), G4VEmProcess::ComputeCrossSectionPerAtom(), G4EmCalculator::ComputeCrossSectionPerShell(), G4AdjointIonIonisationModel::CorrectPostStepWeight(), G4VEmModel::CrossSectionPerVolume(), G4AdjointComptonModel::DiffCrossSectionPerAtomPrimToScatPrim(), G4VEmAdjointModel::DiffCrossSectionPerAtomPrimToSecond(), G4AdjointhIonisationModel::DiffCrossSectionPerAtomPrimToSecond(), G4AdjointIonIonisationModel::DiffCrossSectionPerAtomPrimToSecond(), and G4EmElementSelector::Initialise().

◆ ComputeCrossSectionPerShell()

G4double G4VEmModel::ComputeCrossSectionPerShell ( const G4ParticleDefinition ,
G4int  Z,
G4int  shellIdx,
G4double  kinEnergy,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)
virtualinherited

Definition at line 351 of file G4VEmModel.cc.

354{
355 return 0.0;
356}

Referenced by G4EmCalculator::ComputeCrossSectionPerShell().

◆ ComputeDEDX()

G4double G4VEmModel::ComputeDEDX ( const G4MaterialCutsCouple couple,
const G4ParticleDefinition part,
G4double  kineticEnergy,
G4double  cutEnergy = DBL_MAX 
)
inlineinherited

Definition at line 528 of file G4VEmModel.hh.

532{
533 SetCurrentCouple(couple);
534 return pFactor*ComputeDEDXPerVolume(pBaseMaterial,part,kinEnergy,cutEnergy);
535}
void SetCurrentCouple(const G4MaterialCutsCouple *)
Definition: G4VEmModel.hh:472
const G4Material * pBaseMaterial
Definition: G4VEmModel.hh:427
G4double pFactor
Definition: G4VEmModel.hh:432
virtual G4double ComputeDEDXPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)
Definition: G4VEmModel.cc:228

References G4VEmModel::ComputeDEDXPerVolume(), G4VEmModel::pBaseMaterial, G4VEmModel::pFactor, and G4VEmModel::SetCurrentCouple().

◆ ComputeDEDXPerVolume()

G4double G4VEmModel::ComputeDEDXPerVolume ( const G4Material ,
const G4ParticleDefinition ,
G4double  kineticEnergy,
G4double  cutEnergy = DBL_MAX 
)
virtualinherited

◆ ComputeMeanFreePath()

G4double G4VEmModel::ComputeMeanFreePath ( const G4ParticleDefinition part,
G4double  kineticEnergy,
const G4Material material,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)
inlineinherited

Definition at line 553 of file G4VEmModel.hh.

558{
559 G4double cross = CrossSectionPerVolume(material,part,ekin,emin,emax);
560 return (cross > 0.0) ? 1./cross : DBL_MAX;
561}
static const G4double emax
double G4double
Definition: G4Types.hh:83
virtual G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
Definition: G4VEmModel.cc:237
string material
Definition: eplot.py:19
#define DBL_MAX
Definition: templates.hh:62

References G4VEmModel::CrossSectionPerVolume(), DBL_MAX, emax, and eplot::material.

◆ CorrectionFactor()

G4double G4DNARuddIonisationModel::CorrectionFactor ( G4ParticleDefinition particleDefinition,
G4double  k 
)
private

Definition at line 995 of file G4DNARuddIonisationModel.cc.

997{
998 G4DNAGenericIonsManager *instance;
1000
1001 if (particleDefinition == G4Proton::Proton())
1002 {
1003 return (1.);
1004 } else if (particleDefinition == instance->GetIon("hydrogen"))
1005 {
1006 G4double value = (std::log10(k / eV) - 4.2) / 0.5;
1007 // The following values are provided by M. Dingfelder (priv. comm)
1008 return ((0.6 / (1 + G4Exp(value))) + 0.9);
1009 } else
1010 {
1011 return (1.);
1012 }
1013}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:179
static G4DNAGenericIonsManager * Instance(void)
G4ParticleDefinition * GetIon(const G4String &name)
static G4Proton * Proton()
Definition: G4Proton.cc:92

References eV, G4Exp(), G4DNAGenericIonsManager::GetIon(), G4DNAGenericIonsManager::Instance(), and G4Proton::Proton().

Referenced by DifferentialCrossSection().

◆ CorrectionsAlongStep()

void G4VEmModel::CorrectionsAlongStep ( const G4MaterialCutsCouple ,
const G4DynamicParticle ,
const G4double length,
G4double eloss 
)
virtualinherited

◆ CrossSection()

G4double G4VEmModel::CrossSection ( const G4MaterialCutsCouple couple,
const G4ParticleDefinition part,
G4double  kineticEnergy,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)
inlineinherited

◆ CrossSectionPerVolume()

G4double G4DNARuddIonisationModel::CrossSectionPerVolume ( const G4Material material,
const G4ParticleDefinition p,
G4double  ekin,
G4double  emin,
G4double  emax 
)
virtual

Reimplemented from G4VEmModel.

Definition at line 287 of file G4DNARuddIonisationModel.cc.

292{
293 if (verboseLevel > 3)
294 {
295 G4cout << "Calling CrossSectionPerVolume() of G4DNARuddIonisationModel"
296 << G4endl;
297 }
298
299 // Calculate total cross section for model
300
301 G4DNAGenericIonsManager *instance;
303
304 if (
305 particleDefinition != G4Proton::ProtonDefinition()
306 &&
307 particleDefinition != instance->GetIon("hydrogen")
308 &&
309 particleDefinition != instance->GetIon("alpha++")
310 &&
311 particleDefinition != instance->GetIon("alpha+")
312 &&
313 particleDefinition != instance->GetIon("helium")
314 )
315
316 return 0;
317
318 G4double lowLim = 0;
319
320 if ( particleDefinition == G4Proton::ProtonDefinition()
321 || particleDefinition == instance->GetIon("hydrogen")
322 )
323
325
326 if ( particleDefinition == instance->GetIon("alpha++")
327 || particleDefinition == instance->GetIon("alpha+")
328 || particleDefinition == instance->GetIon("helium")
329 )
330
332
333 G4double highLim = 0;
334 G4double sigma=0;
335
336 G4double waterDensity = (*fpWaterDensity)[material->GetIndex()];
337
338 const G4String& particleName = particleDefinition->GetParticleName();
339
340 // SI - the following is useless since lowLim is already defined
341 /*
342 std::map< G4String,G4double,std::less<G4String> >::iterator pos1;
343 pos1 = lowEnergyLimit.find(particleName);
344
345 if (pos1 != lowEnergyLimit.end())
346 {
347 lowLim = pos1->second;
348 }
349 */
350
351 std::map< G4String,G4double,std::less<G4String> >::iterator pos2;
352 pos2 = highEnergyLimit.find(particleName);
353
354 if (pos2 != highEnergyLimit.end())
355 {
356 highLim = pos2->second;
357 }
358
359 if (k <= highLim)
360 {
361 //SI : XS must not be zero otherwise sampling of secondaries method ignored
362
363 if (k < lowLim) k = lowLim;
364
365 //
366
367 std::map< G4String,G4DNACrossSectionDataSet*,std::less<G4String> >::iterator pos;
368 pos = tableData.find(particleName);
369
370 if (pos != tableData.end())
371 {
372 G4DNACrossSectionDataSet* table = pos->second;
373 if (table != 0)
374 {
375 sigma = table->FindValue(k);
376 }
377 }
378 else
379 {
380 G4Exception("G4DNARuddIonisationModel::CrossSectionPerVolume","em0002",
381 FatalException,"Model not applicable to particle type.");
382 }
383
384 }
385
386 if (verboseLevel > 2)
387 {
388 G4cout << "__________________________________" << G4endl;
389 G4cout << "G4DNARuddIonisationModel - XS INFO START" << G4endl;
390 G4cout << "Kinetic energy(eV)=" << k/eV << " particle : " << particleDefinition->GetParticleName() << G4endl;
391 G4cout << "Cross section per water molecule (cm^2)=" << sigma/cm/cm << G4endl;
392 G4cout << "Cross section per water molecule (cm^-1)=" << sigma*waterDensity/(1./cm) << G4endl;
393 //G4cout << " - Cross section per water molecule (cm^-1)="
394 //<< sigma*material->GetAtomicNumDensityVector()[1]/(1./cm) << G4endl;
395 G4cout << "G4DNARuddIonisationModel - XS INFO END" << G4endl;
396 }
397
398 return sigma*waterDensity;
399
400}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
static constexpr double cm
Definition: G4SIunits.hh:99
virtual G4double FindValue(G4double e, G4int componentId=0) const
std::map< G4String, G4double, std::less< G4String > > highEnergyLimit
static G4Proton * ProtonDefinition()
Definition: G4Proton.cc:87

References cm, eV, FatalException, G4DNACrossSectionDataSet::FindValue(), G4cout, G4endl, G4Exception(), G4DNAGenericIonsManager::GetIon(), G4ParticleDefinition::GetParticleName(), highEnergyLimit, G4DNAGenericIonsManager::Instance(), lowEnergyLimitOfModelForZ1, lowEnergyLimitOfModelForZ2, eplot::material, pos, G4Proton::ProtonDefinition(), tableData, and verboseLevel.

◆ CurrentCouple()

const G4MaterialCutsCouple * G4VEmModel::CurrentCouple ( ) const
inlineprotectedinherited

◆ DeexcitationFlag()

G4bool G4VEmModel::DeexcitationFlag ( ) const
inlineinherited

Definition at line 704 of file G4VEmModel.hh.

705{
706 return flagDeexcitation;
707}
G4bool flagDeexcitation
Definition: G4VEmModel.hh:455

References G4VEmModel::flagDeexcitation.

Referenced by G4EmModelManager::DumpModelList().

◆ DefineForRegion()

void G4VEmModel::DefineForRegion ( const G4Region )
virtualinherited

Reimplemented in G4PAIModel, and G4PAIPhotModel.

Definition at line 360 of file G4VEmModel.cc.

361{}

Referenced by G4EmModelManager::AddEmModel().

◆ DifferentialCrossSection()

G4double G4DNARuddIonisationModel::DifferentialCrossSection ( G4ParticleDefinition particleDefinition,
G4double  k,
G4double  energyTransfer,
G4int  shell 
)
private

Definition at line 691 of file G4DNARuddIonisationModel.cc.

695{
696 // Shells ids are 0 1 2 3 4 (4 is k shell)
697 // !!Attention, "energyTransfer" here is the energy transfered to the electron which means
698 // that the secondary kinetic energy is w = energyTransfer - bindingEnergy
699 //
700 // ds S F1(nu) + w * F2(nu)
701 // ---- = G(k) * ---- -------------------------------------------
702 // dw Bj (1+w)^3 * [1 + exp{alpha * (w - wc) / nu}]
703 //
704 // w is the secondary electron kinetic Energy in eV
705 //
706 // All the other parameters can be found in Rudd's Papers
707 //
708 // M.Eugene Rudd, 1988, User-Friendly model for the energy distribution of
709 // electrons from protons or electron collisions. Nucl. Tracks Rad. Meas.Vol 16 N0 2/3 pp 219-218
710 //
711
712 const G4int j = ionizationLevelIndex;
713
714 G4double A1;
715 G4double B1;
716 G4double C1;
717 G4double D1;
718 G4double E1;
719 G4double A2;
720 G4double B2;
721 G4double C2;
722 G4double D2;
723 G4double alphaConst;
724
725 // const G4double Bj[5] = {12.61*eV, 14.73*eV, 18.55*eV, 32.20*eV, 539.7*eV};
726 // The following values are provided by M. dingfelder (priv. comm)
727 const G4double Bj[5] = { 12.60 * eV, 14.70 * eV, 18.40 * eV, 32.20 * eV, 540
728 * eV };
729
730 if (j == 4)
731 {
732 //Data For Liquid Water K SHELL from Dingfelder (Protons in Water)
733 A1 = 1.25;
734 B1 = 0.5;
735 C1 = 1.00;
736 D1 = 1.00;
737 E1 = 3.00;
738 A2 = 1.10;
739 B2 = 1.30;
740 C2 = 1.00;
741 D2 = 0.00;
742 alphaConst = 0.66;
743 } else
744 {
745 //Data For Liquid Water from Dingfelder (Protons in Water)
746 A1 = 1.02;
747 B1 = 82.0;
748 C1 = 0.45;
749 D1 = -0.80;
750 E1 = 0.38;
751 A2 = 1.07;
752 // Value provided by M. Dingfelder (priv. comm)
753 B2 = 11.6;
754 //
755 C2 = 0.60;
756 D2 = 0.04;
757 alphaConst = 0.64;
758 }
759
760 const G4double n = 2.;
761 const G4double Gj[5] = { 0.99, 1.11, 1.11, 0.52, 1. };
762
763 G4DNAGenericIonsManager* instance;
765
766 G4double wBig = (energyTransfer
767 - waterStructure.IonisationEnergy(ionizationLevelIndex));
768 if (wBig < 0)
769 return 0.;
770
771 G4double w = wBig / Bj[ionizationLevelIndex];
772 // Note that the following (j==4) cases are provided by M. Dingfelder (priv. comm)
773 if (j == 4)
774 w = wBig / waterStructure.IonisationEnergy(ionizationLevelIndex);
775
776 G4double Ry = 13.6 * eV;
777
778 G4double tau = 0.;
779
780 G4bool isProtonOrHydrogen = false;
781 G4bool isHelium = false;
782
783 if (particleDefinition == G4Proton::ProtonDefinition()
784 || particleDefinition == instance->GetIon("hydrogen"))
785 {
786 isProtonOrHydrogen = true;
787 tau = (electron_mass_c2 / proton_mass_c2) * k;
788 }
789
790 else if (particleDefinition == instance->GetIon("helium")
791 || particleDefinition == instance->GetIon("alpha+")
792 || particleDefinition == instance->GetIon("alpha++"))
793 {
794 isHelium = true;
795 tau = (0.511 / 3728.) * k;
796 }
797
798 G4double S = 4. * pi * Bohr_radius * Bohr_radius * n
799 * std::pow((Ry / Bj[ionizationLevelIndex]), 2);
800 if (j == 4)
801 S = 4. * pi * Bohr_radius * Bohr_radius * n
802 * std::pow((Ry / waterStructure.IonisationEnergy(ionizationLevelIndex)),
803 2);
804
805 G4double v2 = tau / Bj[ionizationLevelIndex];
806 if (j == 4)
807 v2 = tau / waterStructure.IonisationEnergy(ionizationLevelIndex);
808
809 G4double v = std::sqrt(v2);
810 G4double wc = 4. * v2 - 2. * v - (Ry / (4. * Bj[ionizationLevelIndex]));
811 if (j == 4)
812 wc = 4. * v2 - 2. * v
813 - (Ry / (4. * waterStructure.IonisationEnergy(ionizationLevelIndex)));
814
815 G4double L1 = (C1 * std::pow(v, (D1))) / (1. + E1 * std::pow(v, (D1 + 4.)));
816 G4double L2 = C2 * std::pow(v, (D2));
817 G4double H1 = (A1 * std::log(1. + v2)) / (v2 + (B1 / v2));
818 G4double H2 = (A2 / v2) + (B2 / (v2 * v2));
819
820 G4double F1 = L1 + H1;
821 G4double F2 = (L2 * H2) / (L2 + H2);
822
823 G4double sigma =
824 CorrectionFactor(particleDefinition, k) * Gj[j]
825 * (S / Bj[ionizationLevelIndex])
826 * ((F1 + w * F2)
827 / (std::pow((1. + w), 3)
828 * (1. + G4Exp(alphaConst * (w - wc) / v))));
829
830 if (j == 4)
831 sigma = CorrectionFactor(particleDefinition, k) * Gj[j]
832 * (S / waterStructure.IonisationEnergy(ionizationLevelIndex))
833 * ((F1 + w * F2)
834 / (std::pow((1. + w), 3)
835 * (1. + G4Exp(alphaConst * (w - wc) / v))));
836
837 if ((particleDefinition == instance->GetIon("hydrogen"))
838 && (ionizationLevelIndex == 4))
839 {
840 // sigma = Gj[j] * (S/Bj[ionizationLevelIndex])
841 sigma = Gj[j] * (S / waterStructure.IonisationEnergy(ionizationLevelIndex))
842 * ((F1 + w * F2)
843 / (std::pow((1. + w), 3)
844 * (1. + G4Exp(alphaConst * (w - wc) / v))));
845 }
846
847 // if ( particleDefinition == G4Proton::ProtonDefinition()
848 // || particleDefinition == instance->GetIon("hydrogen")
849 // )
850
851 if (isProtonOrHydrogen)
852 {
853 return (sigma);
854 }
855
856 if (particleDefinition == instance->GetIon("alpha++"))
857 {
858 slaterEffectiveCharge[0] = 0.;
859 slaterEffectiveCharge[1] = 0.;
860 slaterEffectiveCharge[2] = 0.;
861 sCoefficient[0] = 0.;
862 sCoefficient[1] = 0.;
863 sCoefficient[2] = 0.;
864 }
865
866 else if (particleDefinition == instance->GetIon("alpha+"))
867 {
868 slaterEffectiveCharge[0] = 2.0;
869 // The following values are provided by M. Dingfelder (priv. comm)
870 slaterEffectiveCharge[1] = 2.0;
871 slaterEffectiveCharge[2] = 2.0;
872 //
873 sCoefficient[0] = 0.7;
874 sCoefficient[1] = 0.15;
875 sCoefficient[2] = 0.15;
876 }
877
878 else if (particleDefinition == instance->GetIon("helium"))
879 {
880 slaterEffectiveCharge[0] = 1.7;
881 slaterEffectiveCharge[1] = 1.15;
882 slaterEffectiveCharge[2] = 1.15;
883 sCoefficient[0] = 0.5;
884 sCoefficient[1] = 0.25;
885 sCoefficient[2] = 0.25;
886 }
887
888 // if ( particleDefinition == instance->GetIon("helium")
889 // || particleDefinition == instance->GetIon("alpha+")
890 // || particleDefinition == instance->GetIon("alpha++")
891 // )
892 if (isHelium)
893 {
894 sigma = Gj[j] * (S / Bj[ionizationLevelIndex])
895 * ((F1 + w * F2)
896 / (std::pow((1. + w), 3)
897 * (1. + G4Exp(alphaConst * (w - wc) / v))));
898
899 if (j == 4)
900 sigma = Gj[j]
901 * (S / waterStructure.IonisationEnergy(ionizationLevelIndex))
902 * ((F1 + w * F2)
903 / (std::pow((1. + w), 3)
904 * (1. + G4Exp(alphaConst * (w - wc) / v))));
905
906 G4double zEff = particleDefinition->GetPDGCharge() / eplus
907 + particleDefinition->GetLeptonNumber();
908
909 zEff -= (sCoefficient[0]
910 * S_1s(k, energyTransfer, slaterEffectiveCharge[0], 1.)
911 + sCoefficient[1]
912 * S_2s(k, energyTransfer, slaterEffectiveCharge[1], 2.)
913 + sCoefficient[2]
914 * S_2p(k, energyTransfer, slaterEffectiveCharge[2], 2.));
915
916 return zEff * zEff * sigma;
917 }
918
919 return 0;
920}
G4double S(G4double temp)
static constexpr double eplus
Definition: G4SIunits.hh:184
static constexpr double pi
Definition: G4SIunits.hh:55
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
const double C2
const double C1
G4double S_2s(G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)
G4double S_2p(G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)
G4DNAWaterIonisationStructure waterStructure
G4double S_1s(G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)
G4double CorrectionFactor(G4ParticleDefinition *particleDefinition, G4double k)
G4double GetPDGCharge() const
float electron_mass_c2
Definition: hepunit.py:273
float Bohr_radius
Definition: hepunit.py:289
float proton_mass_c2
Definition: hepunit.py:274

References source.hepunit::Bohr_radius, C1, C2, CorrectionFactor(), source.hepunit::electron_mass_c2, eplus, eV, G4Exp(), G4DNAGenericIonsManager::GetIon(), G4ParticleDefinition::GetLeptonNumber(), G4ParticleDefinition::GetPDGCharge(), G4DNAGenericIonsManager::Instance(), G4DNAWaterIonisationStructure::IonisationEnergy(), CLHEP::detail::n, pi, source.hepunit::proton_mass_c2, G4Proton::ProtonDefinition(), S(), S_1s(), S_2p(), S_2s(), sCoefficient, slaterEffectiveCharge, and waterStructure.

Referenced by RandomizeEjectedElectronEnergy().

◆ FillNumberOfSecondaries()

void G4VEmModel::FillNumberOfSecondaries ( G4int numberOfTriplets,
G4int numberOfRecoil 
)
virtualinherited

Definition at line 365 of file G4VEmModel.cc.

367{
368 numberOfTriplets = 0;
369 numberOfRecoil = 0;
370}

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

◆ ForceBuildTableFlag()

G4bool G4VEmModel::ForceBuildTableFlag ( ) const
inlineinherited

Definition at line 711 of file G4VEmModel.hh.

712{
713 return flagForceBuildTable;
714}
G4bool flagForceBuildTable
Definition: G4VEmModel.hh:456

References G4VEmModel::flagForceBuildTable.

Referenced by G4VMscModel::GetParticleChangeForMSC().

◆ GetAngularDistribution()

G4VEmAngularDistribution * G4VEmModel::GetAngularDistribution ( )
inlineinherited

Definition at line 621 of file G4VEmModel.hh.

622{
623 return anglModel;
624}
G4VEmAngularDistribution * anglModel
Definition: G4VEmModel.hh:414

References G4VEmModel::anglModel.

Referenced by G4EmModelManager::DumpModelList(), G4AtimaEnergyLossModel::Initialise(), G4BetheBlochModel::Initialise(), G4BraggIonModel::Initialise(), G4BraggModel::Initialise(), G4ICRU73QOModel::Initialise(), G4LindhardSorensenIonModel::Initialise(), G4MollerBhabhaModel::Initialise(), G4AdjointBremsstrahlungModel::RapidSampleSecondaries(), G4LivermoreBremsstrahlungModel::SampleSecondaries(), G4eBremParametrizedModel::SampleSecondaries(), G4eBremsstrahlungRelModel::SampleSecondaries(), G4SeltzerBergerModel::SampleSecondaries(), G4DNABornIonisationModel1::SampleSecondaries(), G4DNABornIonisationModel2::SampleSecondaries(), G4DNAEmfietzoglouIonisationModel::SampleSecondaries(), G4DNARuddIonisationExtendedModel::SampleSecondaries(), SampleSecondaries(), G4PAIModel::SampleSecondaries(), G4PAIPhotModel::SampleSecondaries(), G4LivermoreIonisationModel::SampleSecondaries(), G4LivermorePhotoElectricModel::SampleSecondaries(), G4LivermoreRayleighModel::SampleSecondaries(), G4MicroElecInelasticModel::SampleSecondaries(), G4MicroElecInelasticModel_new::SampleSecondaries(), G4MuBremsstrahlungModel::SampleSecondaries(), G4MuPairProductionModel::SampleSecondaries(), G4AtimaEnergyLossModel::SampleSecondaries(), G4BetheBlochModel::SampleSecondaries(), G4BetheHeitlerModel::SampleSecondaries(), G4BraggIonModel::SampleSecondaries(), G4BraggModel::SampleSecondaries(), G4ICRU73QOModel::SampleSecondaries(), G4LindhardSorensenIonModel::SampleSecondaries(), G4MollerBhabhaModel::SampleSecondaries(), G4PairProductionRelModel::SampleSecondaries(), G4PEEffectFluoModel::SampleSecondaries(), and G4IonParametrisedLossModel::SampleSecondaries().

◆ GetChargeSquareRatio()

G4double G4VEmModel::GetChargeSquareRatio ( const G4ParticleDefinition p,
const G4Material ,
G4double  kineticEnergy 
)
virtualinherited

◆ GetCrossSectionTable()

G4PhysicsTable * G4VEmModel::GetCrossSectionTable ( )
inlineinherited

◆ GetCurrentElement()

const G4Element * G4VEmModel::GetCurrentElement ( ) const
inlineinherited

◆ GetCurrentIsotope()

const G4Isotope * G4VEmModel::GetCurrentIsotope ( ) const
inlineinherited

Definition at line 512 of file G4VEmModel.hh.

513{
514 return fCurrentIsotope;
515}
const G4Isotope * fCurrentIsotope
Definition: G4VEmModel.hh:418

References G4VEmModel::fCurrentIsotope.

Referenced by G4VEmProcess::GetTargetIsotope().

◆ GetElementData()

G4ElementData * G4VEmModel::GetElementData ( )
inlineinherited

◆ GetElementSelectors()

std::vector< G4EmElementSelector * > * G4VEmModel::GetElementSelectors ( )
inlineinherited

◆ GetModelOfFluctuations()

G4VEmFluctuationModel * G4VEmModel::GetModelOfFluctuations ( )
inlineinherited

◆ GetName()

const G4String & G4VEmModel::GetName ( ) const
inlineinherited

◆ GetPartialCrossSection()

G4double G4VEmModel::GetPartialCrossSection ( const G4Material ,
G4int  level,
const G4ParticleDefinition ,
G4double  kineticEnergy 
)
virtualinherited

◆ GetParticleChangeForGamma()

G4ParticleChangeForGamma * G4VEmModel::GetParticleChangeForGamma ( )
protectedinherited

Definition at line 123 of file G4VEmModel.cc.

124{
125 G4ParticleChangeForGamma* p = nullptr;
126 if (pParticleChange != nullptr) {
127 p = static_cast<G4ParticleChangeForGamma*>(pParticleChange);
128 } else {
129 p = new G4ParticleChangeForGamma();
130 pParticleChange = p;
131 }
132 if(fTripletModel != nullptr) { fTripletModel->SetParticleChange(p); }
133 return p;
134}
void SetParticleChange(G4VParticleChange *, G4VEmFluctuationModel *f=nullptr)
Definition: G4VEmModel.cc:447
G4VParticleChange * pParticleChange
Definition: G4VEmModel.hh:425
G4VEmModel * fTripletModel
Definition: G4VEmModel.hh:415

References G4VEmModel::fTripletModel, G4VEmModel::pParticleChange, and G4VEmModel::SetParticleChange().

Referenced by G4MicroElecLOPhononModel::G4MicroElecLOPhononModel(), G4DNAChampionElasticModel::Initialise(), G4DNACPA100ElasticModel::Initialise(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), Initialise(), G4DNASancheExcitationModel::Initialise(), G4DNAScreenedRutherfordElasticModel::Initialise(), G4DNATransformElectronModel::Initialise(), G4DNAUeharaScreenedRutherfordElasticModel::Initialise(), G4LEPTSAttachmentModel::Initialise(), G4LEPTSDissociationModel::Initialise(), G4LEPTSElasticModel::Initialise(), G4LEPTSExcitationModel::Initialise(), G4LEPTSIonisationModel::Initialise(), G4LEPTSPositroniumModel::Initialise(), G4LEPTSRotExcitationModel::Initialise(), G4LEPTSVibExcitationModel::Initialise(), G4BoldyshevTripletModel::Initialise(), G4eplusTo3GammaOKVIModel::Initialise(), G4eSingleCoulombScatteringModel::Initialise(), G4IonCoulombScatteringModel::Initialise(), G4eeToHadronsMultiModel::Initialise(), G4JAEAElasticScatteringModel::Initialise(), G4JAEAPolarizedElasticScatteringModel::Initialise(), G4LivermoreComptonModel::Initialise(), G4LivermoreGammaConversion5DModel::Initialise(), G4LivermoreGammaConversionModel::Initialise(), G4LivermoreNuclearGammaConversionModel::Initialise(), G4LivermorePhotoElectricModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4LivermorePolarizedRayleighModel::Initialise(), G4LivermoreRayleighModel::Initialise(), G4LowEPComptonModel::Initialise(), G4LowEPPolarizedComptonModel::Initialise(), G4MicroElecElasticModel::Initialise(), G4MicroElecElasticModel_new::Initialise(), G4MicroElecInelasticModel::Initialise(), G4MicroElecInelasticModel_new::Initialise(), G4MicroElecLOPhononModel::Initialise(), G4PenelopeAnnihilationModel::Initialise(), G4PenelopeComptonModel::Initialise(), G4PenelopeGammaConversionModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4PenelopeRayleighModel::Initialise(), G4PenelopeRayleighModelMI::Initialise(), G4PolarizedAnnihilationModel::Initialise(), G4BetheHeitlerModel::Initialise(), G4eCoulombScatteringModel::Initialise(), G4eDPWACoulombScatteringModel::Initialise(), G4eeToTwoGammaModel::Initialise(), G4eplusTo2GammaOKVIModel::Initialise(), G4hCoulombScatteringModel::Initialise(), G4KleinNishinaCompton::Initialise(), G4KleinNishinaModel::Initialise(), G4PairProductionRelModel::Initialise(), G4PEEffectFluoModel::Initialise(), G4XrayRayleighModel::Initialise(), G4DNABornExcitationModel1::Initialise(), G4DNABornExcitationModel2::Initialise(), G4DNABornIonisationModel1::Initialise(), G4DNABornIonisationModel2::Initialise(), G4DNACPA100ExcitationModel::Initialise(), G4DNACPA100IonisationModel::Initialise(), G4DNADiracRMatrixExcitationModel::Initialise(), G4DNAEmfietzoglouExcitationModel::Initialise(), G4DNAEmfietzoglouIonisationModel::Initialise(), G4DNAQuinnPlasmonExcitationModel::Initialise(), G4DNARelativisticIonisationModel::Initialise(), G4DNAELSEPAElasticModel::Initialise(), G4DNAModelInterface::Initialise(), and G4DNAIonElasticModel::Initialise().

◆ GetParticleChangeForLoss()

G4ParticleChangeForLoss * G4VEmModel::GetParticleChangeForLoss ( )
protectedinherited

◆ GetParticleCharge()

G4double G4VEmModel::GetParticleCharge ( const G4ParticleDefinition p,
const G4Material ,
G4double  kineticEnergy 
)
virtualinherited

◆ GetTripletModel()

G4VEmModel * G4VEmModel::GetTripletModel ( )
inlineinherited

◆ HighEnergyActivationLimit()

G4double G4VEmModel::HighEnergyActivationLimit ( ) const
inlineinherited

◆ HighEnergyLimit()

G4double G4VEmModel::HighEnergyLimit ( ) const
inlineinherited

Definition at line 655 of file G4VEmModel.hh.

656{
657 return highLimit;
658}
G4double highLimit
Definition: G4VEmModel.hh:437

References G4VEmModel::highLimit.

Referenced by G4DNAChampionElasticModel::CrossSectionPerVolume(), G4DNACPA100ElasticModel::CrossSectionPerVolume(), G4DNACPA100ExcitationModel::CrossSectionPerVolume(), G4DNACPA100IonisationModel::CrossSectionPerVolume(), G4DNAEmfietzoglouExcitationModel::CrossSectionPerVolume(), G4DNAEmfietzoglouIonisationModel::CrossSectionPerVolume(), G4DNAMeltonAttachmentModel::CrossSectionPerVolume(), G4DNASancheExcitationModel::CrossSectionPerVolume(), G4DNAScreenedRutherfordElasticModel::CrossSectionPerVolume(), G4DNATransformElectronModel::CrossSectionPerVolume(), G4DNAELSEPAElasticModel::CrossSectionPerVolume(), G4DNAChampionElasticModel::G4DNAChampionElasticModel(), G4DNACPA100ElasticModel::G4DNACPA100ElasticModel(), G4DNAMeltonAttachmentModel::G4DNAMeltonAttachmentModel(), G4DNASancheExcitationModel::G4DNASancheExcitationModel(), G4DNAUeharaScreenedRutherfordElasticModel::G4DNAUeharaScreenedRutherfordElasticModel(), G4eeToHadronsModel::G4eeToHadronsModel(), G4IonParametrisedLossModel::G4IonParametrisedLossModel(), G4LivermorePolarizedRayleighModel::G4LivermorePolarizedRayleighModel(), G4ContinuousGainOfEnergy::GetContinuousStepLimit(), G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple(), G4VMscModel::GetParticleChangeForMSC(), G4DNAChampionElasticModel::Initialise(), G4DNACPA100ElasticModel::Initialise(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), Initialise(), G4DNASancheExcitationModel::Initialise(), G4DNAScreenedRutherfordElasticModel::Initialise(), G4DNAUeharaScreenedRutherfordElasticModel::Initialise(), G4BoldyshevTripletModel::Initialise(), G4PAIModel::Initialise(), G4PAIPhotModel::Initialise(), G4JAEAElasticScatteringModel::Initialise(), G4JAEAPolarizedElasticScatteringModel::Initialise(), G4LivermoreComptonModel::Initialise(), G4LivermoreGammaConversion5DModel::Initialise(), G4LivermoreGammaConversionModel::Initialise(), G4LivermoreIonisationModel::Initialise(), G4LivermoreNuclearGammaConversionModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4LivermoreRayleighModel::Initialise(), G4LowEPComptonModel::Initialise(), G4LowEPPolarizedComptonModel::Initialise(), G4MicroElecElasticModel::Initialise(), G4MicroElecElasticModel_new::Initialise(), G4MicroElecInelasticModel::Initialise(), G4MicroElecInelasticModel_new::Initialise(), G4PenelopeAnnihilationModel::Initialise(), G4PenelopeBremsstrahlungModel::Initialise(), G4PenelopeComptonModel::Initialise(), G4PenelopeGammaConversionModel::Initialise(), G4PenelopeIonisationModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4PenelopeRayleighModel::Initialise(), G4PenelopeRayleighModelMI::Initialise(), G4MuBremsstrahlungModel::Initialise(), G4MuPairProductionModel::Initialise(), G4eBremsstrahlungRelModel::Initialise(), G4eDPWACoulombScatteringModel::Initialise(), G4GoudsmitSaundersonMscModel::Initialise(), G4PairProductionRelModel::Initialise(), G4SeltzerBergerModel::Initialise(), G4WentzelVIModel::Initialise(), G4DNABornExcitationModel1::Initialise(), G4DNABornExcitationModel2::Initialise(), G4DNABornIonisationModel1::Initialise(), G4DNABornIonisationModel2::Initialise(), G4DNACPA100ExcitationModel::Initialise(), G4DNACPA100IonisationModel::Initialise(), G4DNADiracRMatrixExcitationModel::Initialise(), G4DNAEmfietzoglouExcitationModel::Initialise(), G4DNAEmfietzoglouIonisationModel::Initialise(), G4DNAQuinnPlasmonExcitationModel::Initialise(), G4DNARelativisticIonisationModel::Initialise(), G4EmModelManager::Initialise(), G4DNAELSEPAElasticModel::Initialise(), G4DNADummyModel::Initialise(), G4DNAIonElasticModel::Initialise(), G4mplIonisation::InitialiseEnergyLossProcess(), G4ionIonisation::InitialiseEnergyLossProcess(), G4MuBremsstrahlungModel::InitialiseLocal(), G4MuPairProductionModel::InitialiseLocal(), G4eBremsstrahlungRelModel::InitialiseLocal(), G4PairProductionRelModel::InitialiseLocal(), G4CoulombScattering::InitialiseProcess(), G4VEmProcess::PostStepDoIt(), G4VEmProcess::PreparePhysicsTable(), G4VEnergyLossProcess::PreparePhysicsTable(), G4VMultipleScattering::PreparePhysicsTable(), G4DNACPA100IonisationModel::SampleSecondaries(), G4DNAEmfietzoglouIonisationModel::SampleSecondaries(), G4DNASancheExcitationModel::SampleSecondaries(), G4EmConfigurator::SetExtraEmModel(), G4mplIonisationModel::SetParticle(), G4mplIonisationWithDeltaModel::SetParticle(), G4eBremsstrahlung::StreamProcessInfo(), and G4EmConfigurator::UpdateModelEnergyRange().

◆ Initialise()

void G4DNARuddIonisationModel::Initialise ( const G4ParticleDefinition particle,
const G4DataVector  
)
virtual

Implements G4VEmModel.

Definition at line 112 of file G4DNARuddIonisationModel.cc.

114{
115
116 if (verboseLevel > 3)
117 {
118 G4cout << "Calling G4DNARuddIonisationModel::Initialise()" << G4endl;
119 }
120
121 // Energy limits
122
123 G4String fileProton("dna/sigma_ionisation_p_rudd");
124 G4String fileHydrogen("dna/sigma_ionisation_h_rudd");
125 G4String fileAlphaPlusPlus("dna/sigma_ionisation_alphaplusplus_rudd");
126 G4String fileAlphaPlus("dna/sigma_ionisation_alphaplus_rudd");
127 G4String fileHelium("dna/sigma_ionisation_he_rudd");
128
129 G4DNAGenericIonsManager *instance;
132 G4ParticleDefinition* hydrogenDef = instance->GetIon("hydrogen");
133 G4ParticleDefinition* alphaPlusPlusDef = instance->GetIon("alpha++");
134 G4ParticleDefinition* alphaPlusDef = instance->GetIon("alpha+");
135 G4ParticleDefinition* heliumDef = instance->GetIon("helium");
136
138 G4String hydrogen;
139 G4String alphaPlusPlus;
140 G4String alphaPlus;
141 G4String helium;
142
143 G4double scaleFactor = 1 * m*m;
144
145 // LIMITS AND DATA
146
147 // ********************************************************
148
149 proton = protonDef->GetParticleName();
150 tableFile[proton] = fileProton;
151
153 highEnergyLimit[proton] = 500. * keV;
154
155 // Cross section
156
158 eV,
159 scaleFactor );
160 tableProton->LoadData(fileProton);
161 tableData[proton] = tableProton;
162
163 // ********************************************************
164
165 hydrogen = hydrogenDef->GetParticleName();
166 tableFile[hydrogen] = fileHydrogen;
167
169 highEnergyLimit[hydrogen] = 100. * MeV;
170
171 // Cross section
172
174 eV,
175 scaleFactor );
176 tableHydrogen->LoadData(fileHydrogen);
177
178 tableData[hydrogen] = tableHydrogen;
179
180 // ********************************************************
181
182 alphaPlusPlus = alphaPlusPlusDef->GetParticleName();
183 tableFile[alphaPlusPlus] = fileAlphaPlusPlus;
184
185 lowEnergyLimit[alphaPlusPlus] = lowEnergyLimitForZ2;
186 highEnergyLimit[alphaPlusPlus] = 400. * MeV;
187
188 // Cross section
189
191 eV,
192 scaleFactor );
193 tableAlphaPlusPlus->LoadData(fileAlphaPlusPlus);
194
195 tableData[alphaPlusPlus] = tableAlphaPlusPlus;
196
197 // ********************************************************
198
199 alphaPlus = alphaPlusDef->GetParticleName();
200 tableFile[alphaPlus] = fileAlphaPlus;
201
203 highEnergyLimit[alphaPlus] = 400. * MeV;
204
205 // Cross section
206
208 eV,
209 scaleFactor );
210 tableAlphaPlus->LoadData(fileAlphaPlus);
211 tableData[alphaPlus] = tableAlphaPlus;
212
213 // ********************************************************
214
215 helium = heliumDef->GetParticleName();
216 tableFile[helium] = fileHelium;
217
219 highEnergyLimit[helium] = 400. * MeV;
220
221 // Cross section
222
224 eV,
225 scaleFactor );
226 tableHelium->LoadData(fileHelium);
227 tableData[helium] = tableHelium;
228
229 //
230
231 if (particle==protonDef)
232 {
235 }
236
237 if (particle==hydrogenDef)
238 {
241 }
242
243 if (particle==heliumDef)
244 {
247 }
248
249 if (particle==alphaPlusDef)
250 {
253 }
254
255 if (particle==alphaPlusPlusDef)
256 {
257 SetLowEnergyLimit(lowEnergyLimit[alphaPlusPlus]);
258 SetHighEnergyLimit(highEnergyLimit[alphaPlusPlus]);
259 }
260
261 if( verboseLevel>0 )
262 {
263 G4cout << "Rudd ionisation model is initialized " << G4endl
264 << "Energy range: "
265 << LowEnergyLimit() / eV << " eV - "
266 << HighEnergyLimit() / keV << " keV for "
267 << particle->GetParticleName()
268 << G4endl;
269 }
270
271 // Initialize water density pointer
273
274 //
275
277
278 if (isInitialised)
279 { return;}
281 isInitialised = true;
282
283}
static constexpr double m
Definition: G4SIunits.hh:109
static constexpr double MeV
Definition: G4SIunits.hh:200
virtual G4bool LoadData(const G4String &argFileName)
const std::vector< G4double > * GetNumMolPerVolTableFor(const G4Material *) const
Retrieve a table of molecular densities (number of molecules per unit volume) in the G4 unit system f...
static G4DNAMolecularMaterial * Instance()
std::map< G4String, G4double, std::less< G4String > > lowEnergyLimit
static G4LossTableManager * Instance()
G4VAtomDeexcitation * AtomDeexcitation()
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
Definition: G4Material.cc:686
const G4String & GetParticleName() const
void SetHighEnergyLimit(G4double)
Definition: G4VEmModel.hh:767
G4ParticleChangeForGamma * GetParticleChangeForGamma()
Definition: G4VEmModel.cc:123
G4double LowEnergyLimit() const
Definition: G4VEmModel.hh:662
G4double HighEnergyLimit() const
Definition: G4VEmModel.hh:655
void SetLowEnergyLimit(G4double)
Definition: G4VEmModel.hh:774

References G4LossTableManager::AtomDeexcitation(), eV, fAtomDeexcitation, fParticleChangeForGamma, fpWaterDensity, G4cout, G4endl, G4DNAGenericIonsManager::GetIon(), G4Material::GetMaterial(), G4DNAMolecularMaterial::GetNumMolPerVolTableFor(), G4VEmModel::GetParticleChangeForGamma(), G4ParticleDefinition::GetParticleName(), highEnergyLimit, G4VEmModel::HighEnergyLimit(), G4DNAMolecularMaterial::Instance(), G4LossTableManager::Instance(), G4DNAGenericIonsManager::Instance(), isInitialised, keV, G4DNACrossSectionDataSet::LoadData(), lowEnergyLimit, G4VEmModel::LowEnergyLimit(), lowEnergyLimitForZ1, lowEnergyLimitForZ2, m, MeV, G4InuclParticleNames::proton, G4Proton::ProtonDefinition(), G4VEmModel::SetHighEnergyLimit(), G4VEmModel::SetLowEnergyLimit(), tableData, tableFile, and verboseLevel.

◆ InitialiseElementSelectors()

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

Definition at line 138 of file G4VEmModel.cc.

140{
141 // using spline for element selectors should be investigated in details
142 // because small number of points may provide biased results
143 // large number of points requires significant increase of memory
144 G4bool spline = false;
145
146 //G4cout << "IES: for " << GetName() << " Emin(MeV)= " << lowLimit/MeV
147 // << " Emax(MeV)= " << highLimit/MeV << G4endl;
148
149 // two times less bins because probability functon is normalized
150 // so correspondingly is more smooth
151 if(highLimit <= lowLimit) { return; }
152
154
155 G4ProductionCutsTable* theCoupleTable=
157 G4int numOfCouples = theCoupleTable->GetTableSize();
158
159 // prepare vector
160 if(!elmSelectors) {
161 elmSelectors = new std::vector<G4EmElementSelector*>;
162 }
163 if(numOfCouples > nSelectors) {
164 for(G4int i=nSelectors; i<numOfCouples; ++i) {
165 elmSelectors->push_back(nullptr);
166 }
167 nSelectors = numOfCouples;
168 }
169
170 // initialise vector
171 for(G4int i=0; i<numOfCouples; ++i) {
172
173 // no need in element selectors for infinite cuts
174 if(cuts[i] == DBL_MAX) { continue; }
175
176 auto couple = theCoupleTable->GetMaterialCutsCouple(i);
177 auto material = couple->GetMaterial();
178 SetCurrentCouple(couple);
179
180 // selector already exist then delete
181 delete (*elmSelectors)[i];
182
183 G4double emin = std::max(lowLimit, MinPrimaryEnergy(material, part, cuts[i]));
184 G4double emax = std::max(highLimit, 10*emin);
185 static const G4double invlog106 = 1.0/(6*G4Log(10.));
186 G4int nbins = (G4int)(nbinsPerDec*G4Log(emax/emin)*invlog106);
187 nbins = std::max(nbins, 3);
188
189 (*elmSelectors)[i] = new G4EmElementSelector(this,material,nbins,
190 emin,emax,spline);
191 ((*elmSelectors)[i])->Initialise(part, cuts[i]);
192 /*
193 G4cout << "G4VEmModel::InitialiseElmSelectors i= " << i
194 << " " << part->GetParticleName()
195 << " for " << GetName() << " cut= " << cuts[i]
196 << " " << (*elmSelectors)[i] << G4endl;
197 ((*elmSelectors)[i])->Dump(part);
198 */
199 }
200}
G4double G4Log(G4double x)
Definition: G4Log.hh:226
static G4EmParameters * Instance()
G4int NumberOfBinsPerDecade() const
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
std::size_t GetTableSize() const
static G4ProductionCutsTable * GetProductionCutsTable()
virtual G4double MinPrimaryEnergy(const G4Material *, const G4ParticleDefinition *, G4double cut=0.0)
Definition: G4VEmModel.cc:415
G4double lowLimit
Definition: G4VEmModel.hh:436
G4int nSelectors
Definition: G4VEmModel.hh:443
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &)=0
T max(const T t1, const T t2)
brief Return the largest of the two arguments

References DBL_MAX, G4VEmModel::elmSelectors, emax, G4Log(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4ProductionCutsTable::GetProductionCutsTable(), G4ProductionCutsTable::GetTableSize(), G4VEmModel::highLimit, G4VEmModel::Initialise(), G4EmParameters::Instance(), G4VEmModel::lowLimit, eplot::material, G4INCL::Math::max(), G4VEmModel::MinPrimaryEnergy(), G4VEmModel::nSelectors, G4EmParameters::NumberOfBinsPerDecade(), and G4VEmModel::SetCurrentCouple().

Referenced by G4eSingleCoulombScatteringModel::Initialise(), G4PAIModel::Initialise(), G4PAIPhotModel::Initialise(), G4JAEAElasticScatteringModel::Initialise(), G4JAEAPolarizedElasticScatteringModel::Initialise(), G4LivermoreComptonModel::Initialise(), G4LivermoreGammaConversion5DModel::Initialise(), G4LivermoreGammaConversionModel::Initialise(), G4LivermoreNuclearGammaConversionModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4LivermorePolarizedRayleighModel::Initialise(), G4LivermoreRayleighModel::Initialise(), G4LowEPComptonModel::Initialise(), G4LowEPPolarizedComptonModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4MuBremsstrahlungModel::Initialise(), G4MuPairProductionModel::Initialise(), G4BetheHeitlerModel::Initialise(), G4eBremParametrizedModel::Initialise(), G4eBremsstrahlungRelModel::Initialise(), G4eCoulombScatteringModel::Initialise(), G4eDPWACoulombScatteringModel::Initialise(), G4hCoulombScatteringModel::Initialise(), G4KleinNishinaCompton::Initialise(), G4KleinNishinaModel::Initialise(), G4PairProductionRelModel::Initialise(), G4SeltzerBergerModel::Initialise(), and G4XrayRayleighModel::Initialise().

◆ InitialiseForElement()

void G4VEmModel::InitialiseForElement ( const G4ParticleDefinition ,
G4int  Z 
)
virtualinherited

◆ InitialiseForMaterial()

void G4VEmModel::InitialiseForMaterial ( const G4ParticleDefinition part,
const G4Material material 
)
virtualinherited

Definition at line 209 of file G4VEmModel.cc.

211{
212 if(material != nullptr) {
213 size_t n = material->GetNumberOfElements();
214 for(size_t i=0; i<n; ++i) {
215 G4int Z = material->GetElement(i)->GetZasInt();
216 InitialiseForElement(part, Z);
217 }
218 }
219}
const G4int Z[17]
virtual void InitialiseForElement(const G4ParticleDefinition *, G4int Z)
Definition: G4VEmModel.cc:223

References G4VEmModel::InitialiseForElement(), eplot::material, CLHEP::detail::n, and Z.

Referenced by G4EmCalculator::FindEmModel().

◆ InitialiseLocal()

void G4VEmModel::InitialiseLocal ( const G4ParticleDefinition ,
G4VEmModel masterModel 
)
virtualinherited

◆ IsActive()

G4bool G4VEmModel::IsActive ( G4double  kinEnergy) const
inlineinherited

◆ IsLocked()

G4bool G4VEmModel::IsLocked ( ) const
inlineinherited

◆ IsMaster()

G4bool G4VEmModel::IsMaster ( ) const
inlineinherited

Definition at line 746 of file G4VEmModel.hh.

747{
748 return isMaster;
749}
G4bool isMaster
Definition: G4VEmModel.hh:457

References G4VEmModel::isMaster.

Referenced by G4PenelopeBremsstrahlungModel::BuildXSTable(), G4PenelopeBremsstrahlungModel::ClearTables(), G4MuPairProductionModel::DataCorrupted(), G4PenelopePhotoElectricModel::GetNumberOfShellXS(), G4VMscModel::GetParticleChangeForMSC(), G4BoldyshevTripletModel::Initialise(), G4eSingleCoulombScatteringModel::Initialise(), G4PAIModel::Initialise(), G4PAIPhotModel::Initialise(), G4EmMultiModel::Initialise(), G4mplIonisationModel::Initialise(), G4mplIonisationWithDeltaModel::Initialise(), G4JAEAElasticScatteringModel::Initialise(), G4JAEAPolarizedElasticScatteringModel::Initialise(), G4LivermoreBremsstrahlungModel::Initialise(), G4LivermoreComptonModel::Initialise(), G4LivermoreGammaConversion5DModel::Initialise(), G4LivermoreGammaConversionModel::Initialise(), G4LivermoreNuclearGammaConversionModel::Initialise(), G4LivermorePhotoElectricModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4LivermorePolarizedRayleighModel::Initialise(), G4LivermoreRayleighModel::Initialise(), G4LowEPComptonModel::Initialise(), G4LowEPPolarizedComptonModel::Initialise(), G4PenelopeAnnihilationModel::Initialise(), G4PenelopeBremsstrahlungModel::Initialise(), G4PenelopeComptonModel::Initialise(), G4PenelopeGammaConversionModel::Initialise(), G4PenelopeIonisationModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4PenelopeRayleighModel::Initialise(), G4PenelopeRayleighModelMI::Initialise(), G4MuBremsstrahlungModel::Initialise(), G4MuPairProductionModel::Initialise(), G4BetheBlochModel::Initialise(), G4BetheHeitlerModel::Initialise(), G4BraggIonModel::Initialise(), G4BraggModel::Initialise(), G4eBremParametrizedModel::Initialise(), G4eBremsstrahlungRelModel::Initialise(), G4eCoulombScatteringModel::Initialise(), G4eDPWACoulombScatteringModel::Initialise(), G4eeToTwoGammaModel::Initialise(), G4eplusTo2GammaOKVIModel::Initialise(), G4GoudsmitSaundersonMscModel::Initialise(), G4hCoulombScatteringModel::Initialise(), G4KleinNishinaCompton::Initialise(), G4KleinNishinaModel::Initialise(), G4LindhardSorensenIonModel::Initialise(), G4PairProductionRelModel::Initialise(), G4SeltzerBergerModel::Initialise(), G4WentzelVIModel::Initialise(), G4PenelopeBremsstrahlungModel::InitialiseLocal(), G4PenelopeGammaConversionModel::ReadDataFile(), G4PenelopePhotoElectricModel::ReadDataFile(), G4BetheHeitlerModel::~G4BetheHeitlerModel(), G4BoldyshevTripletModel::~G4BoldyshevTripletModel(), G4BraggIonModel::~G4BraggIonModel(), G4BraggModel::~G4BraggModel(), G4eBremsstrahlungRelModel::~G4eBremsstrahlungRelModel(), G4eDPWACoulombScatteringModel::~G4eDPWACoulombScatteringModel(), G4GoudsmitSaundersonMscModel::~G4GoudsmitSaundersonMscModel(), G4JAEAElasticScatteringModel::~G4JAEAElasticScatteringModel(), G4JAEAPolarizedElasticScatteringModel::~G4JAEAPolarizedElasticScatteringModel(), G4LivermoreBremsstrahlungModel::~G4LivermoreBremsstrahlungModel(), G4LivermoreComptonModel::~G4LivermoreComptonModel(), G4LivermoreGammaConversion5DModel::~G4LivermoreGammaConversion5DModel(), G4LivermoreGammaConversionModel::~G4LivermoreGammaConversionModel(), G4LivermoreNuclearGammaConversionModel::~G4LivermoreNuclearGammaConversionModel(), G4LivermorePhotoElectricModel::~G4LivermorePhotoElectricModel(), G4LivermorePolarizedComptonModel::~G4LivermorePolarizedComptonModel(), G4LivermorePolarizedGammaConversionModel::~G4LivermorePolarizedGammaConversionModel(), G4LivermorePolarizedRayleighModel::~G4LivermorePolarizedRayleighModel(), G4LivermoreRayleighModel::~G4LivermoreRayleighModel(), G4LowEPComptonModel::~G4LowEPComptonModel(), G4LowEPPolarizedComptonModel::~G4LowEPPolarizedComptonModel(), G4mplIonisationModel::~G4mplIonisationModel(), G4mplIonisationWithDeltaModel::~G4mplIonisationWithDeltaModel(), G4PAIModel::~G4PAIModel(), G4PAIPhotModel::~G4PAIPhotModel(), G4PairProductionRelModel::~G4PairProductionRelModel(), G4PenelopeBremsstrahlungModel::~G4PenelopeBremsstrahlungModel(), G4PenelopeGammaConversionModel::~G4PenelopeGammaConversionModel(), G4PenelopeIonisationModel::~G4PenelopeIonisationModel(), G4PenelopePhotoElectricModel::~G4PenelopePhotoElectricModel(), G4PenelopeRayleighModel::~G4PenelopeRayleighModel(), G4PenelopeRayleighModelMI::~G4PenelopeRayleighModelMI(), G4SeltzerBergerModel::~G4SeltzerBergerModel(), and G4WentzelVIModel::~G4WentzelVIModel().

◆ LowEnergyActivationLimit()

G4double G4VEmModel::LowEnergyActivationLimit ( ) const
inlineinherited

◆ LowEnergyLimit()

G4double G4VEmModel::LowEnergyLimit ( ) const
inlineinherited

Definition at line 662 of file G4VEmModel.hh.

663{
664 return lowLimit;
665}

References G4VEmModel::lowLimit.

Referenced by G4eBremsstrahlungRelModel::ComputeCrossSectionPerAtom(), G4KleinNishinaCompton::ComputeCrossSectionPerAtom(), G4KleinNishinaModel::ComputeCrossSectionPerAtom(), G4LivermoreComptonModel::ComputeCrossSectionPerAtom(), G4LivermorePolarizedComptonModel::ComputeCrossSectionPerAtom(), G4LowEPComptonModel::ComputeCrossSectionPerAtom(), G4LowEPPolarizedComptonModel::ComputeCrossSectionPerAtom(), G4mplIonisationWithDeltaModel::ComputeCrossSectionPerElectron(), G4EmCalculator::ComputeDEDX(), G4eBremsstrahlungRelModel::ComputeDEDXPerVolume(), G4mplIonisationWithDeltaModel::ComputeDEDXPerVolume(), G4IonParametrisedLossModel::ComputeDEDXPerVolume(), G4IonParametrisedLossModel::CorrectionsAlongStep(), G4PenelopeRayleighModelMI::CrossSectionPerVolume(), G4PenelopeComptonModel::CrossSectionPerVolume(), G4DNAChampionElasticModel::CrossSectionPerVolume(), G4DNACPA100ElasticModel::CrossSectionPerVolume(), G4DNACPA100ExcitationModel::CrossSectionPerVolume(), G4DNACPA100IonisationModel::CrossSectionPerVolume(), G4DNAEmfietzoglouExcitationModel::CrossSectionPerVolume(), G4DNAEmfietzoglouIonisationModel::CrossSectionPerVolume(), G4DNAMeltonAttachmentModel::CrossSectionPerVolume(), G4DNASancheExcitationModel::CrossSectionPerVolume(), G4DNAScreenedRutherfordElasticModel::CrossSectionPerVolume(), G4DNAELSEPAElasticModel::CrossSectionPerVolume(), G4EmCalculator::FindEmModel(), G4DNAChampionElasticModel::G4DNAChampionElasticModel(), G4DNACPA100ElasticModel::G4DNACPA100ElasticModel(), G4DNAMeltonAttachmentModel::G4DNAMeltonAttachmentModel(), G4DNASancheExcitationModel::G4DNASancheExcitationModel(), G4DNAUeharaScreenedRutherfordElasticModel::G4DNAUeharaScreenedRutherfordElasticModel(), G4eeToHadronsModel::G4eeToHadronsModel(), G4LivermorePolarizedRayleighModel::G4LivermorePolarizedRayleighModel(), G4PenelopeBremsstrahlungModel::GetCrossSectionTableForCouple(), G4VMscModel::GetParticleChangeForMSC(), G4DNAChampionElasticModel::Initialise(), G4DNACPA100ElasticModel::Initialise(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), Initialise(), G4DNASancheExcitationModel::Initialise(), G4DNAScreenedRutherfordElasticModel::Initialise(), G4DNAUeharaScreenedRutherfordElasticModel::Initialise(), G4BoldyshevTripletModel::Initialise(), G4PAIModel::Initialise(), G4PAIPhotModel::Initialise(), G4JAEAElasticScatteringModel::Initialise(), G4JAEAPolarizedElasticScatteringModel::Initialise(), G4LivermoreComptonModel::Initialise(), G4LivermoreGammaConversion5DModel::Initialise(), G4LivermoreGammaConversionModel::Initialise(), G4LivermoreIonisationModel::Initialise(), G4LivermoreNuclearGammaConversionModel::Initialise(), G4LivermorePolarizedComptonModel::Initialise(), G4LivermorePolarizedGammaConversionModel::Initialise(), G4LivermoreRayleighModel::Initialise(), G4LowEPComptonModel::Initialise(), G4LowEPPolarizedComptonModel::Initialise(), G4MicroElecElasticModel::Initialise(), G4MicroElecElasticModel_new::Initialise(), G4MicroElecInelasticModel::Initialise(), G4MicroElecInelasticModel_new::Initialise(), G4PenelopeAnnihilationModel::Initialise(), G4PenelopeBremsstrahlungModel::Initialise(), G4PenelopeComptonModel::Initialise(), G4PenelopeGammaConversionModel::Initialise(), G4PenelopeIonisationModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4PenelopeRayleighModel::Initialise(), G4PenelopeRayleighModelMI::Initialise(), G4MuPairProductionModel::Initialise(), G4eBremParametrizedModel::Initialise(), G4eBremsstrahlungRelModel::Initialise(), G4eDPWACoulombScatteringModel::Initialise(), G4GoudsmitSaundersonMscModel::Initialise(), G4PairProductionRelModel::Initialise(), G4SeltzerBergerModel::Initialise(), G4WentzelVIModel::Initialise(), G4DNABornExcitationModel1::Initialise(), G4DNABornExcitationModel2::Initialise(), G4DNABornIonisationModel1::Initialise(), G4DNABornIonisationModel2::Initialise(), G4DNACPA100ExcitationModel::Initialise(), G4DNACPA100IonisationModel::Initialise(), G4DNADiracRMatrixExcitationModel::Initialise(), G4DNAEmfietzoglouExcitationModel::Initialise(), G4DNAEmfietzoglouIonisationModel::Initialise(), G4DNAQuinnPlasmonExcitationModel::Initialise(), G4DNARelativisticIonisationModel::Initialise(), G4EmModelManager::Initialise(), G4DNAELSEPAElasticModel::Initialise(), G4DNADummyModel::Initialise(), G4DNAIonElasticModel::Initialise(), G4mplIonisation::InitialiseEnergyLossProcess(), G4eBremsstrahlungRelModel::InitialiseLocal(), G4PairProductionRelModel::InitialiseLocal(), G4CoulombScattering::InitialiseProcess(), G4VEmProcess::PostStepDoIt(), G4eBremsstrahlungRelModel::SampleSecondaries(), G4DNACPA100IonisationModel::SampleSecondaries(), G4DNAEmfietzoglouIonisationModel::SampleSecondaries(), G4LivermoreComptonModel::SampleSecondaries(), G4LivermorePolarizedComptonModel::SampleSecondaries(), G4LowEPComptonModel::SampleSecondaries(), G4LowEPPolarizedComptonModel::SampleSecondaries(), G4PenelopeComptonModel::SampleSecondaries(), G4PolarizedComptonModel::SampleSecondaries(), G4KleinNishinaCompton::SampleSecondaries(), G4KleinNishinaModel::SampleSecondaries(), G4EmConfigurator::SetExtraEmModel(), G4mplIonisationModel::SetParticle(), G4mplIonisationWithDeltaModel::SetParticle(), and G4EmConfigurator::UpdateModelEnergyRange().

◆ LPMFlag()

G4bool G4VEmModel::LPMFlag ( ) const
inlineinherited

◆ MaxSecondaryEnergy()

G4double G4VEmModel::MaxSecondaryEnergy ( const G4ParticleDefinition ,
G4double  kineticEnergy 
)
protectedvirtualinherited

◆ MaxSecondaryKinEnergy()

G4double G4VEmModel::MaxSecondaryKinEnergy ( const G4DynamicParticle dynParticle)
inlineinherited

◆ MinEnergyCut()

G4double G4VEmModel::MinEnergyCut ( const G4ParticleDefinition ,
const G4MaterialCutsCouple  
)
virtualinherited

◆ MinPrimaryEnergy()

G4double G4VEmModel::MinPrimaryEnergy ( const G4Material ,
const G4ParticleDefinition ,
G4double  cut = 0.0 
)
virtualinherited

◆ ModelDescription()

void G4VEmModel::ModelDescription ( std::ostream &  outFile) const
virtualinherited

Reimplemented in G4eeToHadronsMultiModel.

Definition at line 469 of file G4VEmModel.cc.

470{
471 outFile << "The description for this model has not been written yet.\n";
472}

◆ operator=()

G4DNARuddIonisationModel & G4DNARuddIonisationModel::operator= ( const G4DNARuddIonisationModel right)
private

◆ PartialCrossSection()

G4double G4DNARuddIonisationModel::PartialCrossSection ( const G4Track track)
private

Definition at line 1084 of file G4DNARuddIonisationModel.cc.

1085{
1086 G4double sigma = 0.;
1087
1088 const G4DynamicParticle* particle = track.GetDynamicParticle();
1089 G4double k = particle->GetKineticEnergy();
1090
1091 G4double lowLim = 0;
1092 G4double highLim = 0;
1093
1094 const G4String& particleName = particle->GetDefinition()->GetParticleName();
1095
1096 std::map<G4String, G4double, std::less<G4String> >::iterator pos1;
1097 pos1 = lowEnergyLimit.find(particleName);
1098
1099 if (pos1 != lowEnergyLimit.end())
1100 {
1101 lowLim = pos1->second;
1102 }
1103
1104 std::map<G4String, G4double, std::less<G4String> >::iterator pos2;
1105 pos2 = highEnergyLimit.find(particleName);
1106
1107 if (pos2 != highEnergyLimit.end())
1108 {
1109 highLim = pos2->second;
1110 }
1111
1112 if (k >= lowLim && k <= highLim)
1113 {
1114 std::map<G4String, G4DNACrossSectionDataSet*, std::less<G4String> >::iterator pos;
1115 pos = tableData.find(particleName);
1116
1117 if (pos != tableData.end())
1118 {
1119 G4DNACrossSectionDataSet* table = pos->second;
1120 if (table != 0)
1121 {
1122 sigma = table->FindValue(k);
1123 }
1124 } else
1125 {
1126 G4Exception("G4DNARuddIonisationModel::PartialCrossSection",
1127 "em0002",
1129 "Model not applicable to particle type.");
1130 }
1131 }
1132
1133 return sigma;
1134}
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
const G4DynamicParticle * GetDynamicParticle() const

References FatalException, G4DNACrossSectionDataSet::FindValue(), G4Exception(), G4DynamicParticle::GetDefinition(), G4Track::GetDynamicParticle(), G4DynamicParticle::GetKineticEnergy(), G4ParticleDefinition::GetParticleName(), highEnergyLimit, lowEnergyLimit, pos, and tableData.

◆ PolarAngleLimit()

G4double G4VEmModel::PolarAngleLimit ( ) const
inlineinherited

◆ R()

G4double G4DNARuddIonisationModel::R ( G4double  t,
G4double  energyTransferred,
G4double  slaterEffectiveChg,
G4double  shellNumber 
)
private

Definition at line 976 of file G4DNARuddIonisationModel.cc.

980{
981 // tElectron = m_electron / m_alpha * t
982 // Dingfelder, in Chattanooga 2005 proceedings, p 4
983
984 G4double tElectron = 0.511 / 3728. * t;
985 // The following values are provided by M. Dingfelder (priv. comm)
986 G4double H = 2. * 13.60569172 * eV;
987 G4double value = std::sqrt(2. * tElectron / H) / (energyTransferred / H)
988 * (slaterEffectiveChg / shellNumber);
989
990 return value;
991}

References eV.

Referenced by S_1s(), S_2p(), and S_2s().

◆ RandomizeEjectedElectronEnergy()

G4double G4DNARuddIonisationModel::RandomizeEjectedElectronEnergy ( G4ParticleDefinition particleDefinition,
G4double  incomingParticleEnergy,
G4int  shell 
)
private

Definition at line 602 of file G4DNARuddIonisationModel.cc.

605{
606 G4double maximumKineticEnergyTransfer = 0.;
607
608 G4DNAGenericIonsManager *instance;
610
611 if (particleDefinition == G4Proton::ProtonDefinition()
612 || particleDefinition == instance->GetIon("hydrogen"))
613 {
614 maximumKineticEnergyTransfer = 4. * (electron_mass_c2 / proton_mass_c2) * k;
615 }
616
617 else if (particleDefinition == instance->GetIon("helium")
618 || particleDefinition == instance->GetIon("alpha+")
619 || particleDefinition == instance->GetIon("alpha++"))
620 {
621 maximumKineticEnergyTransfer = 4. * (0.511 / 3728) * k;
622 }
623
624 G4double crossSectionMaximum = 0.;
625
626 for (G4double value = waterStructure.IonisationEnergy(shell);
627 value <= 5. * waterStructure.IonisationEnergy(shell) && k >= value;
628 value += 0.1 * eV)
629 {
630 G4double differentialCrossSection =
631 DifferentialCrossSection(particleDefinition, k, value, shell);
632 if (differentialCrossSection >= crossSectionMaximum)
633 crossSectionMaximum = differentialCrossSection;
634 }
635
636 G4double secElecKinetic = 0.;
637
638 do
639 {
640 secElecKinetic = G4UniformRand()* maximumKineticEnergyTransfer;
641 }while(G4UniformRand()*crossSectionMaximum > DifferentialCrossSection(particleDefinition,
642 k,
643 secElecKinetic+waterStructure.IonisationEnergy(shell),
644 shell));
645
646 return (secElecKinetic);
647}
#define G4UniformRand()
Definition: Randomize.hh:52
G4double DifferentialCrossSection(G4ParticleDefinition *particleDefinition, G4double k, G4double energyTransfer, G4int shell)

References DifferentialCrossSection(), source.hepunit::electron_mass_c2, eV, G4UniformRand, G4DNAGenericIonsManager::GetIon(), G4DNAGenericIonsManager::Instance(), G4DNAWaterIonisationStructure::IonisationEnergy(), source.hepunit::proton_mass_c2, G4Proton::ProtonDefinition(), and waterStructure.

Referenced by SampleSecondaries().

◆ RandomSelect()

G4int G4DNARuddIonisationModel::RandomSelect ( G4double  energy,
const G4String particle 
)
private

Definition at line 1017 of file G4DNARuddIonisationModel.cc.

1019{
1020
1021 // BEGIN PART 1/2 OF ELECTRON CORRECTION
1022
1023 // add ONE or TWO electron-water ionisation for alpha+ and helium
1024
1025 G4int level = 0;
1026
1027 // Retrieve data table corresponding to the current particle type
1028
1029 std::map<G4String, G4DNACrossSectionDataSet*, std::less<G4String> >::iterator pos;
1030 pos = tableData.find(particle);
1031
1032 if (pos != tableData.end())
1033 {
1034 G4DNACrossSectionDataSet* table = pos->second;
1035
1036 if (table != 0)
1037 {
1038 G4double* valuesBuffer = new G4double[table->NumberOfComponents()];
1039
1040 const size_t n(table->NumberOfComponents());
1041 size_t i(n);
1042 G4double value = 0.;
1043
1044 while (i > 0)
1045 {
1046 i--;
1047 valuesBuffer[i] = table->GetComponent(i)->FindValue(k);
1048 value += valuesBuffer[i];
1049 }
1050
1051 value *= G4UniformRand();
1052
1053 i = n;
1054
1055 while (i > 0)
1056 {
1057 i--;
1058
1059 if (valuesBuffer[i] > value)
1060 {
1061 delete[] valuesBuffer;
1062 return i;
1063 }
1064 value -= valuesBuffer[i];
1065 }
1066
1067 if (valuesBuffer)
1068 delete[] valuesBuffer;
1069
1070 }
1071 } else
1072 {
1073 G4Exception("G4DNARuddIonisationModel::RandomSelect",
1074 "em0002",
1076 "Model not applicable to particle type.");
1077 }
1078
1079 return level;
1080}
virtual size_t NumberOfComponents(void) const
virtual const G4VEMDataSet * GetComponent(G4int componentId) const
virtual G4double FindValue(G4double x, G4int componentId=0) const =0

References FatalException, G4VEMDataSet::FindValue(), G4Exception(), G4UniformRand, G4DNACrossSectionDataSet::GetComponent(), CLHEP::detail::n, G4DNACrossSectionDataSet::NumberOfComponents(), pos, and tableData.

Referenced by SampleSecondaries().

◆ S_1s()

G4double G4DNARuddIonisationModel::S_1s ( G4double  t,
G4double  energyTransferred,
G4double  slaterEffectiveChg,
G4double  shellNumber 
)
private

Definition at line 924 of file G4DNARuddIonisationModel.cc.

928{
929 // 1 - e^(-2r) * ( 1 + 2 r + 2 r^2)
930 // Dingfelder, in Chattanooga 2005 proceedings, formula (7)
931
932 G4double r = R(t, energyTransferred, slaterEffectiveChg, shellNumber);
933 G4double value = 1. - G4Exp(-2 * r) * ((2. * r + 2.) * r + 1.);
934
935 return value;
936}
G4double R(G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)

References G4Exp(), and R().

Referenced by DifferentialCrossSection().

◆ S_2p()

G4double G4DNARuddIonisationModel::S_2p ( G4double  t,
G4double  energyTransferred,
G4double  slaterEffectiveChg,
G4double  shellNumber 
)
private

Definition at line 958 of file G4DNARuddIonisationModel.cc.

962{
963 // 1 - e^(-2 r) * ( 1 + 2 r + 2 r^2 + 4/3 r^3 + 2/3 r^4)
964 // Dingfelder, in Chattanooga 2005 proceedings, formula (9)
965
966 G4double r = R(t, energyTransferred, slaterEffectiveChg, shellNumber);
967 G4double value = 1.
968 - G4Exp(-2 * r)
969 * ((((2. / 3. * r + 4. / 3.) * r + 2.) * r + 2.) * r + 1.);
970
971 return value;
972}

References G4Exp(), and R().

Referenced by DifferentialCrossSection().

◆ S_2s()

G4double G4DNARuddIonisationModel::S_2s ( G4double  t,
G4double  energyTransferred,
G4double  slaterEffectiveChg,
G4double  shellNumber 
)
private

Definition at line 940 of file G4DNARuddIonisationModel.cc.

944{
945 // 1 - e^(-2 r) * ( 1 + 2 r + 2 r^2 + 2 r^4)
946 // Dingfelder, in Chattanooga 2005 proceedings, formula (8)
947
948 G4double r = R(t, energyTransferred, slaterEffectiveChg, shellNumber);
949 G4double value = 1.
950 - G4Exp(-2 * r) * (((2. * r * r + 2.) * r + 2.) * r + 1.);
951
952 return value;
953
954}

References G4Exp(), and R().

Referenced by DifferentialCrossSection().

◆ SampleSecondaries()

void G4DNARuddIonisationModel::SampleSecondaries ( std::vector< G4DynamicParticle * > *  fvect,
const G4MaterialCutsCouple couple,
const G4DynamicParticle particle,
G4double  tmin,
G4double  maxEnergy 
)
virtual

Implements G4VEmModel.

Definition at line 404 of file G4DNARuddIonisationModel.cc.

409{
410 if (verboseLevel > 3)
411 {
412 G4cout << "Calling SampleSecondaries() of G4DNARuddIonisationModel"
413 << G4endl;
414 }
415
416 G4double lowLim = 0;
417 G4double highLim = 0;
418
419 G4DNAGenericIonsManager *instance;
421
422 if ( particle->GetDefinition() == G4Proton::ProtonDefinition()
423 || particle->GetDefinition() == instance->GetIon("hydrogen")
424 )
425
426 lowLim = killBelowEnergyForZ1;
427
428 if ( particle->GetDefinition() == instance->GetIon("alpha++")
429 || particle->GetDefinition() == instance->GetIon("alpha+")
430 || particle->GetDefinition() == instance->GetIon("helium")
431 )
432
433 lowLim = killBelowEnergyForZ2;
434
435 G4double k = particle->GetKineticEnergy();
436
437 const G4String& particleName = particle->GetDefinition()->GetParticleName();
438
439 // SI - the following is useless since lowLim is already defined
440 /*
441 std::map< G4String,G4double,std::less<G4String> >::iterator pos1;
442 pos1 = lowEnergyLimit.find(particleName);
443
444 if (pos1 != lowEnergyLimit.end())
445 {
446 lowLim = pos1->second;
447 }
448 */
449
450 std::map< G4String,G4double,std::less<G4String> >::iterator pos2;
451 pos2 = highEnergyLimit.find(particleName);
452
453 if (pos2 != highEnergyLimit.end())
454 {
455 highLim = pos2->second;
456 }
457
458 if (k >= lowLim && k <= highLim)
459 {
460 G4ParticleDefinition* definition = particle->GetDefinition();
461 G4ParticleMomentum primaryDirection = particle->GetMomentumDirection();
462 /*
463 G4double particleMass = definition->GetPDGMass();
464 G4double totalEnergy = k + particleMass;
465 G4double pSquare = k*(totalEnergy+particleMass);
466 G4double totalMomentum = std::sqrt(pSquare);
467 */
468
469 G4int ionizationShell = RandomSelect(k,particleName);
470
473
474 //SI: additional protection if tcs interpolation method is modified
475 if (k<bindingEnergy) return;
476 //
477
478 // SI - For atom. deexc. tagging - 23/05/2017
479 G4int Z = 8;
480 //
481
482 G4double secondaryKinetic = RandomizeEjectedElectronEnergy(definition,k,ionizationShell);
483
484 G4ThreeVector deltaDirection =
485 GetAngularDistribution()->SampleDirectionForShell(particle, secondaryKinetic,
486 Z, ionizationShell,
487 couple->GetMaterial());
488
489 G4DynamicParticle* dp = new G4DynamicParticle (G4Electron::Electron(),deltaDirection,secondaryKinetic);
490 fvect->push_back(dp);
491
492 // Ignored for ions on electrons
493 /*
494 G4double deltaTotalMomentum = std::sqrt(secondaryKinetic*(secondaryKinetic + 2.*electron_mass_c2 ));
495
496 G4double finalPx = totalMomentum*primaryDirection.x() - deltaTotalMomentum*deltaDirection.x();
497 G4double finalPy = totalMomentum*primaryDirection.y() - deltaTotalMomentum*deltaDirection.y();
498 G4double finalPz = totalMomentum*primaryDirection.z() - deltaTotalMomentum*deltaDirection.z();
499 G4double finalMomentum = std::sqrt(finalPx*finalPx+finalPy*finalPy+finalPz*finalPz);
500 finalPx /= finalMomentum;
501 finalPy /= finalMomentum;
502 finalPz /= finalMomentum;
503
504 G4ThreeVector direction;
505 direction.set(finalPx,finalPy,finalPz);
506
507 fParticleChangeForGamma->ProposeMomentumDirection(direction.unit()) ;
508 */
509
511
512 // sample deexcitation
513 // here we assume that H_{2}O electronic levels are the same of Oxigen.
514 // this can be considered true with a rough 10% error in energy on K-shell,
515
516 size_t secNumberInit = 0;// need to know at a certain point the energy of secondaries
517 size_t secNumberFinal = 0;// So I'll make the diference and then sum the energies
518
519 G4double scatteredEnergy = k-bindingEnergy-secondaryKinetic;
520
521 // SI: only atomic deexcitation from K shell is considered
522 if(fAtomDeexcitation && ionizationShell == 4)
523 {
524 const G4AtomicShell* shell
526 secNumberInit = fvect->size();
527 fAtomDeexcitation->GenerateParticles(fvect, shell, Z, 0, 0);
528 secNumberFinal = fvect->size();
529
530 if(secNumberFinal > secNumberInit)
531 {
532 for (size_t i=secNumberInit; i<secNumberFinal; ++i)
533 {
534 //Check if there is enough residual energy
535 if (bindingEnergy >= ((*fvect)[i])->GetKineticEnergy())
536 {
537 //Ok, this is a valid secondary: keep it
538 bindingEnergy -= ((*fvect)[i])->GetKineticEnergy();
539 }
540 else
541 {
542 //Invalid secondary: not enough energy to create it!
543 //Keep its energy in the local deposit
544 delete (*fvect)[i];
545 (*fvect)[i]=0;
546 }
547 }
548 }
549
550 }
551
552 //This should never happen
553 if(bindingEnergy < 0.0)
554 G4Exception("G4DNAEmfietzoglouIonisatioModel1::SampleSecondaries()",
555 "em2050",FatalException,"Negative local energy deposit");
556
557 //bindingEnergy has been decreased
558 //by the amount of energy taken away by deexc. products
559 if (!statCode)
560 {
563 }
564 else
565 {
568 }
569
570 // debug
571 // k-scatteredEnergy-secondaryKinetic-deexSecEnergy = k-(k-bindingEnergy-secondaryKinetic)-secondaryKinetic-deexSecEnergy =
572 // = k-k+bindingEnergy+secondaryKinetic-secondaryKinetic-deexSecEnergy=
573 // = bindingEnergy-deexSecEnergy
574 // SO deexSecEnergy=0 => LocalEnergyDeposit = bindingEnergy
575
576 // TEST //////////////////////////
577 // if (secondaryKinetic<0) abort();
578 // if (scatteredEnergy<0) abort();
579 // if (k-scatteredEnergy-secondaryKinetic-deexSecEnergy<0) abort();
580 // if (k-scatteredEnergy<0) abort();
582
583 const G4Track * theIncomingTrack = fParticleChangeForGamma->GetCurrentTrack();
585 ionizationShell,
586 theIncomingTrack);
587 }
588
589 // SI - not useful since low energy of model is 0 eV
590
591 if (k < lowLim)
592 {
596 }
597
598}
G4AtomicShellEnumerator
@ eIonizedMolecule
@ fStopAndKill
static G4DNAChemistryManager * Instance()
void CreateWaterMolecule(ElectronicModification, G4int, const G4Track *)
G4double RandomizeEjectedElectronEnergy(G4ParticleDefinition *particleDefinition, G4double incomingParticleEnergy, G4int shell)
G4int RandomSelect(G4double energy, const G4String &particle)
const G4ThreeVector & GetMomentumDirection() const
static G4Electron * Electron()
Definition: G4Electron.cc:93
const G4Material * GetMaterial() const
const G4Track * GetCurrentTrack() const
void SetProposedKineticEnergy(G4double proposedKinEnergy)
void ProposeMomentumDirection(G4double Px, G4double Py, G4double Pz)
virtual const G4AtomicShell * GetAtomicShell(G4int Z, G4AtomicShellEnumerator shell)=0
void GenerateParticles(std::vector< G4DynamicParticle * > *secVect, const G4AtomicShell *, G4int Z, G4int coupleIndex)
virtual G4ThreeVector & SampleDirectionForShell(const G4DynamicParticle *dp, G4double finalTotalEnergy, G4int Z, G4int shellID, const G4Material *)
G4VEmAngularDistribution * GetAngularDistribution()
Definition: G4VEmModel.hh:621
void ProposeTrackStatus(G4TrackStatus status)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
G4double bindingEnergy(G4int A, G4int Z)

References G4InuclSpecialFunctions::bindingEnergy(), G4DNAChemistryManager::CreateWaterMolecule(), eIonizedMolecule, G4Electron::Electron(), FatalException, fAtomDeexcitation, fParticleChangeForGamma, fStopAndKill, G4cout, G4endl, G4Exception(), G4VAtomDeexcitation::GenerateParticles(), G4VEmModel::GetAngularDistribution(), G4VAtomDeexcitation::GetAtomicShell(), G4ParticleChangeForGamma::GetCurrentTrack(), G4DynamicParticle::GetDefinition(), G4DNAGenericIonsManager::GetIon(), G4DynamicParticle::GetKineticEnergy(), G4MaterialCutsCouple::GetMaterial(), G4DynamicParticle::GetMomentumDirection(), G4ParticleDefinition::GetParticleName(), highEnergyLimit, G4DNAChemistryManager::Instance(), G4DNAGenericIonsManager::Instance(), G4DNAWaterIonisationStructure::IonisationEnergy(), killBelowEnergyForZ1, killBelowEnergyForZ2, G4VParticleChange::ProposeLocalEnergyDeposit(), G4ParticleChangeForGamma::ProposeMomentumDirection(), G4VParticleChange::ProposeTrackStatus(), G4Proton::ProtonDefinition(), RandomizeEjectedElectronEnergy(), RandomSelect(), G4VEmAngularDistribution::SampleDirectionForShell(), G4ParticleChangeForGamma::SetProposedKineticEnergy(), statCode, verboseLevel, waterStructure, and Z.

◆ SecondaryThreshold()

G4double G4VEmModel::SecondaryThreshold ( ) const
inlineinherited

◆ SelectIsotopeNumber()

G4int G4VEmModel::SelectIsotopeNumber ( const G4Element elm)
inherited

Definition at line 319 of file G4VEmModel.cc.

320{
322 const size_t ni = elm->GetNumberOfIsotopes();
323 fCurrentIsotope = elm->GetIsotope(0);
324 size_t idx = 0;
325 if(ni > 1) {
326 const G4double* ab = elm->GetRelativeAbundanceVector();
328 for(; idx<ni; ++idx) {
329 x -= ab[idx];
330 if (x <= 0.0) {
331 fCurrentIsotope = elm->GetIsotope(idx);
332 break;
333 }
334 }
335 }
336 return fCurrentIsotope->GetN();
337}
static const G4double ab
G4double * GetRelativeAbundanceVector() const
Definition: G4Element.hh:167
const G4Isotope * GetIsotope(G4int iso) const
Definition: G4Element.hh:170
size_t GetNumberOfIsotopes() const
Definition: G4Element.hh:159
G4int GetN() const
Definition: G4Isotope.hh:93

References ab, G4VEmModel::fCurrentIsotope, G4UniformRand, G4Element::GetIsotope(), G4Isotope::GetN(), G4Element::GetNumberOfIsotopes(), G4Element::GetRelativeAbundanceVector(), and G4VEmModel::SetCurrentElement().

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

◆ SelectRandomAtom() [1/2]

const G4Element * G4VEmModel::SelectRandomAtom ( const G4Material mat,
const G4ParticleDefinition pd,
G4double  kineticEnergy,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)
inherited

Definition at line 275 of file G4VEmModel.cc.

280{
281 size_t n = mat->GetNumberOfElements();
282 fCurrentElement = mat->GetElement(0);
283 if (n > 1) {
284 const G4double x = G4UniformRand()*
285 G4VEmModel::CrossSectionPerVolume(mat,pd,kinEnergy,tcut,tmax);
286 for(size_t i=0; i<n; ++i) {
287 if (x <= xsec[i]) {
288 fCurrentElement = mat->GetElement(i);
289 break;
290 }
291 }
292 }
293 return fCurrentElement;
294}
const G4Element * GetElement(G4int iel) const
Definition: G4Material.hh:198
size_t GetNumberOfElements() const
Definition: G4Material.hh:182
std::vector< G4double > xsec
Definition: G4VEmModel.hh:466

References G4VEmModel::CrossSectionPerVolume(), G4VEmModel::fCurrentElement, G4UniformRand, G4Material::GetElement(), G4Material::GetNumberOfElements(), CLHEP::detail::n, and G4VEmModel::xsec.

◆ SelectRandomAtom() [2/2]

const G4Element * G4VEmModel::SelectRandomAtom ( const G4MaterialCutsCouple couple,
const G4ParticleDefinition part,
G4double  kineticEnergy,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)
inlineinherited

Definition at line 580 of file G4VEmModel.hh.

585{
586 SetCurrentCouple(couple);
588 ((*elmSelectors)[couple->GetIndex()])->SelectRandomAtom(kinEnergy) :
589 SelectRandomAtom(pBaseMaterial,part,kinEnergy,cutEnergy,maxEnergy);
590 fCurrentIsotope = nullptr;
591 return fCurrentElement;
592}
const G4Element * SelectRandomAtom(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
Definition: G4VEmModel.hh:580

References G4VEmModel::elmSelectors, G4VEmModel::fCurrentElement, G4VEmModel::fCurrentIsotope, G4MaterialCutsCouple::GetIndex(), G4VEmModel::nSelectors, G4VEmModel::pBaseMaterial, G4VEmModel::SelectRandomAtom(), and G4VEmModel::SetCurrentCouple().

Referenced by G4AdjointBremsstrahlungModel::RapidSampleSecondaries(), G4LivermoreBremsstrahlungModel::SampleSecondaries(), G4JAEAElasticScatteringModel::SampleSecondaries(), G4JAEAPolarizedElasticScatteringModel::SampleSecondaries(), G4LivermoreComptonModel::SampleSecondaries(), G4LivermoreNuclearGammaConversionModel::SampleSecondaries(), G4LivermorePhotoElectricModel::SampleSecondaries(), G4LivermorePolarizedComptonModel::SampleSecondaries(), G4LivermorePolarizedGammaConversionModel::SampleSecondaries(), G4LivermorePolarizedRayleighModel::SampleSecondaries(), G4LivermoreRayleighModel::SampleSecondaries(), G4LowEPComptonModel::SampleSecondaries(), G4LowEPPolarizedComptonModel::SampleSecondaries(), G4PenelopePhotoElectricModel::SampleSecondaries(), G4MuBremsstrahlungModel::SampleSecondaries(), G4MuPairProductionModel::SampleSecondaries(), G4hCoulombScatteringModel::SampleSecondaries(), G4KleinNishinaModel::SampleSecondaries(), G4PEEffectFluoModel::SampleSecondaries(), G4VEmModel::SelectRandomAtom(), and G4VEmModel::SelectTargetAtom().

◆ SelectRandomAtomNumber()

G4int G4VEmModel::SelectRandomAtomNumber ( const G4Material mat)
inherited

Definition at line 297 of file G4VEmModel.cc.

298{
299 // this algorith assumes that cross section is proportional to
300 // number electrons multiplied by number of atoms
301 const size_t nn = mat->GetNumberOfElements();
302 fCurrentElement = mat->GetElement(0);
303 if(1 < nn) {
304 const G4double* at = mat->GetVecNbOfAtomsPerVolume();
306 for(size_t i=0; i<nn; ++i) {
307 tot -= at[i];
308 if(tot <= 0.0) {
309 fCurrentElement = mat->GetElement(i);
310 break;
311 }
312 }
313 }
314 return fCurrentElement->GetZasInt();
315}
G4int GetZasInt() const
Definition: G4Element.hh:132
G4double GetTotNbOfAtomsPerVolume() const
Definition: G4Material.hh:205
const G4double * GetVecNbOfAtomsPerVolume() const
Definition: G4Material.hh:202

References G4VEmModel::fCurrentElement, G4UniformRand, G4Material::GetElement(), G4Material::GetNumberOfElements(), G4Material::GetTotNbOfAtomsPerVolume(), G4Material::GetVecNbOfAtomsPerVolume(), G4Element::GetZasInt(), and G4InuclParticleNames::nn.

Referenced by G4AtimaEnergyLossModel::SampleSecondaries(), G4BetheBlochModel::SampleSecondaries(), G4BraggIonModel::SampleSecondaries(), G4BraggModel::SampleSecondaries(), G4ICRU73QOModel::SampleSecondaries(), G4LindhardSorensenIonModel::SampleSecondaries(), G4MollerBhabhaModel::SampleSecondaries(), and G4IonParametrisedLossModel::SampleSecondaries().

◆ SelectStationary()

void G4DNARuddIonisationModel::SelectStationary ( G4bool  input)
inline

Definition at line 162 of file G4DNARuddIonisationModel.hh.

163{
164 statCode = input;
165}

References statCode.

Referenced by G4EmDNAPhysics_stationary::ConstructProcess().

◆ SelectTargetAtom()

const G4Element * G4VEmModel::SelectTargetAtom ( const G4MaterialCutsCouple couple,
const G4ParticleDefinition part,
G4double  kineticEnergy,
G4double  logKineticEnergy,
G4double  cutEnergy = 0.0,
G4double  maxEnergy = DBL_MAX 
)
inlineinherited

◆ SetActivationHighEnergyLimit()

void G4VEmModel::SetActivationHighEnergyLimit ( G4double  val)
inlineinherited

◆ SetActivationLowEnergyLimit()

void G4VEmModel::SetActivationLowEnergyLimit ( G4double  val)
inlineinherited

◆ SetAngularDistribution()

void G4VEmModel::SetAngularDistribution ( G4VEmAngularDistribution p)
inlineinherited

Definition at line 628 of file G4VEmModel.hh.

629{
630 if(p != anglModel) {
631 delete anglModel;
632 anglModel = p;
633 }
634}

References G4VEmModel::anglModel.

Referenced by G4EmLivermorePhysics::ConstructProcess(), G4EmLowEPPhysics::ConstructProcess(), G4EmStandardPhysics::ConstructProcess(), G4EmStandardPhysics_option3::ConstructProcess(), G4EmStandardPhysics_option4::ConstructProcess(), G4EmStandardPhysicsSS::ConstructProcess(), G4BetheHeitlerModel::G4BetheHeitlerModel(), G4DNABornIonisationModel1::G4DNABornIonisationModel1(), G4DNABornIonisationModel2::G4DNABornIonisationModel2(), G4DNAEmfietzoglouIonisationModel::G4DNAEmfietzoglouIonisationModel(), G4DNARuddIonisationExtendedModel::G4DNARuddIonisationExtendedModel(), G4DNARuddIonisationModel(), G4eBremParametrizedModel::G4eBremParametrizedModel(), G4eBremsstrahlungRelModel::G4eBremsstrahlungRelModel(), G4IonParametrisedLossModel::G4IonParametrisedLossModel(), G4LivermoreBremsstrahlungModel::G4LivermoreBremsstrahlungModel(), G4LivermoreIonisationModel::G4LivermoreIonisationModel(), G4LivermorePhotoElectricModel::G4LivermorePhotoElectricModel(), G4LivermoreRayleighModel::G4LivermoreRayleighModel(), G4MicroElecInelasticModel::G4MicroElecInelasticModel(), G4MicroElecInelasticModel_new::G4MicroElecInelasticModel_new(), G4MuBremsstrahlungModel::G4MuBremsstrahlungModel(), G4MuPairProductionModel::G4MuPairProductionModel(), G4PAIModel::G4PAIModel(), G4PAIPhotModel::G4PAIPhotModel(), G4PairProductionRelModel::G4PairProductionRelModel(), G4PEEffectFluoModel::G4PEEffectFluoModel(), G4SeltzerBergerModel::G4SeltzerBergerModel(), G4AtimaEnergyLossModel::Initialise(), G4BetheBlochModel::Initialise(), G4BraggIonModel::Initialise(), G4BraggModel::Initialise(), G4ICRU73QOModel::Initialise(), G4LindhardSorensenIonModel::Initialise(), and G4MollerBhabhaModel::Initialise().

◆ SetAngularGeneratorFlag()

void G4VEmModel::SetAngularGeneratorFlag ( G4bool  val)
inlineinherited

Definition at line 725 of file G4VEmModel.hh.

726{
728}
G4bool useAngularGenerator
Definition: G4VEmModel.hh:461

References G4VEmModel::useAngularGenerator.

Referenced by G4VEnergyLossProcess::PreparePhysicsTable().

◆ SetCrossSectionTable()

void G4VEmModel::SetCrossSectionTable ( G4PhysicsTable p,
G4bool  isLocal 
)
inherited

Definition at line 455 of file G4VEmModel.cc.

456{
457 if(p != xSectionTable) {
458 if(xSectionTable != nullptr && localTable) {
460 delete xSectionTable;
461 }
462 xSectionTable = p;
463 }
464 localTable = isLocal;
465}
void clearAndDestroy()
G4bool localTable
Definition: G4VEmModel.hh:459

References G4PhysicsTable::clearAndDestroy(), G4VEmModel::localTable, and G4VEmModel::xSectionTable.

Referenced by G4VMultipleScattering::BuildPhysicsTable().

◆ SetCurrentCouple()

void G4VEmModel::SetCurrentCouple ( const G4MaterialCutsCouple ptr)
inlineinherited

Definition at line 472 of file G4VEmModel.hh.

473{
474 if(fCurrentCouple != ptr) {
475 fCurrentCouple = ptr;
477 pBaseMaterial = ptr->GetMaterial();
478 pFactor = 1.0;
479 if(useBaseMaterials) {
480 basedCoupleIndex = (*theDensityIdx)[currentCoupleIndex];
481 if(nullptr != pBaseMaterial->GetBaseMaterial())
483 pFactor = (*theDensityFactor)[currentCoupleIndex];
484 }
485 }
486}
const G4Material * GetBaseMaterial() const
Definition: G4Material.hh:229
G4bool useBaseMaterials
Definition: G4VEmModel.hh:462
size_t currentCoupleIndex
Definition: G4VEmModel.hh:448
size_t basedCoupleIndex
Definition: G4VEmModel.hh:449

References G4VEmModel::basedCoupleIndex, G4VEmModel::currentCoupleIndex, G4VEmModel::fCurrentCouple, G4Material::GetBaseMaterial(), G4MaterialCutsCouple::GetIndex(), G4MaterialCutsCouple::GetMaterial(), G4VEmModel::pBaseMaterial, G4VEmModel::pFactor, and G4VEmModel::useBaseMaterials.

Referenced by G4VMultipleScattering::AlongStepGetPhysicalInteractionLength(), G4EmMultiModel::ComputeCrossSectionPerAtom(), G4VEmModel::ComputeDEDX(), G4TablesForExtrapolator::ComputeTrasportXS(), G4UrbanAdjointMscModel::ComputeTruePathLengthLimit(), G4GoudsmitSaundersonMscModel::ComputeTruePathLengthLimit(), G4UrbanMscModel::ComputeTruePathLengthLimit(), G4VEmModel::CrossSection(), G4AdjointPhotoElectricModel::DefineCurrentMaterialAndElectronEnergy(), G4WentzelVIModel::DefineMaterial(), G4WentzelVIRelModel::DefineMaterial(), G4EmCalculator::GetCrossSectionPerVolume(), G4LivermoreGammaConversion5DModel::Initialise(), G4VEmModel::InitialiseElementSelectors(), G4PEEffectFluoModel::SampleSecondaries(), G4EmMultiModel::SampleSecondaries(), G4VEnergyLossProcess::SelectModel(), G4VEmProcess::SelectModel(), G4VEmModel::SelectRandomAtom(), G4VEmModel::SelectTargetAtom(), and G4VEmModel::Value().

◆ SetCurrentElement()

void G4VEmModel::SetCurrentElement ( const G4Element elm)
inlineprotectedinherited

◆ SetDeexcitationFlag()

void G4VEmModel::SetDeexcitationFlag ( G4bool  val)
inlineinherited

Definition at line 823 of file G4VEmModel.hh.

824{
825 flagDeexcitation = val;
826}

References G4VEmModel::flagDeexcitation.

Referenced by G4DNABornIonisationModel1::G4DNABornIonisationModel1(), G4DNABornIonisationModel2::G4DNABornIonisationModel2(), G4DNACPA100IonisationModel::G4DNACPA100IonisationModel(), G4DNAEmfietzoglouIonisationModel::G4DNAEmfietzoglouIonisationModel(), G4DNARelativisticIonisationModel::G4DNARelativisticIonisationModel(), G4DNARuddIonisationExtendedModel::G4DNARuddIonisationExtendedModel(), G4DNARuddIonisationModel(), G4KleinNishinaModel::G4KleinNishinaModel(), G4LEPTSIonisationModel::G4LEPTSIonisationModel(), G4LivermoreComptonModel::G4LivermoreComptonModel(), G4LivermorePhotoElectricModel::G4LivermorePhotoElectricModel(), G4LivermorePolarizedComptonModel::G4LivermorePolarizedComptonModel(), G4LowEPComptonModel::G4LowEPComptonModel(), G4LowEPPolarizedComptonModel::G4LowEPPolarizedComptonModel(), G4MicroElecInelasticModel::G4MicroElecInelasticModel(), G4MicroElecInelasticModel_new::G4MicroElecInelasticModel_new(), G4PEEffectFluoModel::G4PEEffectFluoModel(), G4PenelopeBremsstrahlungModel::G4PenelopeBremsstrahlungModel(), G4PenelopeComptonModel::G4PenelopeComptonModel(), G4PenelopeIonisationModel::G4PenelopeIonisationModel(), G4PenelopePhotoElectricModel::G4PenelopePhotoElectricModel(), G4AtimaEnergyLossModel::Initialise(), G4BetheBlochModel::Initialise(), G4BraggIonModel::Initialise(), G4BraggModel::Initialise(), G4ICRU73QOModel::Initialise(), and G4LindhardSorensenIonModel::Initialise().

◆ SetElementSelectors()

void G4VEmModel::SetElementSelectors ( std::vector< G4EmElementSelector * > *  p)
inlineinherited

Definition at line 852 of file G4VEmModel.hh.

853{
854 if(p != elmSelectors) {
855 elmSelectors = p;
856 nSelectors = (nullptr != elmSelectors) ? G4int(elmSelectors->size()) : 0;
857 localElmSelectors = false;
858 }
859}
G4bool localElmSelectors
Definition: G4VEmModel.hh:460

References G4VEmModel::elmSelectors, G4VEmModel::localElmSelectors, and G4VEmModel::nSelectors.

Referenced by G4eDPWACoulombScatteringModel::InitialiseLocal(), G4eSingleCoulombScatteringModel::InitialiseLocal(), G4PAIModel::InitialiseLocal(), G4PAIPhotModel::InitialiseLocal(), G4JAEAElasticScatteringModel::InitialiseLocal(), G4JAEAPolarizedElasticScatteringModel::InitialiseLocal(), G4LivermoreComptonModel::InitialiseLocal(), G4LivermoreNuclearGammaConversionModel::InitialiseLocal(), G4LivermorePolarizedComptonModel::InitialiseLocal(), G4LivermorePolarizedGammaConversionModel::InitialiseLocal(), G4LivermorePolarizedRayleighModel::InitialiseLocal(), G4LivermoreRayleighModel::InitialiseLocal(), G4LowEPComptonModel::InitialiseLocal(), G4LowEPPolarizedComptonModel::InitialiseLocal(), G4PenelopePhotoElectricModel::InitialiseLocal(), G4MuBremsstrahlungModel::InitialiseLocal(), G4MuPairProductionModel::InitialiseLocal(), G4BetheHeitlerModel::InitialiseLocal(), G4eBremParametrizedModel::InitialiseLocal(), G4eBremsstrahlungRelModel::InitialiseLocal(), G4eCoulombScatteringModel::InitialiseLocal(), G4hCoulombScatteringModel::InitialiseLocal(), G4KleinNishinaCompton::InitialiseLocal(), G4KleinNishinaModel::InitialiseLocal(), and G4PairProductionRelModel::InitialiseLocal().

◆ SetFluctuationFlag()

void G4VEmModel::SetFluctuationFlag ( G4bool  val)
inlineinherited

Definition at line 732 of file G4VEmModel.hh.

733{
734 lossFlucFlag = val;
735}
G4bool lossFlucFlag
Definition: G4VEmModel.hh:450

References G4VEmModel::lossFlucFlag.

Referenced by G4EmCalculator::ComputeNuclearDEDX().

◆ SetForceBuildTable()

void G4VEmModel::SetForceBuildTable ( G4bool  val)
inlineinherited

Definition at line 830 of file G4VEmModel.hh.

831{
833}

References G4VEmModel::flagForceBuildTable.

◆ SetHighEnergyLimit()

void G4VEmModel::SetHighEnergyLimit ( G4double  val)
inlineinherited

Definition at line 767 of file G4VEmModel.hh.

768{
769 highLimit = val;
770}

References G4VEmModel::highLimit.

Referenced by G4EmModelActivator::ActivateEmOptions(), G4EmModelActivator::ActivatePAI(), LBE::ConstructEM(), G4EmDNAPhysics_option2::ConstructProcess(), G4EmDNAPhysics_option5::ConstructProcess(), G4EmDNAPhysics_option7::ConstructProcess(), G4EmDNAPhysics_stationary::ConstructProcess(), G4EmLivermorePhysics::ConstructProcess(), G4EmLowEPPhysics::ConstructProcess(), G4EmPenelopePhysics::ConstructProcess(), G4EmStandardPhysics::ConstructProcess(), G4EmStandardPhysics_option1::ConstructProcess(), G4EmStandardPhysics_option2::ConstructProcess(), G4EmStandardPhysics_option4::ConstructProcess(), G4EmStandardPhysicsGS::ConstructProcess(), G4EmStandardPhysicsWVI::ConstructProcess(), G4BraggIonModel::G4BraggIonModel(), G4BraggModel::G4BraggModel(), G4DNAChampionElasticModel::G4DNAChampionElasticModel(), G4DNACPA100ElasticModel::G4DNACPA100ElasticModel(), G4DNACPA100ExcitationModel::G4DNACPA100ExcitationModel(), G4DNACPA100IonisationModel::G4DNACPA100IonisationModel(), G4DNAELSEPAElasticModel::G4DNAELSEPAElasticModel(), G4DNAEmfietzoglouExcitationModel::G4DNAEmfietzoglouExcitationModel(), G4DNAEmfietzoglouIonisationModel::G4DNAEmfietzoglouIonisationModel(), G4DNAIonElasticModel::G4DNAIonElasticModel(), G4DNAMeltonAttachmentModel::G4DNAMeltonAttachmentModel(), G4DNASancheExcitationModel::G4DNASancheExcitationModel(), G4DNAScreenedRutherfordElasticModel::G4DNAScreenedRutherfordElasticModel(), G4DNATransformElectronModel::G4DNATransformElectronModel(), G4DNAUeharaScreenedRutherfordElasticModel::G4DNAUeharaScreenedRutherfordElasticModel(), G4eDPWACoulombScatteringModel::G4eDPWACoulombScatteringModel(), G4ICRU73QOModel::G4ICRU73QOModel(), G4MicroElecElasticModel::G4MicroElecElasticModel(), G4MicroElecElasticModel_new::G4MicroElecElasticModel_new(), G4PenelopeAnnihilationModel::G4PenelopeAnnihilationModel(), G4PenelopeBremsstrahlungModel::G4PenelopeBremsstrahlungModel(), G4PenelopeComptonModel::G4PenelopeComptonModel(), G4PenelopeGammaConversionModel::G4PenelopeGammaConversionModel(), G4PenelopeIonisationModel::G4PenelopeIonisationModel(), G4PenelopePhotoElectricModel::G4PenelopePhotoElectricModel(), G4PenelopeRayleighModel::G4PenelopeRayleighModel(), G4PenelopeRayleighModelMI::G4PenelopeRayleighModelMI(), G4TDNAOneStepThermalizationModel< MODEL >::G4TDNAOneStepThermalizationModel(), G4XrayRayleighModel::G4XrayRayleighModel(), G4VLEPTSModel::Init(), G4DNAChampionElasticModel::Initialise(), G4DNACPA100ElasticModel::Initialise(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), Initialise(), G4DNASancheExcitationModel::Initialise(), G4MicroElecElasticModel::Initialise(), G4MicroElecInelasticModel::Initialise(), G4MicroElecInelasticModel_new::Initialise(), G4DNABornExcitationModel1::Initialise(), G4DNABornExcitationModel2::Initialise(), G4DNABornIonisationModel1::Initialise(), G4DNABornIonisationModel2::Initialise(), G4DNAELSEPAElasticModel::Initialise(), G4DNAModelInterface::Initialise(), G4DNAIonElasticModel::Initialise(), G4hhIonisation::InitialiseEnergyLossProcess(), G4mplIonisation::InitialiseEnergyLossProcess(), G4ePairProduction::InitialiseEnergyLossProcess(), G4MuBremsstrahlung::InitialiseEnergyLossProcess(), G4MuIonisation::InitialiseEnergyLossProcess(), G4MuPairProduction::InitialiseEnergyLossProcess(), G4PolarizedBremsstrahlung::InitialiseEnergyLossProcess(), G4PolarizedIonisation::InitialiseEnergyLossProcess(), G4eBremsstrahlung::InitialiseEnergyLossProcess(), G4eIonisation::InitialiseEnergyLossProcess(), G4hIonisation::InitialiseEnergyLossProcess(), G4ionIonisation::InitialiseEnergyLossProcess(), G4DNAAttachment::InitialiseProcess(), G4DNAChargeDecrease::InitialiseProcess(), G4DNAChargeIncrease::InitialiseProcess(), G4DNADissociation::InitialiseProcess(), G4DNAElastic::InitialiseProcess(), G4DNAExcitation::InitialiseProcess(), G4DNAIonisation::InitialiseProcess(), G4DNAPlasmonExcitation::InitialiseProcess(), G4DNAPositronium::InitialiseProcess(), G4DNARotExcitation::InitialiseProcess(), G4DNAVibExcitation::InitialiseProcess(), G4PolarizedCompton::InitialiseProcess(), G4PolarizedGammaConversion::InitialiseProcess(), G4PolarizedPhotoElectric::InitialiseProcess(), G4ComptonScattering::InitialiseProcess(), G4CoulombScattering::InitialiseProcess(), G4eplusAnnihilation::InitialiseProcess(), G4GammaConversion::InitialiseProcess(), G4PhotoElectricEffect::InitialiseProcess(), G4VEmProcess::PreparePhysicsTable(), G4VEnergyLossProcess::PreparePhysicsTable(), G4VMultipleScattering::PreparePhysicsTable(), G4DNAUeharaScreenedRutherfordElasticModel::SelectHighEnergyLimit(), G4VEmAdjointModel::SetHighEnergyLimit(), G4DNAELSEPAElasticModel::SetMaximumEnergy(), G4mplIonisationModel::SetParticle(), G4mplIonisationWithDeltaModel::SetParticle(), and G4EmConfigurator::UpdateModelEnergyRange().

◆ SetLocked()

void G4VEmModel::SetLocked ( G4bool  val)
inlineinherited

◆ SetLowEnergyLimit()

void G4VEmModel::SetLowEnergyLimit ( G4double  val)
inlineinherited

Definition at line 774 of file G4VEmModel.hh.

775{
776 lowLimit = val;
777}

References G4VEmModel::lowLimit.

Referenced by G4EmModelActivator::ActivatePAI(), G4EmDNAPhysics_option2::ConstructProcess(), G4EmDNAPhysics_option5::ConstructProcess(), G4EmDNAPhysics_stationary::ConstructProcess(), G4EmLivermorePhysics::ConstructProcess(), G4EmLowEPPhysics::ConstructProcess(), G4EmPenelopePhysics::ConstructProcess(), G4EmStandardPhysics::ConstructProcess(), G4EmStandardPhysics_option1::ConstructProcess(), G4EmStandardPhysics_option2::ConstructProcess(), G4EmStandardPhysics_option3::ConstructProcess(), G4EmStandardPhysics_option4::ConstructProcess(), G4EmStandardPhysicsGS::ConstructProcess(), G4EmStandardPhysicsWVI::ConstructProcess(), G4DNASancheExcitationModel::ExtendLowEnergyLimit(), G4AtimaEnergyLossModel::G4AtimaEnergyLossModel(), G4BetheBlochModel::G4BetheBlochModel(), G4BetheHeitler5DModel::G4BetheHeitler5DModel(), G4DNAChampionElasticModel::G4DNAChampionElasticModel(), G4DNACPA100ElasticModel::G4DNACPA100ElasticModel(), G4DNACPA100ExcitationModel::G4DNACPA100ExcitationModel(), G4DNACPA100IonisationModel::G4DNACPA100IonisationModel(), G4DNAELSEPAElasticModel::G4DNAELSEPAElasticModel(), G4DNAEmfietzoglouExcitationModel::G4DNAEmfietzoglouExcitationModel(), G4DNAEmfietzoglouIonisationModel::G4DNAEmfietzoglouIonisationModel(), G4DNAIonElasticModel::G4DNAIonElasticModel(), G4DNAMeltonAttachmentModel::G4DNAMeltonAttachmentModel(), G4DNASancheExcitationModel::G4DNASancheExcitationModel(), G4DNAScreenedRutherfordElasticModel::G4DNAScreenedRutherfordElasticModel(), G4DNATransformElectronModel::G4DNATransformElectronModel(), G4DNAUeharaScreenedRutherfordElasticModel::G4DNAUeharaScreenedRutherfordElasticModel(), G4DummyModel::G4DummyModel(), G4eBremParametrizedModel::G4eBremParametrizedModel(), G4eBremsstrahlungRelModel::G4eBremsstrahlungRelModel(), G4eDPWACoulombScatteringModel::G4eDPWACoulombScatteringModel(), G4LivermoreBremsstrahlungModel::G4LivermoreBremsstrahlungModel(), G4MicroElecElasticModel::G4MicroElecElasticModel(), G4MicroElecElasticModel_new::G4MicroElecElasticModel_new(), G4SeltzerBergerModel::G4SeltzerBergerModel(), G4TDNAOneStepThermalizationModel< MODEL >::G4TDNAOneStepThermalizationModel(), G4VLEPTSModel::Init(), G4DNAChampionElasticModel::Initialise(), G4DNACPA100ElasticModel::Initialise(), G4DNADingfelderChargeDecreaseModel::Initialise(), G4DNADingfelderChargeIncreaseModel::Initialise(), G4DNAMeltonAttachmentModel::Initialise(), G4DNAMillerGreenExcitationModel::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), Initialise(), G4MicroElecElasticModel::Initialise(), G4MicroElecInelasticModel::Initialise(), G4MicroElecInelasticModel_new::Initialise(), G4BetheHeitler5DModel::Initialise(), G4DNABornExcitationModel1::Initialise(), G4DNABornExcitationModel2::Initialise(), G4DNABornIonisationModel1::Initialise(), G4DNABornIonisationModel2::Initialise(), G4DNAELSEPAElasticModel::Initialise(), G4DNAModelInterface::Initialise(), G4DNAIonElasticModel::Initialise(), G4hhIonisation::InitialiseEnergyLossProcess(), G4mplIonisation::InitialiseEnergyLossProcess(), G4ePairProduction::InitialiseEnergyLossProcess(), G4MuBremsstrahlung::InitialiseEnergyLossProcess(), G4MuIonisation::InitialiseEnergyLossProcess(), G4MuPairProduction::InitialiseEnergyLossProcess(), G4PolarizedBremsstrahlung::InitialiseEnergyLossProcess(), G4PolarizedIonisation::InitialiseEnergyLossProcess(), G4eBremsstrahlung::InitialiseEnergyLossProcess(), G4eIonisation::InitialiseEnergyLossProcess(), G4hIonisation::InitialiseEnergyLossProcess(), G4ionIonisation::InitialiseEnergyLossProcess(), G4DNAAttachment::InitialiseProcess(), G4DNAChargeDecrease::InitialiseProcess(), G4DNAChargeIncrease::InitialiseProcess(), G4DNADissociation::InitialiseProcess(), G4DNAElastic::InitialiseProcess(), G4DNAExcitation::InitialiseProcess(), G4DNAIonisation::InitialiseProcess(), G4DNAPlasmonExcitation::InitialiseProcess(), G4DNAPositronium::InitialiseProcess(), G4DNARotExcitation::InitialiseProcess(), G4DNAVibExcitation::InitialiseProcess(), G4PolarizedCompton::InitialiseProcess(), G4PolarizedGammaConversion::InitialiseProcess(), G4PolarizedPhotoElectric::InitialiseProcess(), G4ComptonScattering::InitialiseProcess(), G4CoulombScattering::InitialiseProcess(), G4eplusAnnihilation::InitialiseProcess(), G4GammaConversion::InitialiseProcess(), G4PhotoElectricEffect::InitialiseProcess(), G4VEmAdjointModel::SetLowEnergyLimit(), G4mplIonisationModel::SetParticle(), G4mplIonisationWithDeltaModel::SetParticle(), and G4EmConfigurator::UpdateModelEnergyRange().

◆ SetLPMFlag()

void G4VEmModel::SetLPMFlag ( G4bool  val)
inlineinherited

◆ SetMasterThread()

void G4VEmModel::SetMasterThread ( G4bool  val)
inlineinherited

◆ SetParticleChange()

void G4VEmModel::SetParticleChange ( G4VParticleChange p,
G4VEmFluctuationModel f = nullptr 
)
inherited

◆ SetPolarAngleLimit()

void G4VEmModel::SetPolarAngleLimit ( G4double  val)
inlineinherited

◆ SetSecondaryThreshold()

void G4VEmModel::SetSecondaryThreshold ( G4double  val)
inlineinherited

◆ SetTripletModel()

void G4VEmModel::SetTripletModel ( G4VEmModel p)
inlineinherited

Definition at line 645 of file G4VEmModel.hh.

646{
647 if(p != fTripletModel) {
648 delete fTripletModel;
649 fTripletModel = p;
650 }
651}

References G4VEmModel::fTripletModel.

Referenced by G4eplusTo2GammaOKVIModel::G4eplusTo2GammaOKVIModel().

◆ SetupForMaterial()

void G4VEmModel::SetupForMaterial ( const G4ParticleDefinition ,
const G4Material ,
G4double  kineticEnergy 
)
virtualinherited

◆ SetUseBaseMaterials()

void G4VEmModel::SetUseBaseMaterials ( G4bool  val)
inlineinherited

◆ StartTracking()

void G4VEmModel::StartTracking ( G4Track )
virtualinherited

◆ Sum()

G4double G4DNARuddIonisationModel::Sum ( G4double  energy,
const G4String particle 
)
private

Definition at line 1138 of file G4DNARuddIonisationModel.cc.

1140{
1141 return 0;
1142}

◆ UseAngularGeneratorFlag()

G4bool G4VEmModel::UseAngularGeneratorFlag ( ) const
inlineinherited

◆ UseBaseMaterials()

G4bool G4VEmModel::UseBaseMaterials ( ) const
inlineinherited

Definition at line 760 of file G4VEmModel.hh.

761{
762 return useBaseMaterials;
763}

References G4VEmModel::useBaseMaterials.

◆ Value()

G4double G4VEmModel::Value ( const G4MaterialCutsCouple couple,
const G4ParticleDefinition p,
G4double  kineticEnergy 
)
virtualinherited

Field Documentation

◆ anglModel

G4VEmAngularDistribution* G4VEmModel::anglModel = nullptr
privateinherited

◆ basedCoupleIndex

size_t G4VEmModel::basedCoupleIndex = 0
protectedinherited

◆ currentCoupleIndex

size_t G4VEmModel::currentCoupleIndex = 0
protectedinherited

Definition at line 448 of file G4VEmModel.hh.

Referenced by G4VEmModel::SetCurrentCouple().

◆ elmSelectors

std::vector<G4EmElementSelector*>* G4VEmModel::elmSelectors = nullptr
privateinherited

◆ eMaxActive

G4double G4VEmModel::eMaxActive = DBL_MAX
privateinherited

◆ eMinActive

G4double G4VEmModel::eMinActive = 0.0
privateinherited

◆ fAtomDeexcitation

G4VAtomDeexcitation* G4DNARuddIonisationModel::fAtomDeexcitation
private

◆ fCurrentCouple

const G4MaterialCutsCouple* G4VEmModel::fCurrentCouple = nullptr
privateinherited

Definition at line 416 of file G4VEmModel.hh.

Referenced by G4VEmModel::CurrentCouple(), and G4VEmModel::SetCurrentCouple().

◆ fCurrentElement

const G4Element* G4VEmModel::fCurrentElement = nullptr
privateinherited

◆ fCurrentIsotope

const G4Isotope* G4VEmModel::fCurrentIsotope = nullptr
privateinherited

◆ fElementData

G4ElementData* G4VEmModel::fElementData = nullptr
protectedinherited

◆ fEmManager

G4LossTableManager* G4VEmModel::fEmManager
privateinherited

Definition at line 420 of file G4VEmModel.hh.

Referenced by G4VEmModel::G4VEmModel(), and G4VEmModel::~G4VEmModel().

◆ flagDeexcitation

G4bool G4VEmModel::flagDeexcitation = false
privateinherited

Definition at line 455 of file G4VEmModel.hh.

Referenced by G4VEmModel::DeexcitationFlag(), and G4VEmModel::SetDeexcitationFlag().

◆ flagForceBuildTable

G4bool G4VEmModel::flagForceBuildTable = false
privateinherited

◆ flucModel

G4VEmFluctuationModel* G4VEmModel::flucModel = nullptr
privateinherited

◆ fParticleChangeForGamma

G4ParticleChangeForGamma* G4DNARuddIonisationModel::fParticleChangeForGamma
protected

◆ fpWaterDensity

const std::vector<G4double>* G4DNARuddIonisationModel::fpWaterDensity
private

Definition at line 80 of file G4DNARuddIonisationModel.hh.

Referenced by G4DNARuddIonisationModel(), and Initialise().

◆ fTripletModel

G4VEmModel* G4VEmModel::fTripletModel = nullptr
privateinherited

◆ highEnergyLimit

std::map<G4String,G4double,std::less<G4String> > G4DNARuddIonisationModel::highEnergyLimit
private

◆ highLimit

G4double G4VEmModel::highLimit
privateinherited

◆ inveplus

G4double G4VEmModel::inveplus
protectedinherited

◆ isInitialised

G4bool G4DNARuddIonisationModel::isInitialised
private

Definition at line 95 of file G4DNARuddIonisationModel.hh.

Referenced by Initialise().

◆ isLocked

G4bool G4VEmModel::isLocked = false
privateinherited

◆ isMaster

G4bool G4VEmModel::isMaster = true
privateinherited

◆ killBelowEnergyForZ1

G4double G4DNARuddIonisationModel::killBelowEnergyForZ1
private

Definition at line 92 of file G4DNARuddIonisationModel.hh.

Referenced by G4DNARuddIonisationModel(), and SampleSecondaries().

◆ killBelowEnergyForZ2

G4double G4DNARuddIonisationModel::killBelowEnergyForZ2
private

Definition at line 93 of file G4DNARuddIonisationModel.hh.

Referenced by G4DNARuddIonisationModel(), and SampleSecondaries().

◆ localElmSelectors

G4bool G4VEmModel::localElmSelectors = true
privateinherited

Definition at line 460 of file G4VEmModel.hh.

Referenced by G4VEmModel::SetElementSelectors(), and G4VEmModel::~G4VEmModel().

◆ localTable

G4bool G4VEmModel::localTable = true
privateinherited

Definition at line 459 of file G4VEmModel.hh.

Referenced by G4VEmModel::SetCrossSectionTable(), and G4VEmModel::~G4VEmModel().

◆ lossFlucFlag

G4bool G4VEmModel::lossFlucFlag = true
protectedinherited

◆ lowEnergyLimit

std::map<G4String,G4double,std::less<G4String> > G4DNARuddIonisationModel::lowEnergyLimit
private

Definition at line 85 of file G4DNARuddIonisationModel.hh.

Referenced by Initialise(), and PartialCrossSection().

◆ lowEnergyLimitForZ1

G4double G4DNARuddIonisationModel::lowEnergyLimitForZ1
private

Definition at line 88 of file G4DNARuddIonisationModel.hh.

Referenced by G4DNARuddIonisationModel(), and Initialise().

◆ lowEnergyLimitForZ2

G4double G4DNARuddIonisationModel::lowEnergyLimitForZ2
private

Definition at line 89 of file G4DNARuddIonisationModel.hh.

Referenced by G4DNARuddIonisationModel(), and Initialise().

◆ lowEnergyLimitOfModelForZ1

G4double G4DNARuddIonisationModel::lowEnergyLimitOfModelForZ1
private

Definition at line 90 of file G4DNARuddIonisationModel.hh.

Referenced by CrossSectionPerVolume(), and G4DNARuddIonisationModel().

◆ lowEnergyLimitOfModelForZ2

G4double G4DNARuddIonisationModel::lowEnergyLimitOfModelForZ2
private

Definition at line 91 of file G4DNARuddIonisationModel.hh.

Referenced by CrossSectionPerVolume(), and G4DNARuddIonisationModel().

◆ lowLimit

G4double G4VEmModel::lowLimit
privateinherited

◆ name

const G4String G4VEmModel::name
privateinherited

◆ nsec

G4int G4VEmModel::nsec = 5
privateinherited

Definition at line 444 of file G4VEmModel.hh.

Referenced by G4VEmModel::CrossSectionPerVolume(), and G4VEmModel::G4VEmModel().

◆ nSelectors

G4int G4VEmModel::nSelectors = 0
privateinherited

◆ pBaseMaterial

const G4Material* G4VEmModel::pBaseMaterial = nullptr
protectedinherited

◆ pFactor

G4double G4VEmModel::pFactor = 1.0
protectedinherited

◆ polarAngleLimit

G4double G4VEmModel::polarAngleLimit
privateinherited

Definition at line 441 of file G4VEmModel.hh.

Referenced by G4VEmModel::PolarAngleLimit(), and G4VEmModel::SetPolarAngleLimit().

◆ pParticleChange

G4VParticleChange* G4VEmModel::pParticleChange = nullptr
protectedinherited

◆ sCoefficient

G4double G4DNARuddIonisationModel::sCoefficient[3]
private

◆ secondaryThreshold

G4double G4VEmModel::secondaryThreshold = DBL_MAX
privateinherited

◆ slaterEffectiveCharge

G4double G4DNARuddIonisationModel::slaterEffectiveCharge[3]
private

◆ statCode

G4bool G4DNARuddIonisationModel::statCode
private

◆ tableData

MapData G4DNARuddIonisationModel::tableData
private

◆ tableFile

MapFile G4DNARuddIonisationModel::tableFile
private

Definition at line 101 of file G4DNARuddIonisationModel.hh.

Referenced by Initialise().

◆ theDensityFactor

const std::vector<G4double>* G4VEmModel::theDensityFactor = nullptr
protectedinherited

Definition at line 428 of file G4VEmModel.hh.

Referenced by G4VEmModel::G4VEmModel().

◆ theDensityIdx

const std::vector<G4int>* G4VEmModel::theDensityIdx = nullptr
protectedinherited

Definition at line 429 of file G4VEmModel.hh.

Referenced by G4VEmModel::G4VEmModel().

◆ theLPMflag

G4bool G4VEmModel::theLPMflag = false
privateinherited

Definition at line 454 of file G4VEmModel.hh.

Referenced by G4VEmModel::LPMFlag(), and G4VEmModel::SetLPMFlag().

◆ useAngularGenerator

G4bool G4VEmModel::useAngularGenerator = false
privateinherited

◆ useBaseMaterials

G4bool G4VEmModel::useBaseMaterials = false
privateinherited

◆ verboseLevel

G4int G4DNARuddIonisationModel::verboseLevel
private

◆ waterStructure

G4DNAWaterIonisationStructure G4DNARuddIonisationModel::waterStructure
private

◆ xsec

std::vector<G4double> G4VEmModel::xsec
privateinherited

◆ xSectionTable

G4PhysicsTable* G4VEmModel::xSectionTable = nullptr
protectedinherited

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