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

#include <G4DNARuddIonisationExtendedModel.hh>

Inheritance diagram for G4DNARuddIonisationExtendedModel:
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
 
 G4DNARuddIonisationExtendedModel (const G4ParticleDefinition *p=0, const G4String &nam="DNARuddIonisationExtendedModel")
 
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 ~G4DNARuddIonisationExtendedModel ()
 

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, G4int shell)
 
 G4DNARuddIonisationExtendedModel (const G4DNARuddIonisationExtendedModel &)
 
G4DNARuddIonisationExtendedModeloperator= (const G4DNARuddIonisationExtendedModel &right)
 
G4double PartialCrossSection (const G4Track &track)
 
G4double ProposedSampledEnergy (G4ParticleDefinition *particle, G4double k, G4int ionizationLevelIndex)
 
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 RejectionFunction (G4ParticleDefinition *particle, G4double k, G4double proposed_ws, G4int ionizationLevelIndex)
 
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
 
std::map< G4double, G4doublekillBelowEnergyForA
 
G4bool localElmSelectors = true
 
G4bool localTable = true
 
std::map< G4String, G4double, std::less< G4String > > lowEnergyLimit
 
std::map< G4double, G4doublelowEnergyLimitForA
 
std::map< G4double, G4doublelowEnergyLimitOfModelForA
 
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 G4DNARuddIonisationExtendedModel.hh.

Member Typedef Documentation

◆ MapData

Definition at line 99 of file G4DNARuddIonisationExtendedModel.hh.

◆ MapFile

Definition at line 96 of file G4DNARuddIonisationExtendedModel.hh.

Constructor & Destructor Documentation

◆ G4DNARuddIonisationExtendedModel() [1/2]

G4DNARuddIonisationExtendedModel::G4DNARuddIonisationExtendedModel ( const G4ParticleDefinition p = 0,
const G4String nam = "DNARuddIonisationExtendedModel" 
)

Definition at line 49 of file G4DNARuddIonisationExtendedModel.cc.

51:G4VEmModel(nam),isInitialised(false)
52{
53 // nistwater = G4NistManager::Instance()->FindOrBuildMaterial("G4_WATER");
55
59 sCoefficient[0]=0.;
60 sCoefficient[1]=0.;
61 sCoefficient[2]=0.;
62
63 lowEnergyLimitForA[1] = 0 * eV;
64 lowEnergyLimitForA[2] = 0 * eV;
65 lowEnergyLimitForA[3] = 0 * eV;
68 lowEnergyLimitOfModelForA[5] = 0.5 * MeV; // For A = 3 or above, limit is MeV/uma
72
73 verboseLevel= 0;
74 // Verbosity scale:
75 // 0 = nothing
76 // 1 = warning for energy non-conservation
77 // 2 = details of energy budget
78 // 3 = calculation of cross sections, file openings, sampling of atoms
79 // 4 = entering in methods
80
81 if( verboseLevel>0 )
82 {
83 G4cout << "Rudd ionisation model is constructed " << G4endl;
84 }
85
86 // Define default angular generator
88
89 // Mark this model as "applicable" for atomic deexcitation
93
94 // Selection of stationary mode
95
96 statCode = false;
97}
static constexpr double keV
Definition: G4SIunits.hh:202
static constexpr double eV
Definition: G4SIunits.hh:201
static constexpr double MeV
Definition: G4SIunits.hh:200
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
std::map< G4double, G4double > killBelowEnergyForA
std::map< G4double, G4double > lowEnergyLimitOfModelForA
std::map< G4double, G4double > lowEnergyLimitForA
const std::vector< G4double > * fpWaterDensity
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, killBelowEnergyForA, lowEnergyLimitForA, lowEnergyLimitOfModelForA, MeV, sCoefficient, G4VEmModel::SetAngularDistribution(), G4VEmModel::SetDeexcitationFlag(), slaterEffectiveCharge, statCode, and verboseLevel.

◆ ~G4DNARuddIonisationExtendedModel()

G4DNARuddIonisationExtendedModel::~G4DNARuddIonisationExtendedModel ( )
virtual

Definition at line 101 of file G4DNARuddIonisationExtendedModel.cc.

102{
103 // Cross section
104
105 std::map< G4String,G4DNACrossSectionDataSet*,std::less<G4String> >::iterator pos;
106 for (pos = tableData.begin(); pos != tableData.end(); ++pos)
107 {
108 G4DNACrossSectionDataSet* table = pos->second;
109 delete table;
110 }
111
112 // The following removal is forbidden G4VEnergyLossModel takes care of deletion
113 // however coverity will signal this as an error
114 // if (fAtomDeexcitation) {delete fAtomDeexcitation;}
115
116}
static const G4double pos

References pos, and tableData.

◆ G4DNARuddIonisationExtendedModel() [2/2]

G4DNARuddIonisationExtendedModel::G4DNARuddIonisationExtendedModel ( const G4DNARuddIonisationExtendedModel )
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 G4DNARuddIonisationExtendedModel::CorrectionFactor ( G4ParticleDefinition particleDefinition,
G4double  k,
G4int  shell 
)
private

Definition at line 1280 of file G4DNARuddIonisationExtendedModel.cc.

1281{
1282 // ZF Shortened
1283 G4DNAGenericIonsManager *instance;
1285
1286 if (particleDefinition == instance->GetIon("hydrogen") && shell < 4)
1287 {
1288 G4double value = (std::log10(k/eV)-4.2)/0.5;
1289 // The following values are provided by M. Dingfelder (priv. comm)
1290 return((0.6/(1+G4Exp(value))) + 0.9);
1291 }
1292 else
1293 {
1294 return(1.);
1295 }
1296}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:179
static G4DNAGenericIonsManager * Instance(void)
G4ParticleDefinition * GetIon(const G4String &name)

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

Referenced by RejectionFunction().

◆ 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 G4DNARuddIonisationExtendedModel::CrossSectionPerVolume ( const G4Material material,
const G4ParticleDefinition p,
G4double  ekin,
G4double  emin,
G4double  emax 
)
virtual

Reimplemented from G4VEmModel.

Definition at line 535 of file G4DNARuddIonisationExtendedModel.cc.

540{
541 //SI: particleDefinition->GetParticleName() is for eg. Fe56
542 // particleDefinition->GetPDGMass() is correct
543 // particleDefinition->GetAtomicNumber() is correct
544
545 if (verboseLevel > 3)
546 G4cout << "Calling CrossSectionPerVolume() of G4DNARuddIonisationExtendedModel" << G4endl;
547
548 // Calculate total cross section for model
549
550 G4DNAGenericIonsManager *instance;
552
553 if (
554 particleDefinition != G4Proton::ProtonDefinition()
555 &&
556 particleDefinition != instance->GetIon("hydrogen")
557 &&
558 particleDefinition != instance->GetIon("alpha++")
559 &&
560 particleDefinition != instance->GetIon("alpha+")
561 &&
562 particleDefinition != instance->GetIon("helium")
563 &&
564 // SI
565 //particleDefinition != instance->GetIon("carbon")
566 //&&
567 //particleDefinition != instance->GetIon("nitrogen")
568 //&&
569 //particleDefinition != instance->GetIon("oxygen")
570 //&&
571 //particleDefinition != instance->GetIon("iron")
572 particleDefinition != G4IonTable::GetIonTable()->GetIon(3,7)
573 &&
574 particleDefinition != G4IonTable::GetIonTable()->GetIon(4,9)
575 &&
576 particleDefinition != G4IonTable::GetIonTable()->GetIon(5,11)
577 &&
578 particleDefinition != G4IonTable::GetIonTable()->GetIon(6,12)
579 &&
580 particleDefinition != G4IonTable::GetIonTable()->GetIon(7,14)
581 &&
582 particleDefinition != G4IonTable::GetIonTable()->GetIon(8,16)
583 &&
584 particleDefinition != G4IonTable::GetIonTable()->GetIon(14,28)
585 &&
586 particleDefinition != G4IonTable::GetIonTable()->GetIon(26,56)
587 //
588 )
589
590 return 0;
591
592 G4double lowLim = 0;
593
594 if ( particleDefinition == G4Proton::ProtonDefinition()
595 || particleDefinition == instance->GetIon("hydrogen")
596 )
597
598 lowLim = lowEnergyLimitOfModelForA[1];
599
600 else if ( particleDefinition == instance->GetIon("alpha++")
601 || particleDefinition == instance->GetIon("alpha+")
602 || particleDefinition == instance->GetIon("helium")
603 )
604
605 lowLim = lowEnergyLimitOfModelForA[4];
606
607 else lowLim = lowEnergyLimitOfModelForA[5];
608
609 G4double highLim = 0;
610 G4double sigma=0;
611
612
613 G4double waterDensity = (*fpWaterDensity)[material->GetIndex()];
614
615 const G4String& particleName = particleDefinition->GetParticleName();
616
617 std::map< G4String,G4double,std::less<G4String> >::iterator pos2;
618 pos2 = highEnergyLimit.find(particleName);
619
620 if (pos2 != highEnergyLimit.end())
621 {
622 highLim = pos2->second;
623 }
624
625 if (k <= highLim)
626 {
627
628 //SI : XS must not be zero otherwise sampling of secondaries method ignored
629
630 if (k < lowLim) k = lowLim;
631
632 //
633
634 std::map< G4String,G4DNACrossSectionDataSet*,std::less<G4String> >::iterator pos;
635 pos = tableData.find(particleName);
636
637 if (pos != tableData.end())
638 {
639 G4DNACrossSectionDataSet* table = pos->second;
640 if (table != 0)
641 {
642 sigma = table->FindValue(k);
643 }
644 }
645 else
646 {
647 G4Exception("G4DNARuddIonisationExtendedModel::CrossSectionPerVolume","em0002",
648 FatalException,"Model not applicable to particle type.");
649 }
650
651 } // if (k >= lowLim && k < highLim)
652
653 if (verboseLevel > 2)
654 {
655 G4cout << "__________________________________" << G4endl;
656 G4cout << "G4DNARuddIonisationExtendedModel - XS INFO START" << G4endl;
657 G4cout << "Kinetic energy(eV)=" << k/eV << " particle : " << particleDefinition->GetParticleName() << G4endl;
658 G4cout << "Cross section per water molecule (cm^2)=" << sigma/cm/cm << G4endl;
659 G4cout << "Cross section per water molecule (cm^-1)=" << sigma*waterDensity/(1./cm) << G4endl;
660 //G4cout << " - Cross section per water molecule (cm^-1)="
661 //<< sigma*material->GetAtomicNumDensityVector()[1]/(1./cm) << G4endl;
662 G4cout << "G4DNARuddIonisationExtendedModel - XS INFO END" << G4endl;
663
664 }
665
666 return sigma*waterDensity;
667
668}
@ 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
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
Definition: G4IonTable.cc:522
static G4IonTable * GetIonTable()
Definition: G4IonTable.cc:170
static G4Proton * ProtonDefinition()
Definition: G4Proton.cc:87

References cm, eV, FatalException, G4DNACrossSectionDataSet::FindValue(), G4cout, G4endl, G4Exception(), G4DNAGenericIonsManager::GetIon(), G4IonTable::GetIon(), G4IonTable::GetIonTable(), G4ParticleDefinition::GetParticleName(), highEnergyLimit, G4DNAGenericIonsManager::Instance(), lowEnergyLimitOfModelForA, 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().

◆ 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(), SampleSecondaries(), G4DNARuddIonisationModel::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(), Initialise(), G4DNARuddIonisationModel::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(), Initialise(), G4DNARuddIonisationModel::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 G4DNARuddIonisationExtendedModel::Initialise ( const G4ParticleDefinition particle,
const G4DataVector  
)
virtual

Implements G4VEmModel.

Definition at line 120 of file G4DNARuddIonisationExtendedModel.cc.

122{
123 if (verboseLevel > 3)
124 G4cout << "Calling G4DNARuddIonisationExtendedModel::Initialise()" << G4endl;
125
126 // Energy limits
127
128 G4String fileProton("dna/sigma_ionisation_p_rudd");
129 G4String fileHydrogen("dna/sigma_ionisation_h_rudd");
130 G4String fileAlphaPlusPlus("dna/sigma_ionisation_alphaplusplus_rudd");
131 G4String fileAlphaPlus("dna/sigma_ionisation_alphaplus_rudd");
132 G4String fileHelium("dna/sigma_ionisation_he_rudd");
133 G4String fileLithium("dna/sigma_ionisation_li_rudd");
134 G4String fileBeryllium("dna/sigma_ionisation_be_rudd");
135 G4String fileBoron("dna/sigma_ionisation_b_rudd");
136 G4String fileCarbon("dna/sigma_ionisation_c_rudd");
137 G4String fileNitrogen("dna/sigma_ionisation_n_rudd");
138 G4String fileOxygen("dna/sigma_ionisation_o_rudd");
139 G4String fileSilicon("dna/sigma_ionisation_si_rudd");
140 G4String fileIron("dna/sigma_ionisation_fe_rudd");
141
142 G4DNAGenericIonsManager *instance;
145 G4ParticleDefinition* hydrogenDef = instance->GetIon("hydrogen");
146 G4ParticleDefinition* alphaPlusPlusDef = instance->GetIon("alpha++");
147 G4ParticleDefinition* alphaPlusDef = instance->GetIon("alpha+");
148 G4ParticleDefinition* heliumDef = instance->GetIon("helium");
149
150 //G4ParticleDefinition* carbonDef = instance->GetIon("carbon");
151 //G4ParticleDefinition* nitrogenDef = instance->GetIon("nitrogen");
152 //G4ParticleDefinition* oxygenDef = instance->GetIon("oxygen");
153 //G4ParticleDefinition* siliconDef = instance->GetIon("silicon");
154 //G4ParticleDefinition* ironDef = instance->GetIon("iron");
163 //
164
166 G4String hydrogen;
167 G4String alphaPlusPlus;
168 G4String alphaPlus;
169 G4String helium;
170 G4String lithium;
171 G4String beryllium;
172 G4String boron;
173 G4String carbon;
174 G4String nitrogen;
175 G4String oxygen;
176 G4String silicon;
177 G4String iron;
178
179 G4double scaleFactor = 1 * m*m;
180
181 // LIMITS AND DATA
182
183 // **********************************************************************************************
184
185 proton = protonDef->GetParticleName();
186 tableFile[proton] = fileProton;
188 highEnergyLimit[proton] = 500. * keV;
189
190 // Cross section
191
193 eV,
194 scaleFactor );
195 tableProton->LoadData(fileProton);
196 tableData[proton] = tableProton;
197
198 // **********************************************************************************************
199
200 hydrogen = hydrogenDef->GetParticleName();
201 tableFile[hydrogen] = fileHydrogen;
202
203 lowEnergyLimit[hydrogen] = lowEnergyLimitForA[1];
204 highEnergyLimit[hydrogen] = 100. * MeV;
205
206 // Cross section
207
209 eV,
210 scaleFactor );
211 tableHydrogen->LoadData(fileHydrogen);
212
213 tableData[hydrogen] = tableHydrogen;
214
215 // **********************************************************************************************
216
217 alphaPlusPlus = alphaPlusPlusDef->GetParticleName();
218 tableFile[alphaPlusPlus] = fileAlphaPlusPlus;
219
220 lowEnergyLimit[alphaPlusPlus] = lowEnergyLimitForA[4];
221 highEnergyLimit[alphaPlusPlus] = 400. * MeV;
222
223 // Cross section
224
226 eV,
227 scaleFactor );
228 tableAlphaPlusPlus->LoadData(fileAlphaPlusPlus);
229
230 tableData[alphaPlusPlus] = tableAlphaPlusPlus;
231
232 // **********************************************************************************************
233
234 alphaPlus = alphaPlusDef->GetParticleName();
235 tableFile[alphaPlus] = fileAlphaPlus;
236
237 lowEnergyLimit[alphaPlus] = lowEnergyLimitForA[4];
238 highEnergyLimit[alphaPlus] = 400. * MeV;
239
240 // Cross section
241
243 eV,
244 scaleFactor );
245 tableAlphaPlus->LoadData(fileAlphaPlus);
246 tableData[alphaPlus] = tableAlphaPlus;
247
248 // **********************************************************************************************
249
250 helium = heliumDef->GetParticleName();
251 tableFile[helium] = fileHelium;
252
254 highEnergyLimit[helium] = 400. * MeV;
255
256 // Cross section
257
259 eV,
260 scaleFactor );
261 tableHelium->LoadData(fileHelium);
262 tableData[helium] = tableHelium;
263
264 // **********************************************************************************************
265
266 lithium = lithiumDef->GetParticleName();
267 tableFile[lithium] = fileLithium;
268
269 //SI
270 //lowEnergyLimit[carbon] = lowEnergyLimitForA[5] * particle->GetAtomicMass();
271 //highEnergyLimit[carbon] = 1e6* particle->GetAtomicMass() * MeV;
272 lowEnergyLimit[lithium] = 0.5*7*MeV;
273 highEnergyLimit[lithium] = 1e6*7*MeV;
274 //
275
276 // Cross section
277
279 eV,
280 scaleFactor );
281 tableLithium->LoadData(fileLithium);
282 tableData[lithium] = tableLithium;
283
284 // **********************************************************************************************
285
286 beryllium = berylliumDef->GetParticleName();
287 tableFile[beryllium] = fileBeryllium;
288
289 //SI
290 //lowEnergyLimit[carbon] = lowEnergyLimitForA[5] * particle->GetAtomicMass();
291 //highEnergyLimit[carbon] = 1e6* particle->GetAtomicMass() * MeV;
292 lowEnergyLimit[beryllium] = 0.5*9*MeV;
293 highEnergyLimit[beryllium] = 1e6*9*MeV;
294 //
295
296 // Cross section
297
299 eV,
300 scaleFactor );
301 tableBeryllium->LoadData(fileBeryllium);
302 tableData[beryllium] = tableBeryllium;
303
304 // **********************************************************************************************
305
306 boron = boronDef->GetParticleName();
307 tableFile[boron] = fileBoron;
308
309 //SI
310 //lowEnergyLimit[carbon] = lowEnergyLimitForA[5] * particle->GetAtomicMass();
311 //highEnergyLimit[carbon] = 1e6* particle->GetAtomicMass() * MeV;
312 lowEnergyLimit[boron] = 0.5*11*MeV;
313 highEnergyLimit[boron] = 1e6*11*MeV;
314 //
315
316 // Cross section
317
319 eV,
320 scaleFactor );
321 tableBoron->LoadData(fileBoron);
322 tableData[boron] = tableBoron;
323
324 // **********************************************************************************************
325
326 carbon = carbonDef->GetParticleName();
327 tableFile[carbon] = fileCarbon;
328
329 //SI
330 //lowEnergyLimit[carbon] = lowEnergyLimitForA[5] * particle->GetAtomicMass();
331 //highEnergyLimit[carbon] = 1e6* particle->GetAtomicMass() * MeV;
332 lowEnergyLimit[carbon] = 0.5*12*MeV;
333 highEnergyLimit[carbon] = 1e6*12*MeV;
334 //
335
336 // Cross section
337
339 eV,
340 scaleFactor );
341 tableCarbon->LoadData(fileCarbon);
342 tableData[carbon] = tableCarbon;
343
344 // **********************************************************************************************
345
346 oxygen = oxygenDef->GetParticleName();
347 tableFile[oxygen] = fileOxygen;
348
349 //SI
350 //lowEnergyLimit[oxygen] = lowEnergyLimitForA[5]* particle->GetAtomicMass();
351 //highEnergyLimit[oxygen] = 1e6* particle->GetAtomicMass()* MeV;
352 lowEnergyLimit[oxygen] = 0.5*16*MeV;
353 highEnergyLimit[oxygen] = 1e6*16*MeV;
354 //
355
356 // Cross section
357
359 eV,
360 scaleFactor );
361 tableOxygen->LoadData(fileOxygen);
362 tableData[oxygen] = tableOxygen;
363
364 // **********************************************************************************************
365
366 nitrogen = nitrogenDef->GetParticleName();
367 tableFile[nitrogen] = fileNitrogen;
368
369 //SI
370 //lowEnergyLimit[nitrogen] = lowEnergyLimitForA[5]* particle->GetAtomicMass();
371 //highEnergyLimit[nitrogen] = 1e6* particle->GetAtomicMass()* MeV;
372 lowEnergyLimit[nitrogen] = 0.5*14*MeV;
373 highEnergyLimit[nitrogen] = 1e6*14*MeV;
374 //
375
376 // Cross section
377
379 eV,
380 scaleFactor );
381 tableNitrogen->LoadData(fileNitrogen);
382 tableData[nitrogen] = tableNitrogen;
383
384 // **********************************************************************************************
385
386 silicon = siliconDef->GetParticleName();
387 tableFile[silicon] = fileSilicon;
388
389 //lowEnergyLimit[silicon] = lowEnergyLimitForA[5]* particle->GetAtomicMass();
390 //highEnergyLimit[silicon] = 1e6* particle->GetAtomicMass()* MeV;
391 lowEnergyLimit[silicon] = 0.5*28*MeV;
392 highEnergyLimit[silicon] = 1e6*28*MeV;
393 //
394
395 // Cross section
396
398 eV,
399 scaleFactor );
400 tableSilicon->LoadData(fileSilicon);
401 tableData[silicon] = tableSilicon;
402
403 // **********************************************************************************************
404
405 iron = ironDef->GetParticleName();
406 tableFile[iron] = fileIron;
407
408 //SI
409 //lowEnergyLimit[iron] = lowEnergyLimitForA[5]* particle->GetAtomicMass();
410 //highEnergyLimit[iron] = 1e6* particle->GetAtomicMass()* MeV;
411 lowEnergyLimit[iron] = 0.5*56*MeV;
412 highEnergyLimit[iron] = 1e6*56*MeV;
413 //
414
415 // Cross section
416
418 eV,
419 scaleFactor );
420 tableIron->LoadData(fileIron);
421 tableData[iron] = tableIron;
422
423 // **********************************************************************************************
424
425 // SI: not anymore
426 // ZF Following lines can be replaced by:
427 // SetLowEnergyLimit(lowEnergyLimit[particle->GetParticleName()]);
428 // SetHighEnergyLimit(highEnergyLimit[particle->GetParticleName()]);
429 // at least for HZE
430
431 if (particle==protonDef)
432 {
435 }
436
437 if (particle==hydrogenDef)
438 {
441 }
442
443 if (particle==heliumDef)
444 {
447 }
448
449 if (particle==alphaPlusDef)
450 {
453 }
454
455 if (particle==alphaPlusPlusDef)
456 {
457 SetLowEnergyLimit(lowEnergyLimit[alphaPlusPlus]);
458 SetHighEnergyLimit(highEnergyLimit[alphaPlusPlus]);
459 }
460
461 if (particle==lithiumDef)
462 {
465 }
466
467 if (particle==berylliumDef)
468 {
471 }
472
473 if (particle==boronDef)
474 {
477 }
478
479 if (particle==carbonDef)
480 {
483 }
484
485 if (particle==nitrogenDef)
486 {
489 }
490
491 if (particle==oxygenDef)
492 {
495 }
496
497 if (particle==siliconDef)
498 {
501 }
502
503 if (particle==ironDef)
504 {
507 }
508
509 //----------------------------------------------------------------------
510
511 if( verboseLevel>0 )
512 {
513 G4cout << "Rudd ionisation model is initialized " << G4endl
514 << "Energy range: "
515 << LowEnergyLimit() / eV << " eV - "
516 << HighEnergyLimit() / keV << " keV for "
517 << particle->GetParticleName()
518 << G4endl;
519 }
520
521 // Initialize water density pointer
523
524 //
525
527
528 if (isInitialised) { return; }
530 isInitialised = true;
531}
static const G4double e6[46]
static constexpr double m
Definition: G4SIunits.hh:109
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(), e6, eV, fAtomDeexcitation, fParticleChangeForGamma, fpWaterDensity, G4cout, G4endl, G4DNAGenericIonsManager::GetIon(), G4IonTable::GetIon(), G4IonTable::GetIonTable(), G4Material::GetMaterial(), G4DNAMolecularMaterial::GetNumMolPerVolTableFor(), G4VEmModel::GetParticleChangeForGamma(), G4ParticleDefinition::GetParticleName(), highEnergyLimit, G4VEmModel::HighEnergyLimit(), G4DNAMolecularMaterial::Instance(), G4LossTableManager::Instance(), G4DNAGenericIonsManager::Instance(), isInitialised, keV, G4DNACrossSectionDataSet::LoadData(), lowEnergyLimit, G4VEmModel::LowEnergyLimit(), lowEnergyLimitForA, 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
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
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(), Initialise(), G4DNARuddIonisationModel::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=()

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

◆ PartialCrossSection()

G4double G4DNARuddIonisationExtendedModel::PartialCrossSection ( const G4Track track)
private

Definition at line 1361 of file G4DNARuddIonisationExtendedModel.cc.

1362{
1363 G4double sigma = 0.;
1364
1365 const G4DynamicParticle* particle = track.GetDynamicParticle();
1366 G4double k = particle->GetKineticEnergy();
1367
1368 G4double lowLim = 0;
1369 G4double highLim = 0;
1370
1371 const G4String& particleName = particle->GetDefinition()->GetParticleName();
1372
1373 std::map< G4String,G4double,std::less<G4String> >::iterator pos1;
1374 pos1 = lowEnergyLimit.find(particleName);
1375
1376 if (pos1 != lowEnergyLimit.end())
1377 {
1378 lowLim = pos1->second;
1379 }
1380
1381 std::map< G4String,G4double,std::less<G4String> >::iterator pos2;
1382 pos2 = highEnergyLimit.find(particleName);
1383
1384 if (pos2 != highEnergyLimit.end())
1385 {
1386 highLim = pos2->second;
1387 }
1388
1389 if (k >= lowLim && k <= highLim)
1390 {
1391 std::map< G4String,G4DNACrossSectionDataSet*,std::less<G4String> >::iterator pos;
1392 pos = tableData.find(particleName);
1393
1394 if (pos != tableData.end())
1395 {
1396 G4DNACrossSectionDataSet* table = pos->second;
1397 if (table != 0)
1398 {
1399 sigma = table->FindValue(k);
1400 }
1401 }
1402 else
1403 {
1404 G4Exception("G4DNARuddIonisationExtendedModel::PartialCrossSection","em0002",
1405 FatalException,"Model not applicable to particle type.");
1406 }
1407 }
1408
1409 return sigma;
1410}
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

◆ ProposedSampledEnergy()

G4double G4DNARuddIonisationExtendedModel::ProposedSampledEnergy ( G4ParticleDefinition particle,
G4double  k,
G4int  ionizationLevelIndex 
)
private

!!!!!!!!!! manual calculus leads to c=1/c

Definition at line 1095 of file G4DNARuddIonisationExtendedModel.cc.

1098{
1099
1100 const G4int j=ionizationLevelIndex;
1101
1102 G4double A1, B1, C1, D1, E1, A2, B2, C2, D2;
1103 //G4double alphaConst ;
1104 G4double Bj_energy;
1105
1106 // const G4double Bj[5] = {12.61*eV, 14.73*eV, 18.55*eV, 32.20*eV, 539.7*eV}; //Ding Paper
1107 // Following values provided by M. Dingfelder (priv. comm)
1108
1109 const G4double Bj[5] = {12.60*eV, 14.70*eV, 18.40*eV, 32.20*eV, 540*eV};
1110
1111 if (j == 4)
1112 {
1113 //Data For Liquid Water K SHELL from Dingfelder (Protons in Water)
1114 A1 = 1.25;
1115 B1 = 0.5;
1116 C1 = 1.00;
1117 D1 = 1.00;
1118 E1 = 3.00;
1119 A2 = 1.10;
1120 B2 = 1.30;
1121 C2 = 1.00;
1122 D2 = 0.00;
1123 //alphaConst = 0.66;
1124 //---Note that the following (j==4) cases are provided by M. Dingfelder (priv. comm)
1125 Bj_energy = waterStructure.IonisationEnergy(ionizationLevelIndex);
1126 //---
1127 }
1128 else
1129 {
1130 //Data For Liquid Water from Dingfelder (Protons in Water)
1131 A1 = 1.02;
1132 B1 = 82.0;
1133 C1 = 0.45;
1134 D1 = -0.80;
1135 E1 = 0.38;
1136 A2 = 1.07;
1137 //B2 = 14.6; From Ding Paper
1138 // Value provided by M. Dingfelder (priv. comm)
1139 B2 = 11.6;
1140 //
1141 C2 = 0.60;
1142 D2 = 0.04;
1143 //alphaConst = 0.64;
1144
1145 Bj_energy = Bj[ionizationLevelIndex];
1146 }
1147
1148 G4double tau = 0.;
1149 G4double A_ion = 0.;
1150 tau = (electron_mass_c2 / particle->GetPDGMass()) * k;
1151
1152 A_ion = particle->GetAtomicMass();
1153
1154 G4double v2;
1155 G4double beta2;
1156 if((tau/MeV)<5.447761194e-2)
1157 {
1158 v2 = tau / Bj_energy;
1159 beta2 = 2.*tau / electron_mass_c2;
1160 }
1161 // Relativistic
1162 else
1163 {
1164 v2 = (electron_mass_c2 / 2. / Bj_energy) * (1. - (1./ pow( (1.+ (tau/electron_mass_c2)),2) ));
1165 beta2 =1. - 1./(1.+ (tau/electron_mass_c2/A_ion))/(1.+ (tau/electron_mass_c2/A_ion));
1166 }
1167
1168 G4double v = std::sqrt(v2);
1169 //G4double wc = 4.*v2 - 2.*v - (Ry/(4.*Bj_energy));
1170 G4double L1 = (C1* std::pow(v,(D1))) / (1.+ E1*std::pow(v, (D1+4.)));
1171 G4double L2 = C2*std::pow(v,(D2));
1172 G4double H1 = (A1*std::log(1.+v2)) / (v2+(B1/v2));
1173 G4double H2 = (A2/v2) + (B2/(v2*v2));
1174 G4double F1 = L1+H1;
1175 G4double F2 = (L2*H2)/(L2+H2);
1176
1177 // ZF. generalized & relativistic version
1178 G4double maximumEnergy;
1179
1180 //---- maximum kinetic energy , non relativistic ------
1181 if( (k/MeV)/(particle->GetPDGMass()/MeV) <= 0.1 )
1182 {
1183 maximumEnergy = 4.* (electron_mass_c2 / particle->GetPDGMass()) * k;
1184 }
1185 //---- relativistic -----------------------------------
1186 else
1187 {
1188 G4double gamma = 1./sqrt(1.-beta2);
1189 maximumEnergy = 2.*electron_mass_c2*(gamma*gamma-1.)/
1190 (1.+2.*gamma*(electron_mass_c2/particle->GetPDGMass())+pow(electron_mass_c2/particle->GetPDGMass(), 2.) );
1191 }
1192
1193 //either it is transfered energy or secondary electron energy ...
1194 //maximumEnergy-=Bj_energy;
1195
1196 //-----------------------------------------------------
1197 G4double wmax = maximumEnergy/Bj_energy;
1198 G4double c = wmax*(F2*wmax+F1*(2.+wmax))/(2.*(1.+wmax)*(1.+wmax));
1199 c=1./c;
1200 G4double randVal = G4UniformRand();
1201 G4double proposed_ws = F1*F1*c*c + 2.*F2*c*randVal - 2.*F1*c*randVal;
1202 proposed_ws = -F1*c+2.*randVal+std::sqrt(proposed_ws);
1203 // proposed_ws = -F1*c+2.*randVal-std::sqrt(proposed_ws);
1204 proposed_ws/= ( F1*c + F2*c - 2.*randVal );
1205 proposed_ws*=Bj_energy;
1206
1207 return(proposed_ws);
1208
1209}
const double C2
const double C1
#define G4UniformRand()
Definition: Randomize.hh:52
G4int GetAtomicMass() const
float electron_mass_c2
Definition: hepunit.py:273

References C1, C2, source.hepunit::electron_mass_c2, eV, G4UniformRand, G4ParticleDefinition::GetAtomicMass(), G4ParticleDefinition::GetPDGMass(), G4DNAWaterIonisationStructure::IonisationEnergy(), MeV, and waterStructure.

Referenced by RandomizeEjectedElectronEnergy().

◆ R()

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

Definition at line 1262 of file G4DNARuddIonisationExtendedModel.cc.

1266{
1267 // tElectron = m_electron / m_alpha * t
1268 // Dingfelder, in Chattanooga 2005 proceedings, p 4
1269
1270 G4double tElectron = 0.511/3728. * t;
1271 // The following values are provided by M. Dingfelder (priv. comm)
1272 G4double H = 2.*13.60569172 * eV;
1273 G4double value = std::sqrt ( 2. * tElectron / H ) / ( energyTransferred / H ) * (slaterEffectiveChg/shellNumber);
1274
1275 return value;
1276}

References eV.

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

◆ RandomizeEjectedElectronEnergy()

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

Definition at line 887 of file G4DNARuddIonisationExtendedModel.cc.

890{
891 //-- Fast sampling method -----
892 G4double proposed_energy;
893 G4double random1;
894 G4double value_sampling;
895 G4double max1;
896
897 do
898 {
899 proposed_energy = ProposedSampledEnergy(particleDefinition, k, shell); // Proposed energy by inverse function sampling
900
901 max1=0.;
902
903 for(G4double en=0.; en<20.; en+=1.) if(RejectionFunction(particleDefinition, k, en, shell) > max1)
904 max1=RejectionFunction(particleDefinition, k, en, shell);
905
906 random1 = G4UniformRand()*max1;
907
908 value_sampling = RejectionFunction(particleDefinition, k, proposed_energy, shell);
909
910 } while(random1 > value_sampling);
911
912 return(proposed_energy);
913}
G4double ProposedSampledEnergy(G4ParticleDefinition *particle, G4double k, G4int ionizationLevelIndex)
G4double RejectionFunction(G4ParticleDefinition *particle, G4double k, G4double proposed_ws, G4int ionizationLevelIndex)

References G4UniformRand, ProposedSampledEnergy(), and RejectionFunction().

Referenced by SampleSecondaries().

◆ RandomSelect()

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

Definition at line 1300 of file G4DNARuddIonisationExtendedModel.cc.

1301{
1302
1303 G4int level = 0;
1304
1305 // Retrieve data table corresponding to the current particle type
1306
1307 std::map< G4String,G4DNACrossSectionDataSet*,std::less<G4String> >::iterator pos;
1308 pos = tableData.find(particle);
1309
1310 if (pos != tableData.end())
1311 {
1312 G4DNACrossSectionDataSet* table = pos->second;
1313
1314 if (table != 0)
1315 {
1316 G4double* valuesBuffer = new G4double[table->NumberOfComponents()];
1317
1318 const size_t n(table->NumberOfComponents());
1319 size_t i(n);
1320 G4double value = 0.;
1321
1322 while (i>0)
1323 {
1324 i--;
1325 valuesBuffer[i] = table->GetComponent(i)->FindValue(k);
1326
1327 value += valuesBuffer[i];
1328 }
1329
1330 value *= G4UniformRand();
1331
1332 i = n;
1333
1334 while (i > 0)
1335 {
1336 i--;
1337
1338 if (valuesBuffer[i] > value)
1339 {
1340 delete[] valuesBuffer;
1341 return i;
1342 }
1343 value -= valuesBuffer[i];
1344 }
1345
1346 if (valuesBuffer) delete[] valuesBuffer;
1347
1348 }
1349 }
1350 else
1351 {
1352 G4Exception("G4DNARuddIonisationExtendedModel::RandomSelect","em0002",
1353 FatalException,"Model not applicable to particle type.");
1354 }
1355
1356 return level;
1357}
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().

◆ RejectionFunction()

G4double G4DNARuddIonisationExtendedModel::RejectionFunction ( G4ParticleDefinition particle,
G4double  k,
G4double  proposed_ws,
G4int  ionizationLevelIndex 
)
private

Definition at line 960 of file G4DNARuddIonisationExtendedModel.cc.

964{
965 const G4int j=ionizationLevelIndex;
966 G4double Bj_energy, alphaConst;
967 G4double Ry = 13.6*eV;
968 const G4double Gj[5] = {0.99, 1.11, 1.11, 0.52, 1.};
969
970 // const G4double Bj[5] = {12.61*eV, 14.73*eV, 18.55*eV, 32.20*eV, 539.7*eV}; //Ding Paper
971
972 // Following values provided by M. Dingfelder (priv. comm)
973 const G4double Bj[5] = {12.60*eV, 14.70*eV, 18.40*eV, 32.20*eV, 540*eV};
974
975 if (j == 4)
976 {
977 alphaConst = 0.66;
978 //---Note that the following (j==4) cases are provided by M. Dingfelder (priv. comm)
979 Bj_energy = waterStructure.IonisationEnergy(ionizationLevelIndex);
980 //---
981 }
982 else
983 {
984 alphaConst = 0.64;
985 Bj_energy = Bj[ionizationLevelIndex];
986 }
987
988 G4double energyTransfer = proposed_ws + Bj_energy;
989 proposed_ws/=Bj_energy;
990 G4DNAGenericIonsManager *instance;
992 G4double tau = 0.;
993 G4double A_ion = 0.;
994 tau = (electron_mass_c2 / particleDefinition->GetPDGMass()) * k;
995 A_ion = particleDefinition->GetAtomicMass();
996
997 G4double v2;
998 G4double beta2;
999
1000 if((tau/MeV)<5.447761194e-2)
1001 {
1002 v2 = tau / Bj_energy;
1003 beta2 = 2.*tau / electron_mass_c2;
1004 }
1005 // Relativistic
1006 else
1007 {
1008 v2 = (electron_mass_c2 / 2. / Bj_energy) * (1. - (1./ pow( (1.+ (tau/electron_mass_c2)),2) ));
1009 beta2 =1. - 1./(1.+ (tau/electron_mass_c2/A_ion))/(1.+ (tau/electron_mass_c2/A_ion));
1010 }
1011
1012 G4double v = std::sqrt(v2);
1013 G4double wc = 4.*v2 - 2.*v - (Ry/(4.*Bj_energy));
1014 G4double rejection_term = 1.+G4Exp(alphaConst*(proposed_ws - wc) / v);
1015 rejection_term = (1./rejection_term)*CorrectionFactor(particleDefinition,k,ionizationLevelIndex) * Gj[j];
1016 //* (S/Bj_energy) ; Not needed anymore
1017
1018 G4bool isHelium = false;
1019
1020 if ( particleDefinition == G4Proton::ProtonDefinition()
1021 || particleDefinition == instance->GetIon("hydrogen")
1022 )
1023 {
1024 return(rejection_term);
1025 }
1026
1027 else if(particleDefinition->GetAtomicMass() > 4) // anything above Helium
1028 {
1029 G4double Z = particleDefinition->GetAtomicNumber();
1030
1031 G4double x = 100.*std::sqrt(beta2)/std::pow(Z,(2./3.));
1032 G4double Zeffion = Z*(1.-G4Exp(-1.316*x+0.112*x*x-0.0650*x*x*x));
1033 rejection_term*=Zeffion*Zeffion;
1034 }
1035
1036 else if (particleDefinition == instance->GetIon("alpha++") )
1037 {
1038 isHelium = true;
1042 sCoefficient[0]=0.;
1043 sCoefficient[1]=0.;
1044 sCoefficient[2]=0.;
1045 }
1046
1047 else if (particleDefinition == instance->GetIon("alpha+") )
1048 {
1049 isHelium = true;
1050 slaterEffectiveCharge[0]=2.0;
1051 // The following values are provided by M. Dingfelder (priv. comm)
1052 slaterEffectiveCharge[1]=2.0;
1053 slaterEffectiveCharge[2]=2.0;
1054 //
1055 sCoefficient[0]=0.7;
1056 sCoefficient[1]=0.15;
1057 sCoefficient[2]=0.15;
1058 }
1059
1060 else if (particleDefinition == instance->GetIon("helium") )
1061 {
1062 isHelium = true;
1063 slaterEffectiveCharge[0]=1.7;
1064 slaterEffectiveCharge[1]=1.15;
1065 slaterEffectiveCharge[2]=1.15;
1066 sCoefficient[0]=0.5;
1067 sCoefficient[1]=0.25;
1068 sCoefficient[2]=0.25;
1069 }
1070
1071 // if ( particleDefinition == instance->GetIon("helium")
1072 // || particleDefinition == instance->GetIon("alpha+")
1073 // || particleDefinition == instance->GetIon("alpha++")
1074 // )
1075
1076 if (isHelium)
1077 {
1078
1079 G4double zEff = particleDefinition->GetPDGCharge() / eplus + particleDefinition->GetLeptonNumber();
1080
1081 zEff -= ( sCoefficient[0] * S_1s(k, energyTransfer, slaterEffectiveCharge[0], 1.) +
1082 sCoefficient[1] * S_2s(k, energyTransfer, slaterEffectiveCharge[1], 2.) +
1083 sCoefficient[2] * S_2p(k, energyTransfer, slaterEffectiveCharge[2], 2.) );
1084
1085 rejection_term*= zEff * zEff;
1086 }
1087
1088 return (rejection_term);
1089}
static constexpr double eplus
Definition: G4SIunits.hh:184
G4double CorrectionFactor(G4ParticleDefinition *particleDefinition, G4double k, G4int shell)
G4double S_2s(G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)
G4double S_1s(G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)
G4double S_2p(G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)

References CorrectionFactor(), source.hepunit::electron_mass_c2, eplus, eV, G4Exp(), G4ParticleDefinition::GetAtomicMass(), G4ParticleDefinition::GetAtomicNumber(), G4DNAGenericIonsManager::GetIon(), G4ParticleDefinition::GetLeptonNumber(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetPDGMass(), G4DNAGenericIonsManager::Instance(), G4DNAWaterIonisationStructure::IonisationEnergy(), MeV, G4Proton::ProtonDefinition(), S_1s(), S_2p(), S_2s(), sCoefficient, slaterEffectiveCharge, waterStructure, and Z.

Referenced by RandomizeEjectedElectronEnergy().

◆ S_1s()

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

Definition at line 1213 of file G4DNARuddIonisationExtendedModel.cc.

1217{
1218 // 1 - e^(-2r) * ( 1 + 2 r + 2 r^2)
1219 // Dingfelder, in Chattanooga 2005 proceedings, formula (7)
1220
1221 G4double r = R(t, energyTransferred, slaterEffectiveChg, shellNumber);
1222 G4double value = 1. - G4Exp(-2 * r) * ( ( 2. * r + 2. ) * r + 1. );
1223
1224 return value;
1225}
G4double R(G4double t, G4double energyTransferred, G4double slaterEffectiveChg, G4double shellNumber)

References G4Exp(), and R().

Referenced by RejectionFunction().

◆ S_2p()

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

Definition at line 1246 of file G4DNARuddIonisationExtendedModel.cc.

1250{
1251 // 1 - e^(-2 r) * ( 1 + 2 r + 2 r^2 + 4/3 r^3 + 2/3 r^4)
1252 // Dingfelder, in Chattanooga 2005 proceedings, formula (9)
1253
1254 G4double r = R(t, energyTransferred, slaterEffectiveChg, shellNumber);
1255 G4double value = 1. - G4Exp(-2 * r) * (((( 2./3. * r + 4./3.) * r + 2.) * r + 2.) * r + 1.);
1256
1257 return value;
1258}

References G4Exp(), and R().

Referenced by RejectionFunction().

◆ S_2s()

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

Definition at line 1229 of file G4DNARuddIonisationExtendedModel.cc.

1233{
1234 // 1 - e^(-2 r) * ( 1 + 2 r + 2 r^2 + 2 r^4)
1235 // Dingfelder, in Chattanooga 2005 proceedings, formula (8)
1236
1237 G4double r = R(t, energyTransferred, slaterEffectiveChg, shellNumber);
1238 G4double value = 1. - G4Exp(-2 * r) * (((2. * r * r + 2.) * r + 2.) * r + 1.);
1239
1240 return value;
1241
1242}

References G4Exp(), and R().

Referenced by RejectionFunction().

◆ SampleSecondaries()

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

Implements G4VEmModel.

Definition at line 672 of file G4DNARuddIonisationExtendedModel.cc.

677{
678 //SI: particle->GetDefinition()->GetParticleName() is for eg. Fe56
679 // particle->GetDefinition()->GetPDGMass() is correct
680 // particle->GetDefinition()->GetAtomicNumber() is correct
681 // particle->GetDefinition()->GetAtomicMass() is correct
682
683 if (verboseLevel > 3)
684 G4cout << "Calling SampleSecondaries() of G4DNARuddIonisationExtendedModel" << G4endl;
685
686 G4double lowLim = 0;
687 G4double highLim = 0;
688
689 // ZF: the following line summarizes the commented part
690
691 if(particle->GetDefinition()->GetAtomicMass() <= 4) lowLim = killBelowEnergyForA[particle->GetDefinition()->GetAtomicMass()];
692
693 else lowLim = killBelowEnergyForA[5]*particle->GetDefinition()->GetAtomicMass();
694
695 /*
696
697 if(particle->GetDefinition()->GetAtomicMass() >= 5) lowLim = killBelowEnergyForA[5]*particle->GetDefinition()->GetAtomicMass();
698
699 if ( particle->GetDefinition() == G4Proton::ProtonDefinition()
700 || particle->GetDefinition() == instance->GetIon("hydrogen")
701 )
702
703 lowLim = killBelowEnergyForA[1];
704
705 if ( particle->GetDefinition() == instance->GetIon("alpha++")
706 || particle->GetDefinition() == instance->GetIon("alpha+")
707 || particle->GetDefinition() == instance->GetIon("helium")
708 )
709
710 lowLim = killBelowEnergyForA[4];
711
712 */
713 //
714
715 G4double k = particle->GetKineticEnergy();
716
717 const G4String& particleName = particle->GetDefinition()->GetParticleName();
718
719 // SI - the following is useless since lowLim is already defined
720 /*
721 std::map< G4String,G4double,std::less<G4String> >::iterator pos1;
722 pos1 = lowEnergyLimit.find(particleName);
723
724 if (pos1 != lowEnergyLimit.end())
725 {
726 lowLim = pos1->second;
727 }
728 */
729
730 std::map< G4String,G4double,std::less<G4String> >::iterator pos2;
731 pos2 = highEnergyLimit.find(particleName);
732
733 if (pos2 != highEnergyLimit.end()) highLim = pos2->second;
734
735 if (k >= lowLim && k <= highLim)
736
737 // SI: no strict limits, like in the non extended version of the model
738 {
739 G4ParticleDefinition* definition = particle->GetDefinition();
740 G4ParticleMomentum primaryDirection = particle->GetMomentumDirection();
741 /*
742 G4double particleMass = definition->GetPDGMass();
743 G4double totalEnergy = k + particleMass;
744 G4double pSquare = k*(totalEnergy+particleMass);
745 G4double totalMomentum = std::sqrt(pSquare);
746 */
747
748 G4int ionizationShell = RandomSelect(k,particleName);
749
750 // sample deexcitation
751 // here we assume that H_{2}O electronic levels are the same as Oxygen.
752 // this can be considered true with a rough 10% error in energy on K-shell,
753
756
757 //SI: additional protection if tcs interpolation method is modified
758 if (k<bindingEnergy) return;
759 //
760
761 G4double secondaryKinetic = RandomizeEjectedElectronEnergy(definition,k,ionizationShell);
762
763 G4int Z = 8;
764
765 G4ThreeVector deltaDirection =
766 GetAngularDistribution()->SampleDirectionForShell(particle, secondaryKinetic,
767 Z, ionizationShell,
768 couple->GetMaterial());
769
770 G4DynamicParticle* dp = new G4DynamicParticle (G4Electron::Electron(),deltaDirection,secondaryKinetic) ;
771 fvect->push_back(dp);
772
774
775 // SI: the following lines are not needed anymore
776 /*
777 G4double cosTheta = 0.;
778 G4double phi = 0.;
779 RandomizeEjectedElectronDirection(definition, k,secondaryKinetic, cosTheta, phi, ionizationShell);
780
781 G4double sinTheta = std::sqrt(1.-cosTheta*cosTheta);
782 G4double dirX = sinTheta*std::cos(phi);
783 G4double dirY = sinTheta*std::sin(phi);
784 G4double dirZ = cosTheta;
785 G4ThreeVector deltaDirection(dirX,dirY,dirZ);
786 deltaDirection.rotateUz(primaryDirection);
787 */
788
789 // Ignored for ions on electrons
790 /*
791 G4double deltaTotalMomentum = std::sqrt(secondaryKinetic*(secondaryKinetic + 2.*electron_mass_c2 ));
792
793 G4double finalPx = totalMomentum*primaryDirection.x() - deltaTotalMomentum*deltaDirection.x();
794 G4double finalPy = totalMomentum*primaryDirection.y() - deltaTotalMomentum*deltaDirection.y();
795 G4double finalPz = totalMomentum*primaryDirection.z() - deltaTotalMomentum*deltaDirection.z();
796 G4double finalMomentum = std::sqrt(finalPx*finalPx+finalPy*finalPy+finalPz*finalPz);
797 finalPx /= finalMomentum;
798 finalPy /= finalMomentum;
799 finalPz /= finalMomentum;
800
801 G4ThreeVector direction;
802 direction.set(finalPx,finalPy,finalPz);
803
804 fParticleChangeForGamma->ProposeMomentumDirection(direction.unit()) ;
805 */
806
807 size_t secNumberInit = 0;// need to know at a certain point the energy of secondaries
808 size_t secNumberFinal = 0;// So I'll make the diference and then sum the energies
809
810 G4double scatteredEnergy = k-bindingEnergy-secondaryKinetic;
811
812 // SI: only atomic deexcitation from K shell is considered
813 if(fAtomDeexcitation && ionizationShell == 4)
814 {
815 const G4AtomicShell* shell
817 secNumberInit = fvect->size();
818 fAtomDeexcitation->GenerateParticles(fvect, shell, Z, 0, 0);
819 secNumberFinal = fvect->size();
820
821 if(secNumberFinal > secNumberInit)
822 {
823 for (size_t i=secNumberInit; i<secNumberFinal; ++i)
824 {
825 //Check if there is enough residual energy
826 if (bindingEnergy >= ((*fvect)[i])->GetKineticEnergy())
827 {
828 //Ok, this is a valid secondary: keep it
829 bindingEnergy -= ((*fvect)[i])->GetKineticEnergy();
830 }
831 else
832 {
833 //Invalid secondary: not enough energy to create it!
834 //Keep its energy in the local deposit
835 delete (*fvect)[i];
836 (*fvect)[i]=0;
837 }
838 }
839 }
840
841 }
842
843 //This should never happen
844 if(bindingEnergy < 0.0)
845 G4Exception("G4DNAEmfietzoglouIonisatioModel1::SampleSecondaries()",
846 "em2050",FatalException,"Negative local energy deposit");
847
848 //bindingEnergy has been decreased
849 //by the amount of energy taken away by deexc. products
850 if (!statCode)
851 {
854 }
855 else
856 {
859 }
860
861 // TEST //////////////////////////
862 // if (secondaryKinetic<0) abort();
863 // if (scatteredEnergy<0) abort();
864 // if (k-scatteredEnergy-secondaryKinetic-deexSecEnergy<0) abort();
865 // if (k-scatteredEnergy<0) abort();
867
868 const G4Track * theIncomingTrack = fParticleChangeForGamma->GetCurrentTrack();
870 ionizationShell,
871 theIncomingTrack);
872 }
873
874 // SI - not useful since low energy of model is 0 eV
875
876 if (k < lowLim)
877 {
881 }
882
883}
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(), G4ParticleDefinition::GetAtomicMass(), G4VAtomDeexcitation::GetAtomicShell(), G4ParticleChangeForGamma::GetCurrentTrack(), G4DynamicParticle::GetDefinition(), G4DynamicParticle::GetKineticEnergy(), G4MaterialCutsCouple::GetMaterial(), G4DynamicParticle::GetMomentumDirection(), G4ParticleDefinition::GetParticleName(), highEnergyLimit, G4DNAChemistryManager::Instance(), G4DNAWaterIonisationStructure::IonisationEnergy(), killBelowEnergyForA, G4VParticleChange::ProposeLocalEnergyDeposit(), G4ParticleChangeForGamma::ProposeMomentumDirection(), G4VParticleChange::ProposeTrackStatus(), 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 G4DNARuddIonisationExtendedModel::SelectStationary ( G4bool  input)
inline

Definition at line 171 of file G4DNARuddIonisationExtendedModel.hh.

172{
173 statCode = input;
174}

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(), G4DNARuddIonisationModel::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(), G4DNARuddIonisationModel::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(), Initialise(), G4DNARuddIonisationModel::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(), Initialise(), G4DNARuddIonisationModel::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 G4DNARuddIonisationExtendedModel::Sum ( G4double  energy,
const G4String particle 
)
private

Definition at line 1414 of file G4DNARuddIonisationExtendedModel.cc.

1415{
1416 return 0;
1417}

◆ 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* G4DNARuddIonisationExtendedModel::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* G4DNARuddIonisationExtendedModel::fParticleChangeForGamma
protected

◆ fpWaterDensity

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

◆ fTripletModel

G4VEmModel* G4VEmModel::fTripletModel = nullptr
privateinherited

◆ highEnergyLimit

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

◆ highLimit

G4double G4VEmModel::highLimit
privateinherited

◆ inveplus

G4double G4VEmModel::inveplus
protectedinherited

◆ isInitialised

G4bool G4DNARuddIonisationExtendedModel::isInitialised
private

Definition at line 91 of file G4DNARuddIonisationExtendedModel.hh.

Referenced by Initialise().

◆ isLocked

G4bool G4VEmModel::isLocked = false
privateinherited

◆ isMaster

G4bool G4VEmModel::isMaster = true
privateinherited

◆ killBelowEnergyForA

std::map<G4double,G4double> G4DNARuddIonisationExtendedModel::killBelowEnergyForA
private

◆ 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> > G4DNARuddIonisationExtendedModel::lowEnergyLimit
private

Definition at line 85 of file G4DNARuddIonisationExtendedModel.hh.

Referenced by Initialise(), and PartialCrossSection().

◆ lowEnergyLimitForA

std::map<G4double,G4double> G4DNARuddIonisationExtendedModel::lowEnergyLimitForA
private

◆ lowEnergyLimitOfModelForA

std::map<G4double,G4double> G4DNARuddIonisationExtendedModel::lowEnergyLimitOfModelForA
private

◆ 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 G4DNARuddIonisationExtendedModel::sCoefficient[3]
private

◆ secondaryThreshold

G4double G4VEmModel::secondaryThreshold = DBL_MAX
privateinherited

◆ slaterEffectiveCharge

G4double G4DNARuddIonisationExtendedModel::slaterEffectiveCharge[3]
private

◆ statCode

G4bool G4DNARuddIonisationExtendedModel::statCode
private

◆ tableData

MapData G4DNARuddIonisationExtendedModel::tableData
private

◆ tableFile

MapFile G4DNARuddIonisationExtendedModel::tableFile
private

Definition at line 97 of file G4DNARuddIonisationExtendedModel.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 G4DNARuddIonisationExtendedModel::verboseLevel
private

◆ waterStructure

G4DNAWaterIonisationStructure G4DNARuddIonisationExtendedModel::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: