Geant4-11
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes
G4GammaGeneralProcess Class Reference

#include <G4GammaGeneralProcess.hh>

Inheritance diagram for G4GammaGeneralProcess:
G4VEmProcess G4VDiscreteProcess G4VProcess

Public Member Functions

void ActivateForcedInteraction (G4double length=0.0, const G4String &r="", G4bool flag=true)
 
void ActivateSecondaryBiasing (const G4String &region, G4double factor, G4double energyLimit)
 
void AddEmModel (G4int, G4VEmModel *, const G4Region *region=nullptr)
 
void AddEmProcess (G4VEmProcess *)
 
void AddHadProcess (G4HadronicProcess *)
 
void AddMMProcess (G4GammaConversionToMuons *)
 
virtual G4VParticleChangeAlongStepDoIt (const G4Track &, const G4Step &)
 
virtual G4double AlongStepGetPhysicalInteractionLength (const G4Track &, G4double, G4double, G4double &, G4GPILSelection *)
 
G4double AlongStepGPIL (const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)
 
virtual G4VParticleChangeAtRestDoIt (const G4Track &, const G4Step &)
 
virtual G4double AtRestGetPhysicalInteractionLength (const G4Track &, G4ForceCondition *)
 
G4double AtRestGPIL (const G4Track &track, G4ForceCondition *condition)
 
void BuildPhysicsTable (const G4ParticleDefinition &) override
 
virtual void BuildWorkerPhysicsTable (const G4ParticleDefinition &part)
 
G4double ComputeCrossSectionPerAtom (G4double kineticEnergy, G4double Z, G4double A=0., G4double cut=0.0)
 
G4double CrossSectionBiasingFactor () const
 
G4double CrossSectionPerVolume (G4double kineticEnergy, const G4MaterialCutsCouple *couple, G4double logKinEnergy=DBL_MAX)
 
void CurrentSetup (const G4MaterialCutsCouple *, G4double energy)
 
virtual void DumpInfo () const
 
G4VEmModelEmModel (size_t index=0) const
 
virtual void EndTracking ()
 
std::vector< G4double > * EnergyOfCrossSectionMax () const
 
std::vector< G4double > * FindLambdaMax ()
 
 G4GammaGeneralProcess (const G4String &pname="GammaGeneralProc")
 
 G4GammaGeneralProcess (G4GammaGeneralProcess &)=delete
 
const G4ElementGetCurrentElement () const
 
G4double GetCurrentInteractionLength () const
 
const G4VEmModelGetCurrentModel () const
 
G4VEmProcessGetEmProcess (const G4String &name) override
 
G4double GetLambda (G4double kinEnergy, const G4MaterialCutsCouple *couple)
 
G4double GetLambda (G4double kinEnergy, const G4MaterialCutsCouple *couple, G4double logKinEnergy)
 
const G4VProcessGetMasterProcess () const
 
G4VEmModelGetModelByIndex (G4int idx=0, G4bool ver=false) const
 
G4double GetNumberOfInteractionLengthLeft () const
 
const G4StringGetPhysicsTableFileName (const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false)
 
G4double GetPILfactor () const
 
virtual const G4ProcessManagerGetProcessManager ()
 
const G4StringGetProcessName () const
 
G4int GetProcessSubType () const
 
G4ProcessType GetProcessType () const
 
const G4VProcessGetSelectedProcess () const
 
const G4StringGetSubProcessName () const
 
G4int GetSubProcessSubType () const
 
G4double GetTotalNumberOfInteractionLengthTraversed () const
 
G4int GetVerboseLevel () const
 
G4bool isAlongStepDoItIsEnabled () const
 
G4bool IsApplicable (const G4ParticleDefinition &) override
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool isPostStepDoItIsEnabled () const
 
G4PhysicsTableLambdaTable () const
 
G4PhysicsTableLambdaTablePrim () const
 
G4double MeanFreePath (const G4Track &track)
 
G4int NumberOfModels () const
 
G4bool operator!= (const G4VProcess &right) const
 
G4GammaGeneralProcessoperator= (const G4GammaGeneralProcess &right)=delete
 
G4bool operator== (const G4VProcess &right) const
 
const G4ParticleDefinitionParticle () const
 
G4VParticleChangePostStepDoIt (const G4Track &, const G4Step &) override
 
G4double PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) override
 
G4double PostStepGPIL (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
void PreparePhysicsTable (const G4ParticleDefinition &) override
 
virtual void PrepareWorkerPhysicsTable (const G4ParticleDefinition &)
 
void ProcessDescription (std::ostream &outFile) const override
 
virtual void ResetNumberOfInteractionLengthLeft ()
 
G4bool RetrievePhysicsTable (const G4ParticleDefinition *, const G4String &directory, G4bool ascii) override
 
const G4ParticleDefinitionSecondaryParticle () const
 
G4VEmModelSelectModelForMaterial (G4double kinEnergy, size_t idxCouple) const
 
void SetBuildTableFlag (G4bool val)
 
void SetCrossSectionBiasingFactor (G4double f, G4bool flag=true)
 
void SetCrossSectionType (G4CrossSectionType val)
 
void SetEmMasterProcess (const G4VEmProcess *)
 
void SetEmModel (G4VEmModel *, G4int index=0)
 
void SetEnergyOfCrossSectionMax (std::vector< G4double > *)
 
void SetLambdaBinning (G4int nbins)
 
virtual void SetMasterProcess (G4VProcess *masterP)
 
void SetMaxKinEnergy (G4double e)
 
void SetMinKinEnergy (G4double e)
 
void SetMinKinEnergyPrim (G4double e)
 
void SetPILfactor (G4double value)
 
virtual void SetProcessManager (const G4ProcessManager *)
 
void SetProcessSubType (G4int)
 
void SetProcessType (G4ProcessType)
 
void SetVerboseLevel (G4int value)
 
void StartTracking (G4Track *) override
 
G4bool StorePhysicsTable (const G4ParticleDefinition *, const G4String &directory, G4bool ascii=false) override
 
G4bool UseBaseMaterial () const
 
 ~G4GammaGeneralProcess () override
 

Static Public Member Functions

static const G4StringGetProcessTypeName (G4ProcessType)
 

Protected Member Functions

G4bool ApplyCuts () const
 
void ClearNumberOfInteractionLengthLeft ()
 
G4double ComputeGeneralLambda (size_t idxe, size_t idxt)
 
G4CrossSectionType CrossSectionType () const
 
size_t CurrentMaterialCutsCoupleIndex () const
 
void DefineMaterial (const G4MaterialCutsCouple *couple)
 
G4double DensityFactor (G4int idx) const
 
G4int DensityIndex (G4int idx) const
 
G4double GetElectronEnergyCut ()
 
G4double GetGammaEnergyCut ()
 
G4double GetMeanFreePath (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) override
 
G4ParticleChangeForGammaGetParticleChange ()
 
G4double GetProbability (size_t idxt)
 
const G4ElementGetTargetElement () const
 
const G4IsotopeGetTargetIsotope () const
 
void InitialiseProcess (const G4ParticleDefinition *) override
 
G4int LambdaBinning () const
 
G4PhysicsVectorLambdaPhysicsVector (const G4MaterialCutsCouple *)
 
const G4MaterialCutsCoupleMaterialCutsCouple () const
 
G4double MaxKinEnergy () const
 
G4double MinKinEnergy () const
 
virtual G4double MinPrimaryEnergy (const G4ParticleDefinition *, const G4Material *)
 
G4double PolarAngleLimit () const
 
G4double RecalculateLambda (G4double kinEnergy, const G4MaterialCutsCouple *couple)
 
void SelectedProcess (const G4Step &step, G4VProcess *ptr)
 
void SelectEmProcess (const G4Step &, G4VEmProcess *)
 
void SelectHadProcess (const G4Track &, const G4Step &, G4HadronicProcess *)
 
G4VEmModelSelectModel (G4double kinEnergy, size_t)
 
void SetParticle (const G4ParticleDefinition *p)
 
void SetSecondaryParticle (const G4ParticleDefinition *p)
 
void SetSplineFlag (G4bool val)
 
void SetStartFromNullFlag (G4bool val)
 
virtual void StreamProcessInfo (std::ostream &) const
 
void SubtractNumberOfInteractionLengthLeft (G4double prevStepSize)
 
G4double TotalCrossSectionPerVolume ()
 

Protected Attributes

G4ParticleChange aParticleChange
 
const G4ProcessManageraProcessManager = nullptr
 
G4int augerID = _AugerElectron
 
size_t basedCoupleIndex = 0
 
G4bool baseMat = false
 
G4int biasID = _EM
 
G4EmBiasingManagerbiasManager = nullptr
 
size_t coupleIdxLambda = 0
 
const G4MaterialCutsCouplecurrentCouple = nullptr
 
size_t currentCoupleIndex = 0
 
G4double currentInteractionLength = -1.0
 
const G4MaterialcurrentMaterial = nullptr
 
G4bool enableAlongStepDoIt = true
 
G4bool enableAtRestDoIt = true
 
G4bool enablePostStepDoIt = true
 
G4double factor = 1.0
 
G4int fluoID = _Fluorescence
 
G4ParticleChangeForGamma fParticleChange
 
size_t idxLambda = 0
 
G4bool isTheMaster = true
 
G4int mainSecondaries = 1
 
G4double mfpKinEnergy = DBL_MAX
 
G4VParticleChangepParticleChange = nullptr
 
G4double preStepKinEnergy = 0.0
 
G4double preStepLambda = 0.0
 
G4double preStepLogE = 1.0
 
G4double preStepLogKinEnergy = LOG_EKIN_MIN
 
G4int secID = _EM
 
std::vector< G4DynamicParticle * > secParticles
 
G4VProcessselectedProc = nullptr
 
std::vector< G4double > * theEnergyOfCrossSectionMax = nullptr
 
G4HadronicProcesstheGammaNuclear = nullptr
 
G4double theInitialNumberOfInteractionLength = -1.0
 
G4double theNumberOfInteractionLengthLeft = -1.0
 
G4String thePhysicsTableFileName
 
G4double thePILfactor = 1.0
 
G4String theProcessName
 
G4int theProcessSubType = -1
 
G4ProcessType theProcessType = fNotDefined
 
G4int tripletID = _TripletElectron
 
G4int verboseLevel = 0
 

Private Member Functions

void BuildLambdaTable ()
 
void Clear ()
 
G4double ComputeCurrentLambda (G4double kinEnergy)
 
void ComputeIntegralLambda (G4double kinEnergy, G4double logKinEnergy)
 
G4double GetCurrentLambda (G4double kinEnergy)
 
G4double GetCurrentLambda (G4double kinEnergy, G4double logKinEnergy)
 
G4double GetLambdaFromTable (G4double kinEnergy)
 
G4double GetLambdaFromTable (G4double kinEnergy, G4double logKinEnergy)
 
G4double GetLambdaFromTablePrim (G4double kinEnergy)
 
G4double GetLambdaFromTablePrim (G4double kinEnergy, G4double logKinEnergy)
 
void PrintWarning (G4String tit, G4double val)
 
G4bool RetrieveTable (G4VEmProcess *, const G4String &directory, G4bool ascii)
 
void StreamInfo (std::ostream &outFile, const G4ParticleDefinition &, G4bool rst=false) const
 

Private Attributes

G4bool actBinning = false
 
G4bool actMaxKinEnergy = false
 
G4bool actMinKinEnergy = false
 
G4bool applyCuts = false
 
const G4MaterialbaseMaterial = nullptr
 
G4double biasFactor = 1.0
 
G4bool biasFlag = false
 
G4bool buildLambdaTable = true
 
G4VEmModelcurrentModel = nullptr
 
const G4ParticleDefinitioncurrentParticle = nullptr
 
std::vector< G4VEmModel * > emModels
 
G4double fFactor = 1.0
 
G4double fLambda = 0.0
 
G4double fLambdaEnergy = 0.0
 
G4ProcessTablefProcessTable = nullptr
 
G4CrossSectionType fXSType = fEmNoIntegral
 
size_t idxEnergy = 0
 
G4bool isIon = false
 
G4double lambdaFactor = 0.8
 
G4LossTableManagerlManager = nullptr
 
G4double logLambdaFactor
 
G4double massRatio = 1.0
 
const G4VEmProcessmasterProc = nullptr
 
G4VProcessmasterProcessShadow = nullptr
 
G4double maxKinEnergy
 
G4double minEEEnergy
 
G4double minKinEnergy
 
G4double minKinEnergyPrim = DBL_MAX
 
G4double minMMEnergy
 
G4double minPEEnergy
 
G4EmModelManagermodelManager = nullptr
 
size_t nHighE = 50
 
G4int nLambdaBins = 84
 
size_t nLowE = 40
 
G4int numberOfModels = 0
 
const G4ParticleDefinitionparticle = nullptr
 
G4double peLambda = 0.0
 
const G4ParticleDefinitionsecondaryParticle = nullptr
 
G4bool splineFlag = false
 
G4bool startFromNull = false
 
G4VEmProcesstheCompton = nullptr
 
G4VEmProcesstheConversionEE = nullptr
 
G4GammaConversionToMuonstheConversionMM = nullptr
 
const std::vector< G4double > * theCuts = nullptr
 
const std::vector< G4double > * theCutsElectron = nullptr
 
const std::vector< G4double > * theCutsGamma = nullptr
 
const std::vector< G4double > * theCutsPositron = nullptr
 
G4EmDataHandlertheData = nullptr
 
const std::vector< G4double > * theDensityFactor = nullptr
 
const std::vector< G4int > * theDensityIdx = nullptr
 
const G4ParticleDefinitiontheElectron = nullptr
 
const G4ParticleDefinitiontheGamma = nullptr
 
G4PhysicsTabletheLambdaTable = nullptr
 
G4PhysicsTabletheLambdaTablePrim = nullptr
 
G4EmParameterstheParameters = nullptr
 
G4VEmProcessthePhotoElectric = nullptr
 
const G4ParticleDefinitionthePositron = nullptr
 
G4VEmProcesstheRayleigh = nullptr
 
G4bool weightFlag = false
 

Static Private Attributes

static G4String nameT [nTables]
 
static const size_t nTables = 15
 
static G4EmDataHandlertheHandler = nullptr
 
static G4bool theT [nTables]
 

Detailed Description

Definition at line 64 of file G4GammaGeneralProcess.hh.

Constructor & Destructor Documentation

◆ G4GammaGeneralProcess() [1/2]

G4GammaGeneralProcess::G4GammaGeneralProcess ( const G4String pname = "GammaGeneralProc")
explicit

Definition at line 86 of file G4GammaGeneralProcess.cc.

86 :
91{
95}
@ fGammaGeneralProcess
@ fElectromagnetic
static G4Gamma * Gamma()
Definition: G4Gamma.cc:85
G4VEmProcess(const G4String &name, G4ProcessType type=fElectromagnetic)
Definition: G4VEmProcess.cc:79
void SetParticle(const G4ParticleDefinition *p)
void SetVerboseLevel(G4int value)
Definition: G4VProcess.hh:412
void SetProcessSubType(G4int)
Definition: G4VProcess.hh:406
static constexpr double electron_mass_c2
static constexpr double keV
static constexpr double MeV
string pname
Definition: eplot.py:33

References fGammaGeneralProcess, G4Gamma::Gamma(), G4VEmProcess::SetParticle(), G4VProcess::SetProcessSubType(), and G4VProcess::SetVerboseLevel().

◆ ~G4GammaGeneralProcess()

G4GammaGeneralProcess::~G4GammaGeneralProcess ( )
override

Definition at line 99 of file G4GammaGeneralProcess.cc.

100{
101 if(isTheMaster) {
102 delete theHandler;
103 theHandler = nullptr;
104 }
105}
static G4EmDataHandler * theHandler
G4bool isTheMaster

References G4VEmProcess::isTheMaster, and theHandler.

◆ G4GammaGeneralProcess() [2/2]

G4GammaGeneralProcess::G4GammaGeneralProcess ( G4GammaGeneralProcess )
delete

Member Function Documentation

◆ ActivateForcedInteraction()

void G4VEmProcess::ActivateForcedInteraction ( G4double  length = 0.0,
const G4String r = "",
G4bool  flag = true 
)
inherited

Definition at line 1129 of file G4VEmProcess.cc.

1131{
1132 if(nullptr == biasManager) { biasManager = new G4EmBiasingManager(); }
1133 if(1 < verboseLevel) {
1134 G4cout << "### ActivateForcedInteraction: for "
1136 << " and process " << GetProcessName()
1137 << " length(mm)= " << length/mm
1138 << " in G4Region <" << r
1139 << "> weightFlag= " << flag
1140 << G4endl;
1141 }
1142 weightFlag = flag;
1144}
static constexpr double mm
Definition: G4SIunits.hh:95
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
void ActivateForcedInteraction(G4double length=0.0, const G4String &r="")
const G4String & GetParticleName() const
G4EmBiasingManager * biasManager
G4bool weightFlag
const G4ParticleDefinition * particle
G4int verboseLevel
Definition: G4VProcess.hh:356
const G4String & GetProcessName() const
Definition: G4VProcess.hh:382

References G4EmBiasingManager::ActivateForcedInteraction(), G4VEmProcess::biasManager, G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), mm, G4VEmProcess::particle, G4VProcess::verboseLevel, and G4VEmProcess::weightFlag.

Referenced by G4EmExtraParameters::DefineRegParamForEM().

◆ ActivateSecondaryBiasing()

void G4VEmProcess::ActivateSecondaryBiasing ( const G4String region,
G4double  factor,
G4double  energyLimit 
)
inherited

Definition at line 1149 of file G4VEmProcess.cc.

1152{
1153 if (0.0 <= factor) {
1154
1155 // Range cut can be applied only for e-
1156 if(0.0 == factor && secondaryParticle != G4Electron::Electron())
1157 { return; }
1158
1160 biasManager->ActivateSecondaryBiasing(region, factor, energyLimit);
1161 if(1 < verboseLevel) {
1162 G4cout << "### ActivateSecondaryBiasing: for "
1163 << " process " << GetProcessName()
1164 << " factor= " << factor
1165 << " in G4Region <" << region
1166 << "> energyLimit(MeV)= " << energyLimit/MeV
1167 << G4endl;
1168 }
1169 }
1170}
static constexpr double MeV
Definition: G4SIunits.hh:200
static G4Electron * Electron()
Definition: G4Electron.cc:93
void ActivateSecondaryBiasing(const G4String &region, G4double factor, G4double energyLimit)
const G4ParticleDefinition * secondaryParticle

References G4EmBiasingManager::ActivateSecondaryBiasing(), G4VEmProcess::biasManager, G4Electron::Electron(), G4cout, G4endl, G4VProcess::GetProcessName(), MeV, G4VEmProcess::secondaryParticle, and G4VProcess::verboseLevel.

Referenced by G4EmExtraParameters::DefineRegParamForEM().

◆ AddEmModel()

void G4VEmProcess::AddEmModel ( G4int  order,
G4VEmModel ptr,
const G4Region region = nullptr 
)
inherited

Definition at line 146 of file G4VEmProcess.cc.

148{
149 if(nullptr == ptr) { return; }
150 G4VEmFluctuationModel* fm = nullptr;
151 modelManager->AddEmModel(order, ptr, fm, region);
153}
void AddEmModel(G4int, G4VEmModel *, G4VEmFluctuationModel *fm, const G4Region *r)
void SetParticleChange(G4VParticleChange *, G4VEmFluctuationModel *f=nullptr)
Definition: G4VEmModel.cc:447
G4EmModelManager * modelManager
G4VParticleChange * pParticleChange
Definition: G4VProcess.hh:321

References G4EmModelManager::AddEmModel(), G4VEmProcess::modelManager, G4VProcess::pParticleChange, and G4VEmModel::SetParticleChange().

Referenced by LBE::ConstructEM(), G4EmDNAPhysics_option7::ConstructProcess(), G4EmDNAPhysics_option8::ConstructProcess(), G4EmLivermorePhysics::ConstructProcess(), G4EmPenelopePhysics::ConstructProcess(), G4EmStandardPhysics_option4::ConstructProcess(), G4DNAAttachment::InitialiseProcess(), G4DNAChargeDecrease::InitialiseProcess(), G4DNAChargeIncrease::InitialiseProcess(), G4DNADissociation::InitialiseProcess(), G4DNAElastic::InitialiseProcess(), G4DNAElectronSolvation::InitialiseProcess(), G4DNAExcitation::InitialiseProcess(), G4DNAIonisation::InitialiseProcess(), G4DNAPlasmonExcitation::InitialiseProcess(), G4DNAPositronium::InitialiseProcess(), G4DNARotExcitation::InitialiseProcess(), G4DNAVibExcitation::InitialiseProcess(), G4NuclearStopping::InitialiseProcess(), G4eeToHadrons::InitialiseProcess(), G4JAEAElasticScattering::InitialiseProcess(), G4MicroElecElastic::InitialiseProcess(), G4MicroElecInelastic::InitialiseProcess(), G4MicroElecLOPhononScattering::InitialiseProcess(), G4RayleighScattering::InitialiseProcess(), G4PolarizedCompton::InitialiseProcess(), G4PolarizedGammaConversion::InitialiseProcess(), G4PolarizedPhotoElectric::InitialiseProcess(), G4ComptonScattering::InitialiseProcess(), G4CoulombScattering::InitialiseProcess(), G4eplusAnnihilation::InitialiseProcess(), G4GammaConversion::InitialiseProcess(), G4PhotoElectricEffect::InitialiseProcess(), G4EmConfigurator::PrepareModels(), and G4EmConfigurator::SetModelForRegion().

◆ AddEmProcess()

void G4GammaGeneralProcess::AddEmProcess ( G4VEmProcess ptr)

Definition at line 116 of file G4GammaGeneralProcess.cc.

117{
118 if(nullptr == ptr) { return; }
119 G4int stype = ptr->GetProcessSubType();
120 if(stype == fRayleigh) { theRayleigh = ptr; }
121 else if(stype == fPhotoElectricEffect) { thePhotoElectric = ptr; }
122 else if(stype == fComptonScattering) { theCompton = ptr; }
123 else if(stype == fGammaConversion) { theConversionEE = ptr; }
124}
@ fGammaConversion
@ fRayleigh
@ fComptonScattering
@ fPhotoElectricEffect
int G4int
Definition: G4Types.hh:85
G4int GetProcessSubType() const
Definition: G4VProcess.hh:400

References fComptonScattering, fGammaConversion, fPhotoElectricEffect, fRayleigh, G4VProcess::GetProcessSubType(), theCompton, theConversionEE, thePhotoElectric, and theRayleigh.

◆ AddHadProcess()

void G4GammaGeneralProcess::AddHadProcess ( G4HadronicProcess ptr)

Definition at line 135 of file G4GammaGeneralProcess.cc.

136{
137 theGammaNuclear = ptr;
138}
G4HadronicProcess * theGammaNuclear

References theGammaNuclear.

Referenced by G4EmExtraPhysics::ConstructGammaElectroNuclear().

◆ AddMMProcess()

void G4GammaGeneralProcess::AddMMProcess ( G4GammaConversionToMuons ptr)

Definition at line 128 of file G4GammaGeneralProcess.cc.

129{
130 theConversionMM = ptr;
131}
G4GammaConversionToMuons * theConversionMM

References theConversionMM.

◆ AlongStepDoIt()

virtual G4VParticleChange * G4VDiscreteProcess::AlongStepDoIt ( const G4Track ,
const G4Step  
)
inlinevirtualinherited

Implements G4VProcess.

Reimplemented in G4NuclearStopping.

Definition at line 90 of file G4VDiscreteProcess.hh.

93 { return 0; }

◆ AlongStepGetPhysicalInteractionLength()

virtual G4double G4VDiscreteProcess::AlongStepGetPhysicalInteractionLength ( const G4Track ,
G4double  ,
G4double  ,
G4double ,
G4GPILSelection  
)
inlinevirtualinherited

Implements G4VProcess.

Reimplemented in G4NuclearStopping.

Definition at line 70 of file G4VDiscreteProcess.hh.

76 { return -1.0; }

◆ AlongStepGPIL()

G4double G4VProcess::AlongStepGPIL ( const G4Track track,
G4double  previousStepSize,
G4double  currentMinimumStep,
G4double proposedSafety,
G4GPILSelection selection 
)
inlineinherited

Definition at line 461 of file G4VProcess.hh.

466{
467 return AlongStepGetPhysicalInteractionLength(track, previousStepSize,
468 currentMinimumStep, proposedSafety, selection);
469}
virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)=0

References G4VProcess::AlongStepGetPhysicalInteractionLength().

Referenced by G4SteppingManager::DefinePhysicalStepLength(), and G4ITStepProcessor::DoDefinePhysicalStepLength().

◆ ApplyCuts()

G4bool G4VEmProcess::ApplyCuts ( ) const
inlineprotectedinherited

Definition at line 459 of file G4VEmProcess.hh.

460{
461 return applyCuts;
462}
G4bool applyCuts

References G4VEmProcess::applyCuts.

Referenced by G4eplusAnnihilation::AtRestDoIt().

◆ AtRestDoIt()

virtual G4VParticleChange * G4VDiscreteProcess::AtRestDoIt ( const G4Track ,
const G4Step  
)
inlinevirtualinherited

Implements G4VProcess.

Reimplemented in G4HadronStoppingProcess, and G4eplusAnnihilation.

Definition at line 85 of file G4VDiscreteProcess.hh.

88 { return 0; }

◆ AtRestGetPhysicalInteractionLength()

virtual G4double G4VDiscreteProcess::AtRestGetPhysicalInteractionLength ( const G4Track ,
G4ForceCondition  
)
inlinevirtualinherited

Implements G4VProcess.

Reimplemented in G4HadronStoppingProcess, and G4eplusAnnihilation.

Definition at line 78 of file G4VDiscreteProcess.hh.

81 { return -1.0; }

◆ AtRestGPIL()

G4double G4VProcess::AtRestGPIL ( const G4Track track,
G4ForceCondition condition 
)
inlineinherited

Definition at line 472 of file G4VProcess.hh.

474{
476}
G4double condition(const G4ErrorSymMatrix &m)
G4double thePILfactor
Definition: G4VProcess.hh:352
virtual G4double AtRestGetPhysicalInteractionLength(const G4Track &track, G4ForceCondition *condition)=0

References G4VProcess::AtRestGetPhysicalInteractionLength(), condition(), and G4VProcess::thePILfactor.

Referenced by G4ITStepProcessor::GetAtRestIL(), and G4SteppingManager::InvokeAtRestDoItProcs().

◆ BuildLambdaTable()

void G4VEmProcess::BuildLambdaTable ( )
privateinherited

Definition at line 387 of file G4VEmProcess.cc.

388{
389 if(1 < verboseLevel) {
390 G4cout << "G4EmProcess::BuildLambdaTable() for process "
391 << GetProcessName() << " and particle "
392 << particle->GetParticleName() << " " << this
393 << G4endl;
394 }
395
396 // Access to materials
397 const G4ProductionCutsTable* theCoupleTable=
399 size_t numOfCouples = theCoupleTable->GetTableSize();
400
402
403 G4PhysicsLogVector* aVector = nullptr;
404 G4PhysicsLogVector* aVectorPrim = nullptr;
405 G4PhysicsLogVector* bVectorPrim = nullptr;
406
408 G4int nbin =
409 theParameters->NumberOfBinsPerDecade()*G4lrint(std::log10(scale));
410 scale = G4Log(scale);
411 if(actBinning) { nbin = std::max(nbin, nLambdaBins); }
413
414 for(size_t i=0; i<numOfCouples; ++i) {
415
416 if (bld->GetFlag(i)) {
417
418 // create physics vector and fill it
419 const G4MaterialCutsCouple* couple =
420 theCoupleTable->GetMaterialCutsCouple(i);
421
422 // build main table
423 if(buildLambdaTable) {
424 delete (*theLambdaTable)[i];
425
426 // if start from zero then change the scale
427 G4double emin = minKinEnergy;
428 G4bool startNull = false;
429 if(startFromNull) {
431 if(e >= emin) {
432 emin = e;
433 startNull = true;
434 }
435 }
436 G4double emax = emax1;
437 if(emax <= emin) { emax = 2*emin; }
438 G4int bin = G4lrint(nbin*G4Log(emax/emin)/scale);
439 if(bin < 3) { bin = 3; }
440 aVector = new G4PhysicsLogVector(emin, emax, bin, splineFlag);
441 modelManager->FillLambdaVector(aVector, couple, startNull);
442 if(splineFlag) { aVector->FillSecondDerivatives(); }
444 }
445 // build high energy table
447 delete (*theLambdaTablePrim)[i];
448
449 // start not from zero and always use spline
450 if(!bVectorPrim) {
452 if(bin < 3) { bin = 3; }
453 aVectorPrim =
455 bVectorPrim = aVectorPrim;
456 } else {
457 aVectorPrim = new G4PhysicsLogVector(*bVectorPrim);
458 }
459 modelManager->FillLambdaVector(aVectorPrim, couple, false,
461 aVectorPrim->FillSecondDerivatives();
463 aVectorPrim);
464 }
465 }
466 }
467
468 if(1 < verboseLevel) {
469 G4cout << "Lambda table is built for "
471 << G4endl;
472 }
473}
static const G4double emax
@ fIsCrossSectionPrim
G4double G4Log(G4double x)
Definition: G4Log.hh:226
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
void FillLambdaVector(G4PhysicsVector *, const G4MaterialCutsCouple *, G4bool startFromNull=true, G4EmTableType t=fRestricted)
G4double MinKinEnergy() const
G4int NumberOfBinsPerDecade() const
G4double MaxKinEnergy() const
G4bool GetFlag(size_t idx)
G4LossTableBuilder * GetTableBuilder()
const G4Material * GetMaterial() const
static void SetPhysicsVector(G4PhysicsTable *physTable, std::size_t idx, G4PhysicsVector *vec)
void FillSecondDerivatives(const G4SplineType=G4SplineType::Base, const G4double dir1=0.0, const G4double dir2=0.0)
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
std::size_t GetTableSize() const
static G4ProductionCutsTable * GetProductionCutsTable()
G4double maxKinEnergy
G4LossTableManager * lManager
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition *, const G4Material *)
G4bool splineFlag
G4PhysicsTable * theLambdaTablePrim
G4bool actBinning
G4bool startFromNull
G4EmParameters * theParameters
G4double minKinEnergyPrim
G4bool buildLambdaTable
G4PhysicsTable * theLambdaTable
G4double minKinEnergy
T max(const T t1, const T t2)
brief Return the largest of the two arguments
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
int G4lrint(double ad)
Definition: templates.hh:134

References G4VEmProcess::actBinning, G4VEmProcess::buildLambdaTable, emax, G4EmModelManager::FillLambdaVector(), G4PhysicsVector::FillSecondDerivatives(), fIsCrossSectionPrim, G4cout, G4endl, G4Log(), G4lrint(), G4LossTableBuilder::GetFlag(), G4MaterialCutsCouple::GetMaterial(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4ProductionCutsTable::GetProductionCutsTable(), G4LossTableManager::GetTableBuilder(), G4ProductionCutsTable::GetTableSize(), G4VEmProcess::lManager, G4INCL::Math::max(), G4EmParameters::MaxKinEnergy(), G4VEmProcess::maxKinEnergy, G4INCL::Math::min(), G4EmParameters::MinKinEnergy(), G4VEmProcess::minKinEnergy, G4VEmProcess::minKinEnergyPrim, G4VEmProcess::MinPrimaryEnergy(), G4VEmProcess::modelManager, G4VEmProcess::nLambdaBins, G4EmParameters::NumberOfBinsPerDecade(), G4VEmProcess::particle, G4PhysicsTableHelper::SetPhysicsVector(), G4VEmProcess::splineFlag, G4VEmProcess::startFromNull, G4VEmProcess::theLambdaTable, G4VEmProcess::theLambdaTablePrim, G4VEmProcess::theParameters, and G4VProcess::verboseLevel.

Referenced by G4VEmProcess::BuildPhysicsTable().

◆ BuildPhysicsTable()

void G4GammaGeneralProcess::BuildPhysicsTable ( const G4ParticleDefinition part)
overridevirtual

Reimplemented from G4VProcess.

Definition at line 252 of file G4GammaGeneralProcess.cc.

253{
254 if(1 < verboseLevel) {
255 G4cout << "### G4VEmProcess::BuildPhysicsTable() for "
256 << GetProcessName()
257 << " and particle " << part.GetParticleName()
258 << G4endl;
259 }
260 if(!isTheMaster) {
263 }
265
266 if(!isTheMaster) {
268 }
270
271 if(!isTheMaster) {
273 }
275
276 if(theRayleigh != nullptr) {
277 if(!isTheMaster) {
279 }
281 }
282 if(theGammaNuclear != nullptr) { theGammaNuclear->BuildPhysicsTable(part); }
283 if(theConversionMM != nullptr) { theConversionMM->BuildPhysicsTable(part); }
284
285 if(isTheMaster) {
286 const G4ProductionCutsTable* theCoupleTable=
288 size_t numOfCouples = theCoupleTable->GetTableSize();
289
291 const std::vector<G4PhysicsTable*>& tables = theHandler->GetTables();
292
295 G4DynamicParticle* dynParticle =
297
298 G4double sigComp(0.), sigPE(0.), sigConv(0.), sigR(0.),
299 sigN(0.), sigM(0.), val(0.);
300
301 for(size_t i=0; i<numOfCouples; ++i) {
302
303 if (bld->GetFlag(i)) {
304
305 G4int idx = (!baseMat) ? i : DensityIndex(i);
306 const G4MaterialCutsCouple* couple =
307 theCoupleTable->GetMaterialCutsCouple(i);
308 const G4Material* material = couple->GetMaterial();
309
310 // energy interval 0
311 size_t nn = (*(tables[0]))[idx]->GetVectorLength();
312 if(1 < verboseLevel) {
313 G4cout << "======= Zone 0 ======= N= " << nn
314 << " for " << material->GetName() << G4endl;
315 }
316 for(size_t j=0; j<nn; ++j) {
317 G4double e = (*(tables[0]))[idx]->Energy(j);
318 G4double loge = G4Log(e);
319 sigComp = theCompton->GetLambda(e, couple, loge);
320 sigR = (nullptr != theRayleigh) ?
321 theRayleigh->GetLambda(e, couple, loge) : 0.0;
322 G4double sum = sigComp + sigR;
323 if(1 < verboseLevel) {
324 G4cout << j << ". E= " << e << " xs= " << sum
325 << " compt= " << sigComp << " Rayl= " << sigR << G4endl;
326 }
327 (*(tables[0]))[idx]->PutValue(j, sum);
328 if(theT[1]) {
329 val = sigR/sum;
330 (*(tables[1]))[idx]->PutValue(j, val);
331 }
332 }
333
334 // energy interval 1
335 nn = (*(tables[2]))[idx]->GetVectorLength();
336 if(1 < verboseLevel) {
337 G4cout << "======= Zone 1 ======= N= " << nn << G4endl;
338 }
339 for(size_t j=0; j<nn; ++j) {
340 G4double e = (*(tables[2]))[idx]->Energy(j);
341 G4double loge = G4Log(e);
342 sigComp = theCompton->GetLambda(e, couple, loge);
343 sigR = (nullptr != theRayleigh) ?
344 theRayleigh->GetLambda(e, couple, loge) : 0.0;
345 sigPE = thePhotoElectric->GetLambda(e, couple, loge);
346 G4double sum = sigComp + sigR + sigPE;
347 if(1 < verboseLevel) {
348 G4cout << j << ". E= " << e << " xs= " << sum
349 << " compt= " << sigComp << " conv= " << sigConv
350 << " PE= " << sigPE << " Rayl= " << sigR
351 << " GN= " << sigN << G4endl;
352 }
353 (*(tables[2]))[idx]->PutValue(j, sum);
354
355 val = sigPE/sum;
356 (*(tables[3]))[idx]->PutValue(j, val);
357
358 val = (sigR > 0.0) ? (sigComp + sigPE)/sum : 1.0;
359 (*(tables[4]))[idx]->PutValue(j, val);
360 }
361
362 // energy interval 2
363 nn = (*(tables[6]))[idx]->GetVectorLength();
364 if(1 < verboseLevel) {
365 G4cout << "======= Zone 2 ======= N= " << nn << G4endl;
366 }
367 for(size_t j=0; j<nn; ++j) {
368 G4double e = (*(tables[6]))[idx]->Energy(j);
369 G4double loge = G4Log(e);
370 sigComp = theCompton->GetLambda(e, couple, loge);
371 sigConv = theConversionEE->GetLambda(e, couple, loge);
372 sigPE = thePhotoElectric->GetLambda(e, couple, loge);
373 sigN = 0.0;
374 if(nullptr != gn) {
375 dynParticle->SetKineticEnergy(e);
376 sigN = gn->ComputeCrossSection(dynParticle, material);
377 }
378 G4double sum = sigComp + sigConv + sigPE + sigN;
379 if(1 < verboseLevel) {
380 G4cout << j << ". E= " << e << " xs= " << sum
381 << " compt= " << sigComp << " conv= " << sigConv
382 << " PE= " << sigPE
383 << " GN= " << sigN << G4endl;
384 }
385 (*(tables[6]))[idx]->PutValue(j, sum);
386
387 val = sigConv/sum;
388 (*(tables[7]))[idx]->PutValue(j, val);
389
390 val = (sigConv + sigComp)/sum;
391 (*(tables[8]))[idx]->PutValue(j, val);
392
393 val = (sigN > 0.0) ? (sigConv + sigComp + sigPE)/sum : 1.0;
394 (*(tables[9]))[idx]->PutValue(j, val);
395 }
396
397 // energy interval 3
398 nn = (*(tables[10]))[idx]->GetVectorLength();
399 if(1 < verboseLevel) {
400 G4cout << "======= Zone 3 ======= N= " << nn
401 << " for " << material->GetName() << G4endl;
402 }
403 for(size_t j=0; j<nn; ++j) {
404 G4double e = (*(tables[10]))[idx]->Energy(j);
405 G4double loge = G4Log(e);
406 sigComp = theCompton->GetLambda(e, couple, loge);
407 sigConv = theConversionEE->GetLambda(e, couple, loge);
408 sigPE = thePhotoElectric->GetLambda(e, couple, loge);
409 sigN = 0.0;
410 if(nullptr != gn) {
411 dynParticle->SetKineticEnergy(e);
412 sigN = gn->ComputeCrossSection(dynParticle, material);
413 }
414 sigM = 0.0;
415 if(nullptr != theConversionMM) {
417 sigM = (val < DBL_MAX) ? 1./val : 0.0;
418 }
419 G4double sum = sigComp + sigConv + sigPE + sigN + sigM;
420 if(1 < verboseLevel) {
421 G4cout << j << ". E= " << e << " xs= " << sum
422 << " compt= " << sigComp << " conv= " << sigConv
423 << " PE= " << sigPE
424 << " GN= " << sigN << G4endl;
425 }
426 (*(tables[10]))[idx]->PutValue(j, sum);
427
428 val = (sigComp + sigPE + sigN + sigM)/sum;
429 (*(tables[11]))[idx]->PutValue(j, val);
430
431 val = (sigPE + sigN + sigM)/sum;
432 (*(tables[12]))[idx]->PutValue(j, val);
433
434 val = (sigN + sigM)/sum;
435 (*(tables[13]))[idx]->PutValue(j, val);
436
437 val = sigN/sum;
438 (*(tables[14]))[idx]->PutValue(j, val);
439 }
440 for(size_t k=0; k<nTables; ++k) {
441 if(splineFlag) {
442 (*(tables[k]))[idx]->FillSecondDerivatives();
443 }
444 }
445 }
446 }
447 delete dynParticle;
448 }
449
450 if(1 < verboseLevel) {
451 G4cout << "### G4VEmProcess::BuildPhysicsTable() done for "
452 << GetProcessName()
453 << " and particle " << part.GetParticleName()
454 << G4endl;
455 }
456}
CLHEP::Hep3Vector G4ThreeVector
G4double ComputeCrossSection(const G4DynamicParticle *, const G4Material *)
void SetKineticEnergy(G4double aEnergy)
const G4VEmProcess * GetMasterProcess(size_t idx) const
const std::vector< G4PhysicsTable * > & GetTables() const
G4double ComputeMeanFreePath(G4double GammaEnergy, const G4Material *aMaterial)
void BuildPhysicsTable(const G4ParticleDefinition &) override
static const size_t nTables
static G4bool theT[nTables]
void BuildPhysicsTable(const G4ParticleDefinition &) override
G4CrossSectionDataStore * GetCrossSectionDataStore()
static G4LossTableManager * Instance()
void BuildPhysicsTable(const G4ParticleDefinition &) override
G4int DensityIndex(G4int idx) const
void SetEmMasterProcess(const G4VEmProcess *)
G4bool UseBaseMaterial() const
G4double GetLambda(G4double kinEnergy, const G4MaterialCutsCouple *couple)
string material
Definition: eplot.py:19
#define DBL_MAX
Definition: templates.hh:62

References G4VEmProcess::baseMat, G4GammaConversionToMuons::BuildPhysicsTable(), G4VEmProcess::BuildPhysicsTable(), G4HadronicProcess::BuildPhysicsTable(), G4CrossSectionDataStore::ComputeCrossSection(), G4GammaConversionToMuons::ComputeMeanFreePath(), DBL_MAX, G4VEmProcess::DensityIndex(), G4cout, G4endl, G4Log(), G4Gamma::Gamma(), G4HadronicProcess::GetCrossSectionDataStore(), G4LossTableBuilder::GetFlag(), G4VEmProcess::GetLambda(), G4EmDataHandler::GetMasterProcess(), G4MaterialCutsCouple::GetMaterial(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4ProductionCutsTable::GetProductionCutsTable(), G4LossTableManager::GetTableBuilder(), G4EmDataHandler::GetTables(), G4ProductionCutsTable::GetTableSize(), G4LossTableManager::Instance(), G4VEmProcess::isTheMaster, eplot::material, G4InuclParticleNames::nn, nTables, G4VEmProcess::SetEmMasterProcess(), G4DynamicParticle::SetKineticEnergy(), splineFlag, theCompton, theConversionEE, theConversionMM, theGammaNuclear, theHandler, thePhotoElectric, theRayleigh, theT, G4VEmProcess::UseBaseMaterial(), and G4VProcess::verboseLevel.

◆ BuildWorkerPhysicsTable()

void G4VProcess::BuildWorkerPhysicsTable ( const G4ParticleDefinition part)
virtualinherited

Reimplemented in G4BiasingProcessInterface.

Definition at line 200 of file G4VProcess.cc.

201{
202 BuildPhysicsTable(part);
203}
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
Definition: G4VProcess.hh:187

References G4VProcess::BuildPhysicsTable().

Referenced by G4BiasingProcessInterface::BuildWorkerPhysicsTable().

◆ Clear()

void G4VEmProcess::Clear ( )
privateinherited

Definition at line 130 of file G4VEmProcess.cc.

131{
132 currentCouple = nullptr;
133 preStepLambda = 0.0;
134}
G4double preStepLambda
const G4MaterialCutsCouple * currentCouple

References G4VEmProcess::currentCouple, and G4VEmProcess::preStepLambda.

Referenced by G4VEmProcess::PreparePhysicsTable().

◆ ClearNumberOfInteractionLengthLeft()

void G4VProcess::ClearNumberOfInteractionLengthLeft ( )
inlineprotectedinherited

◆ ComputeCrossSectionPerAtom()

G4double G4VEmProcess::ComputeCrossSectionPerAtom ( G4double  kineticEnergy,
G4double  Z,
G4double  A = 0.,
G4double  cut = 0.0 
)
inherited

Definition at line 1010 of file G4VEmProcess.cc.

1012{
1013 SelectModel(kinEnergy, currentCoupleIndex);
1014 return (currentModel) ?
1016 Z, A, cut) : 0.0;
1017}
const G4int Z[17]
const G4double A[17]
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0., G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
Definition: G4VEmModel.cc:341
G4VEmModel * SelectModel(G4double kinEnergy, size_t)
G4VEmModel * currentModel
const G4ParticleDefinition * currentParticle
size_t currentCoupleIndex

References A, G4VEmModel::ComputeCrossSectionPerAtom(), G4VEmProcess::currentCoupleIndex, G4VEmProcess::currentModel, G4VEmProcess::currentParticle, G4VEmProcess::SelectModel(), and Z.

◆ ComputeCurrentLambda()

G4double G4VEmProcess::ComputeCurrentLambda ( G4double  kinEnergy)
inlineprivateinherited

Definition at line 562 of file G4VEmProcess.hh.

563{
565}
virtual G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
Definition: G4VEmModel.cc:237
const G4Material * baseMaterial

References G4VEmProcess::baseMaterial, G4VEmModel::CrossSectionPerVolume(), G4VEmProcess::currentModel, and G4VEmProcess::currentParticle.

Referenced by G4VEmProcess::GetCurrentLambda(), and G4VEmProcess::RecalculateLambda().

◆ ComputeGeneralLambda()

G4double G4GammaGeneralProcess::ComputeGeneralLambda ( size_t  idxe,
size_t  idxt 
)
inlineprotected

Definition at line 194 of file G4GammaGeneralProcess.hh.

195{
196 idxEnergy = idxe;
199}
const G4PhysicsVector * GetVector(size_t itable, size_t ivec) const
G4double LogVectorValue(const G4double energy, const G4double theLogEnergy) const
size_t basedCoupleIndex
G4double preStepKinEnergy

References G4VEmProcess::basedCoupleIndex, factor, G4EmDataHandler::GetVector(), idxEnergy, G4PhysicsVector::LogVectorValue(), G4VEmProcess::preStepKinEnergy, preStepLogE, and theHandler.

Referenced by TotalCrossSectionPerVolume().

◆ ComputeIntegralLambda()

void G4VEmProcess::ComputeIntegralLambda ( G4double  kinEnergy,
G4double  logKinEnergy 
)
privateinherited

Definition at line 637 of file G4VEmProcess.cc.

638{
639 if(fXSType == fEmNoIntegral) {
641
642 } else if(fXSType == fEmIncreasing) {
643 if(e/lambdaFactor < mfpKinEnergy) {
644 mfpKinEnergy = e;
646 }
647
648 } else if(fXSType == fEmDecreasing) {
649 if(e < mfpKinEnergy) {
650 const G4double e1 = e*lambdaFactor;
653 }
654
655 } else if(fXSType == fEmOnePeak) {
656 const G4double epeak = (*theEnergyOfCrossSectionMax)[currentCoupleIndex];
657 if(e <= epeak) {
658 if(e/lambdaFactor < mfpKinEnergy) {
659 mfpKinEnergy = e;
661 }
662 } else if(e < mfpKinEnergy) {
663 const G4double e1 = std::max(epeak, e*lambdaFactor);
666 }
667
668 } else {
670 }
671}
static const G4double e1[44]
@ fEmOnePeak
@ fEmDecreasing
@ fEmNoIntegral
@ fEmIncreasing
G4double mfpKinEnergy
G4CrossSectionType fXSType
G4double GetCurrentLambda(G4double kinEnergy)
G4double lambdaFactor

References G4VEmProcess::currentCoupleIndex, e1, fEmDecreasing, fEmIncreasing, fEmNoIntegral, fEmOnePeak, G4VEmProcess::fXSType, G4VEmProcess::GetCurrentLambda(), G4VEmProcess::lambdaFactor, G4INCL::Math::max(), G4VEmProcess::mfpKinEnergy, and G4VEmProcess::preStepLambda.

Referenced by G4VEmProcess::PostStepGetPhysicalInteractionLength().

◆ CrossSectionBiasingFactor()

G4double G4VEmProcess::CrossSectionBiasingFactor ( ) const
inlineinherited

Definition at line 650 of file G4VEmProcess.hh.

651{
652 return biasFactor;
653}
G4double biasFactor

References G4VEmProcess::biasFactor.

◆ CrossSectionPerVolume()

G4double G4VEmProcess::CrossSectionPerVolume ( G4double  kineticEnergy,
const G4MaterialCutsCouple couple,
G4double  logKinEnergy = DBL_MAX 
)
inherited

Definition at line 978 of file G4VEmProcess.cc.

981{
982 G4double cross = RecalculateLambda(kinEnergy, couple);
983 return std::max(cross, 0.0);
984}
G4double RecalculateLambda(G4double kinEnergy, const G4MaterialCutsCouple *couple)

References G4INCL::Math::max(), and G4VEmProcess::RecalculateLambda().

Referenced by G4EmCalculator::GetCrossSectionPerVolume().

◆ CrossSectionType()

G4CrossSectionType G4VEmProcess::CrossSectionType ( ) const
inlineprotectedinherited

Definition at line 699 of file G4VEmProcess.hh.

700{
701 return fXSType;
702}

References G4VEmProcess::fXSType.

◆ CurrentMaterialCutsCoupleIndex()

size_t G4VEmProcess::CurrentMaterialCutsCoupleIndex ( ) const
inlineprotectedinherited

◆ CurrentSetup()

void G4VEmProcess::CurrentSetup ( const G4MaterialCutsCouple couple,
G4double  energy 
)
inlineinherited

◆ DefineMaterial()

void G4VEmProcess::DefineMaterial ( const G4MaterialCutsCouple couple)
inlineprotectedinherited

◆ DensityFactor()

G4double G4VEmProcess::DensityFactor ( G4int  idx) const
inlineprotectedinherited

Definition at line 770 of file G4VEmProcess.hh.

771{
772 return (*theDensityFactor)[idx];
773}
const std::vector< G4double > * theDensityFactor

References G4VEmProcess::theDensityFactor.

Referenced by PostStepGetPhysicalInteractionLength().

◆ DensityIndex()

G4int G4VEmProcess::DensityIndex ( G4int  idx) const
inlineprotectedinherited

Definition at line 763 of file G4VEmProcess.hh.

764{
765 return (*theDensityIdx)[idx];
766}
const std::vector< G4int > * theDensityIdx

References G4VEmProcess::theDensityIdx.

Referenced by BuildPhysicsTable(), and PostStepGetPhysicalInteractionLength().

◆ DumpInfo()

void G4VProcess::DumpInfo ( ) const
virtualinherited

Reimplemented in G4AdjointAlongStepWeightCorrection, G4AdjointForcedInteractionForGamma, G4AdjointhMultipleScattering, G4ContinuousGainOfEnergy, G4eAdjointMultipleScattering, G4eInverseBremsstrahlung, G4eInverseCompton, G4eInverseIonisation, G4InversePEEffect, G4IonInverseIonisation, G4PolarizedAnnihilation, G4PolarizedBremsstrahlung, G4PolarizedCompton, G4PolarizedGammaConversion, G4PolarizedIonisation, G4PolarizedPhotoElectric, G4Cerenkov, G4ForwardXrayTR, G4GammaXTRadiator, G4GaussXTRadiator, G4RegularXTRadiator, G4Scintillation, G4StrawTubeXTRadiator, G4SynchrotronRadiation, G4TransitionRadiation, G4TransparentRegXTRadiator, G4VTransitionRadiation, G4VXTRenergyLoss, G4XTRGammaRadModel, G4XTRRegularRadModel, and G4XTRTransparentRegRadModel.

Definition at line 167 of file G4VProcess.cc.

168{
169 G4cout << "Process Name " << theProcessName ;
170 G4cout << " : Type[" << GetProcessTypeName(theProcessType) << "]";
171 G4cout << " : SubType[" << theProcessSubType << "]"<< G4endl;
172}
static const G4String & GetProcessTypeName(G4ProcessType)
Definition: G4VProcess.cc:134
G4ProcessType theProcessType
Definition: G4VProcess.hh:346
G4int theProcessSubType
Definition: G4VProcess.hh:349
G4String theProcessName
Definition: G4VProcess.hh:341

References G4cout, G4endl, G4VProcess::GetProcessTypeName(), G4VProcess::theProcessName, G4VProcess::theProcessSubType, and G4VProcess::theProcessType.

Referenced by G4ProcessTable::DumpInfo(), export_G4VProcess(), G4Scintillation::ProcessDescription(), G4Cerenkov::ProcessDescription(), and G4ProcessManagerMessenger::SetNewValue().

◆ EmModel()

G4VEmModel * G4VEmProcess::EmModel ( size_t  index = 0) const
inlineinherited

Definition at line 805 of file G4VEmProcess.hh.

806{
807 return (index < emModels.size()) ? emModels[index] : nullptr;
808}
std::vector< G4VEmModel * > emModels

References G4VEmProcess::emModels.

Referenced by G4EmCalculator::ComputeNuclearDEDX(), G4EmDNAChemistry::ConstructProcess(), G4EmDNAChemistry_option1::ConstructProcess(), G4EmDNAChemistry_option3::ConstructProcess(), G4EmDNAPhysics_stationary_option2::ConstructProcess(), G4EmDNAPhysics_stationary_option4::ConstructProcess(), G4EmDNAPhysics_stationary_option6::ConstructProcess(), G4EmDNAChemistry_option2::ConstructProcess(), G4DNAAttachment::InitialiseProcess(), G4DNAChargeDecrease::InitialiseProcess(), G4DNAChargeIncrease::InitialiseProcess(), G4DNADissociation::InitialiseProcess(), G4DNAElastic::InitialiseProcess(), G4DNAElectronSolvation::InitialiseProcess(), G4DNAExcitation::InitialiseProcess(), G4DNAIonisation::InitialiseProcess(), G4DNAPlasmonExcitation::InitialiseProcess(), G4DNAPositronium::InitialiseProcess(), G4DNARotExcitation::InitialiseProcess(), G4DNAVibExcitation::InitialiseProcess(), G4NuclearStopping::InitialiseProcess(), G4JAEAElasticScattering::InitialiseProcess(), G4MicroElecElastic::InitialiseProcess(), G4MicroElecInelastic::InitialiseProcess(), G4MicroElecLOPhononScattering::InitialiseProcess(), G4RayleighScattering::InitialiseProcess(), G4PolarizedCompton::InitialiseProcess(), G4PolarizedGammaConversion::InitialiseProcess(), G4PolarizedPhotoElectric::InitialiseProcess(), G4ComptonScattering::InitialiseProcess(), G4CoulombScattering::InitialiseProcess(), G4eplusAnnihilation::InitialiseProcess(), G4GammaConversion::InitialiseProcess(), G4PhotoElectricEffect::InitialiseProcess(), G4DNAAttachment::PrintInfo(), G4DNAChargeDecrease::PrintInfo(), G4DNAChargeIncrease::PrintInfo(), G4DNADissociation::PrintInfo(), G4DNAElastic::PrintInfo(), G4DNAExcitation::PrintInfo(), G4DNAIonisation::PrintInfo(), G4DNAPlasmonExcitation::PrintInfo(), G4DNAPositronium::PrintInfo(), G4DNARotExcitation::PrintInfo(), and G4DNAVibExcitation::PrintInfo().

◆ EndTracking()

void G4VProcess::EndTracking ( )
virtualinherited

◆ EnergyOfCrossSectionMax()

std::vector< G4double > * G4VEmProcess::EnergyOfCrossSectionMax ( ) const
inlineinherited

Definition at line 671 of file G4VEmProcess.hh.

672{
674}
std::vector< G4double > * theEnergyOfCrossSectionMax

References G4VEmProcess::theEnergyOfCrossSectionMax.

Referenced by G4VEmProcess::BuildPhysicsTable().

◆ FindLambdaMax()

std::vector< G4double > * G4VEmProcess::FindLambdaMax ( )
inherited

Definition at line 1021 of file G4VEmProcess.cc.

1022{
1023 if(1 < verboseLevel) {
1024 G4cout << "### G4VEmProcess::FindLambdaMax: "
1026 << " and process " << GetProcessName() << " " << G4endl;
1027 }
1028 std::vector<G4double>* ptr = nullptr;
1029 if(fXSType != fEmOnePeak) { return ptr; }
1030
1031 const G4ProductionCutsTable* theCoupleTable=
1033 size_t n = theCoupleTable->GetTableSize();
1034 ptr = new std::vector<G4double>;
1035 ptr->resize(n, DBL_MAX);
1036
1037 G4bool isPeak = false;
1038 const G4double g4log10 = G4Log(10.);
1039 const G4double scale = theParameters->NumberOfBinsPerDecade()/g4log10;
1040
1041 for(size_t i=0; i<n; ++i) {
1042 const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(i);
1044 G4double emax = std::max(maxKinEnergy, emin + emin);
1045 G4double ee = G4Log(emax/emin);
1046 G4int nbin = G4lrint(ee*scale);
1047 if(nbin < 4) { nbin = 4; }
1048 G4double x = G4Exp(ee/nbin);
1049 G4double sm = 0.0;
1050 G4double em = emin;
1051 G4double e = emin;
1052 for(G4int j=0; j<=nbin; ++j) {
1053 G4double sig = RecalculateLambda(e, couple);
1054 //G4cout << j << " E=" << e << " Lambda=" << sig << G4endl;
1055 if(sig >= sm) {
1056 em = e;
1057 sm = sig;
1058 e *= x;
1059 } else {
1060 isPeak = true;
1061 (*ptr)[i] = em;
1062 break;
1063 }
1064 }
1065 if(1 < verboseLevel) {
1066 G4cout << " " << i << ". Epeak(GeV)=" << em/GeV
1067 << " SigmaMax(1/mm)=" << sm
1068 << " Emin(GeV)=" << emin/GeV << " Emax(GeV)=" << emax/GeV
1069 << " " << couple->GetMaterial()->GetName() << G4endl;
1070 }
1071 }
1072 // there is no peak for any material
1073 if(!isPeak) {
1074 delete ptr;
1075 ptr = nullptr;
1076 }
1077 return ptr;
1078}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:179
static constexpr double GeV
Definition: G4SIunits.hh:203
const G4String & GetName() const
Definition: G4Material.hh:173

References DBL_MAX, emax, fEmOnePeak, G4VEmProcess::fXSType, G4cout, G4endl, G4Exp(), G4Log(), G4lrint(), G4MaterialCutsCouple::GetMaterial(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4Material::GetName(), G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4ProductionCutsTable::GetProductionCutsTable(), G4ProductionCutsTable::GetTableSize(), GeV, G4INCL::Math::max(), G4VEmProcess::maxKinEnergy, G4VEmProcess::minKinEnergy, G4VEmProcess::MinPrimaryEnergy(), CLHEP::detail::n, G4EmParameters::NumberOfBinsPerDecade(), G4VEmProcess::particle, G4VEmProcess::RecalculateLambda(), G4InuclParticleNames::sm, G4VEmProcess::theParameters, and G4VProcess::verboseLevel.

Referenced by G4VEmProcess::BuildPhysicsTable().

◆ GetCurrentElement()

const G4Element * G4VEmProcess::GetCurrentElement ( ) const
inherited

Definition at line 1104 of file G4VEmProcess.cc.

1105{
1106 return (nullptr != currentModel) ? currentModel->GetCurrentElement() : nullptr;
1107}
const G4Element * GetCurrentElement() const
Definition: G4VEmModel.hh:505

References G4VEmProcess::currentModel, and G4VEmModel::GetCurrentElement().

◆ GetCurrentInteractionLength()

G4double G4VProcess::GetCurrentInteractionLength ( ) const
inlineinherited

◆ GetCurrentLambda() [1/2]

G4double G4VEmProcess::GetCurrentLambda ( G4double  kinEnergy)
inlineprivateinherited

◆ GetCurrentLambda() [2/2]

G4double G4VEmProcess::GetCurrentLambda ( G4double  kinEnergy,
G4double  logKinEnergy 
)
inlineprivateinherited

◆ GetCurrentModel()

const G4VEmModel * G4VEmProcess::GetCurrentModel ( ) const
inlineinherited

Definition at line 784 of file G4VEmProcess.hh.

785{
786 return currentModel;
787}

References G4VEmProcess::currentModel.

◆ GetElectronEnergyCut()

G4double G4VEmProcess::GetElectronEnergyCut ( )
inlineprotectedinherited

Definition at line 487 of file G4VEmProcess.hh.

488{
490}
const std::vector< G4double > * theCutsElectron

References G4VEmProcess::currentCoupleIndex, and G4VEmProcess::theCutsElectron.

Referenced by G4eplusAnnihilation::AtRestDoIt().

◆ GetEmProcess()

G4VEmProcess * G4GammaGeneralProcess::GetEmProcess ( const G4String name)
overridevirtual

Reimplemented from G4VEmProcess.

Definition at line 761 of file G4GammaGeneralProcess.cc.

762{
763 G4VEmProcess* proc = nullptr;
765 proc = thePhotoElectric;
766 } else if(name == theCompton->GetProcessName()) {
767 proc = theCompton;
768 } else if(name == theConversionEE->GetProcessName()) {
769 proc = theConversionEE;
770 } else if(theRayleigh != nullptr && name == theRayleigh->GetProcessName()) {
771 proc = theRayleigh;
772 }
773 return proc;
774}
const char * name(G4int ptype)

References G4VProcess::GetProcessName(), G4InuclParticleNames::name(), theCompton, theConversionEE, thePhotoElectric, and theRayleigh.

◆ GetGammaEnergyCut()

G4double G4VEmProcess::GetGammaEnergyCut ( )
inlineprotectedinherited

Definition at line 480 of file G4VEmProcess.hh.

481{
483}
const std::vector< G4double > * theCutsGamma

References G4VEmProcess::currentCoupleIndex, and G4VEmProcess::theCutsGamma.

Referenced by G4eplusAnnihilation::AtRestDoIt().

◆ GetLambda() [1/2]

G4double G4VEmProcess::GetLambda ( G4double  kinEnergy,
const G4MaterialCutsCouple couple 
)
inherited

Definition at line 1228 of file G4VEmProcess.cc.

1229{
1230 CurrentSetup(couple, kinEnergy);
1231 return GetCurrentLambda(kinEnergy, G4Log(kinEnergy));
1232}
void CurrentSetup(const G4MaterialCutsCouple *, G4double energy)

References G4VEmProcess::CurrentSetup(), G4Log(), and G4VEmProcess::GetCurrentLambda().

Referenced by BuildPhysicsTable(), G4AdjointComptonModel::RapidSampleSecondaries(), and TotalCrossSectionPerVolume().

◆ GetLambda() [2/2]

G4double G4VEmProcess::GetLambda ( G4double  kinEnergy,
const G4MaterialCutsCouple couple,
G4double  logKinEnergy 
)
inlineinherited

Definition at line 609 of file G4VEmProcess.hh.

611{
612 CurrentSetup(couple, kinEnergy);
613 return GetCurrentLambda(kinEnergy, logKinEnergy);
614}

References G4VEmProcess::CurrentSetup(), and G4VEmProcess::GetCurrentLambda().

◆ GetLambdaFromTable() [1/2]

G4double G4VEmProcess::GetLambdaFromTable ( G4double  kinEnergy)
inlineprivateinherited

◆ GetLambdaFromTable() [2/2]

G4double G4VEmProcess::GetLambdaFromTable ( G4double  kinEnergy,
G4double  logKinEnergy 
)
inlineprivateinherited

Definition at line 541 of file G4VEmProcess.hh.

542{
543 return ((*theLambdaTable)[basedCoupleIndex])->LogVectorValue(e, loge);
544}

References G4VEmProcess::basedCoupleIndex, and G4VEmProcess::theLambdaTable.

◆ GetLambdaFromTablePrim() [1/2]

G4double G4VEmProcess::GetLambdaFromTablePrim ( G4double  kinEnergy)
inlineprivateinherited

◆ GetLambdaFromTablePrim() [2/2]

G4double G4VEmProcess::GetLambdaFromTablePrim ( G4double  kinEnergy,
G4double  logKinEnergy 
)
inlineprivateinherited

Definition at line 555 of file G4VEmProcess.hh.

556{
557 return ((*theLambdaTablePrim)[basedCoupleIndex])->LogVectorValue(e, loge)/e;
558}

References G4VEmProcess::basedCoupleIndex, and G4VEmProcess::theLambdaTablePrim.

◆ GetMasterProcess()

const G4VProcess * G4VProcess::GetMasterProcess ( ) const
inlineinherited

◆ GetMeanFreePath()

G4double G4GammaGeneralProcess::GetMeanFreePath ( const G4Track track,
G4double  previousStepSize,
G4ForceCondition condition 
)
overrideprotectedvirtual

Implements G4VDiscreteProcess.

Definition at line 723 of file G4GammaGeneralProcess.cc.

726{
728 return MeanFreePath(track);
729}
@ NotForced
G4double MeanFreePath(const G4Track &track)

References condition(), G4VEmProcess::MeanFreePath(), and NotForced.

◆ GetModelByIndex()

G4VEmModel * G4VEmProcess::GetModelByIndex ( G4int  idx = 0,
G4bool  ver = false 
) const
inherited

Definition at line 168 of file G4VEmProcess.cc.

169{
170 return modelManager->GetModel(idx, ver);
171}
G4VEmModel * GetModel(G4int idx, G4bool ver=false)

References G4EmModelManager::GetModel(), and G4VEmProcess::modelManager.

Referenced by G4VEmProcess::BuildPhysicsTable().

◆ GetNumberOfInteractionLengthLeft()

G4double G4VProcess::GetNumberOfInteractionLengthLeft ( ) const
inlineinherited

Definition at line 431 of file G4VProcess.hh.

432{
434}

References G4VProcess::theNumberOfInteractionLengthLeft.

◆ GetParticleChange()

G4ParticleChangeForGamma * G4VEmProcess::GetParticleChange ( )
inlineprotectedinherited

Definition at line 713 of file G4VEmProcess.hh.

714{
715 return &fParticleChange;
716}
G4ParticleChangeForGamma fParticleChange

References G4VEmProcess::fParticleChange.

◆ GetPhysicsTableFileName()

const G4String & G4VProcess::GetPhysicsTableFileName ( const G4ParticleDefinition particle,
const G4String directory,
const G4String tableName,
G4bool  ascii = false 
)
inherited

Definition at line 181 of file G4VProcess.cc.

186{
187 G4String thePhysicsTableFileExt;
188 if (ascii) thePhysicsTableFileExt = ".asc";
189 else thePhysicsTableFileExt = ".dat";
190
191 thePhysicsTableFileName = directory + "/";
192 thePhysicsTableFileName += tableName + "." + theProcessName + ".";
194 + thePhysicsTableFileExt;
195
197}
G4String thePhysicsTableFileName
Definition: G4VProcess.hh:344

References G4ParticleDefinition::GetParticleName(), G4VProcess::thePhysicsTableFileName, and G4VProcess::theProcessName.

Referenced by export_G4VProcess(), RetrievePhysicsTable(), G4VEmProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrieveTable(), StorePhysicsTable(), G4VEmProcess::StorePhysicsTable(), G4VMultipleScattering::StorePhysicsTable(), and G4VEnergyLossProcess::StoreTable().

◆ GetPILfactor()

G4double G4VProcess::GetPILfactor ( ) const
inlineinherited

Definition at line 455 of file G4VProcess.hh.

456{
457 return thePILfactor;
458}

References G4VProcess::thePILfactor.

Referenced by export_G4VProcess().

◆ GetProbability()

G4double G4GammaGeneralProcess::GetProbability ( size_t  idxt)
inlineprotected

◆ GetProcessManager()

const G4ProcessManager * G4VProcess::GetProcessManager ( )
inlinevirtualinherited

Reimplemented in G4BiasingProcessInterface, and G4WrapperProcess.

Definition at line 494 of file G4VProcess.hh.

495{
496 return aProcessManager;
497}
const G4ProcessManager * aProcessManager
Definition: G4VProcess.hh:319

References G4VProcess::aProcessManager.

Referenced by G4BiasingProcessInterface::GetProcessManager(), and G4WrapperProcess::GetProcessManager().

◆ GetProcessName()

const G4String & G4VProcess::GetProcessName ( ) const
inlineinherited

Definition at line 382 of file G4VProcess.hh.

383{
384 return theProcessName;
385}

References G4VProcess::theProcessName.

Referenced by G4VEnergyLossProcess::ActivateForcedInteraction(), G4VEmProcess::ActivateForcedInteraction(), G4ProcessManager::ActivateProcess(), G4VEmProcess::ActivateSecondaryBiasing(), G4VEnergyLossProcess::ActivateSecondaryBiasing(), G4ParallelGeometriesLimiterProcess::AddParallelWorld(), G4IonQMDPhysics::AddProcess(), G4IonINCLXXPhysics::AddProcess(), G4ProcessManager::AddProcess(), G4ProcessPlacer::AddProcessAs(), G4ITSteppingVerbose::AlongStepDoItAllDone(), G4SteppingVerbose::AlongStepDoItAllDone(), G4SteppingVerboseWithUnits::AlongStepDoItAllDone(), G4ITSteppingVerbose::AlongStepDoItOneByOne(), G4SteppingVerbose::AlongStepDoItOneByOne(), G4SteppingVerboseWithUnits::AlongStepDoItOneByOne(), G4VContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4ParallelWorldProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4VContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4BOptnLeadingParticle::ApplyFinalStateBiasing(), G4ITSteppingVerbose::AtRestDoItInvoked(), G4SteppingVerbose::AtRestDoItInvoked(), G4SteppingVerboseWithUnits::AtRestDoItInvoked(), G4ITSteppingVerbose::AtRestDoItOneByOne(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4HadronicProcess::BiasCrossSectionByFactor(), G4VXTRenergyLoss::BuildAngleForEnergyBank(), G4VEnergyLossProcess::BuildDEDXTable(), G4VUserPhysicsList::BuildIntegralPhysicsTable(), G4VEmProcess::BuildLambdaTable(), G4VEnergyLossProcess::BuildLambdaTable(), G4DNABrownianTransportation::BuildPhysicsTable(), BuildPhysicsTable(), G4VEmProcess::BuildPhysicsTable(), G4VEnergyLossProcess::BuildPhysicsTable(), G4VMultipleScattering::BuildPhysicsTable(), G4LossTableManager::BuildPhysicsTable(), G4LossTableManager::BuildTables(), G4HadronicProcess::CheckEnergyMomentumConservation(), G4ProcessManager::CheckOrderingParameters(), G4HadronicProcess::CheckResult(), G4StackChecker::ClassifyNewTrack(), G4BOptrForceCollision::ConfigureForWorker(), G4RunManagerKernel::ConfirmCoupledTransportation(), G4FastSimulationPhysics::ConstructProcess(), G4GenericBiasingPhysics::ConstructProcess(), G4IonElasticPhysics::ConstructProcess(), G4LossTableManager::CopyTables(), G4RichTrajectory::CreateAttValues(), G4RichTrajectoryPoint::CreateAttValues(), G4VPhononProcess::CreateSecondary(), G4EmExtraParameters::DefineRegParamForEM(), G4EmExtraParameters::DefineRegParamForLoss(), G4HadronicProcessStore::DeRegisterExtraProcess(), G4ITSteppingVerbose::DPSLAlongStep(), G4SteppingVerbose::DPSLAlongStep(), G4SteppingVerboseWithUnits::DPSLAlongStep(), G4ITSteppingVerbose::DPSLPostStep(), G4SteppingVerbose::DPSLPostStep(), G4SteppingVerboseWithUnits::DPSLPostStep(), G4HadronicProcessStore::Dump(), G4HadronicProcess::DumpState(), G4MuonicAtomDecay::DumpState(), G4ExceptionHandler::DumpTrackInfo(), export_G4VProcess(), G4EmCalculator::FindEmModel(), G4VEmProcess::FindLambdaMax(), G4BiasingProcessInterface::G4BiasingProcessInterface(), G4Cerenkov::G4Cerenkov(), G4ErrorEnergyLoss::G4ErrorEnergyLoss(), G4ErrorTrackLengthTarget::G4ErrorTrackLengthTarget(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4ImportanceProcess::G4ImportanceProcess(), G4MaxTimeCuts::G4MaxTimeCuts(), G4MicroElecSurface::G4MicroElecSurface(), G4MinEkineCuts::G4MinEkineCuts(), G4OpAbsorption::G4OpAbsorption(), G4OpBoundaryProcess::G4OpBoundaryProcess(), G4OpMieHG::G4OpMieHG(), G4OpRayleigh::G4OpRayleigh(), G4OpWLS::G4OpWLS(), G4OpWLS2::G4OpWLS2(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4ParallelWorldScoringProcess::G4ParallelWorldScoringProcess(), G4Scintillation::G4Scintillation(), G4ScoreSplittingProcess::G4ScoreSplittingProcess(), G4SpecialCuts::G4SpecialCuts(), G4StepLimiter::G4StepLimiter(), G4UCNAbsorption::G4UCNAbsorption(), G4UCNBoundaryProcess::G4UCNBoundaryProcess(), G4UCNLoss::G4UCNLoss(), G4UCNMultiScattering::G4UCNMultiScattering(), G4UserSpecialCuts::G4UserSpecialCuts(), G4WeightCutOffProcess::G4WeightCutOffProcess(), G4WeightWindowProcess::G4WeightWindowProcess(), G4HadronicProcess::GetElementCrossSection(), G4VEmProcess::GetEmProcess(), GetEmProcess(), G4WeightWindowProcess::GetName(), G4ProcessManager::GetProcess(), G4ProcessManager::GetProcessVectorIndex(), GetSubProcessName(), G4ProcessManager::InActivateProcess(), G4hhIonisation::InitialiseEnergyLossProcess(), G4ProcessTable::Insert(), G4ITStepProcessor::InvokeAlongStepDoItProcs(), G4SteppingManager::InvokeAlongStepDoItProcs(), G4SteppingManager::InvokeAtRestDoItProcs(), G4SteppingManager::InvokePSDIP(), G4LossTableManager::LocalPhysicsTables(), G4ErrorPropagator::MakeOneStep(), G4VEmProcess::PostStepDoIt(), G4ITSteppingVerbose::PostStepDoItAllDone(), G4SteppingVerbose::PostStepDoItAllDone(), G4SteppingVerboseWithUnits::PostStepDoItAllDone(), G4ITSteppingVerbose::PostStepDoItOneByOne(), G4SteppingVerbose::PostStepDoItOneByOne(), G4SteppingVerboseWithUnits::PostStepDoItOneByOne(), G4VITDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(), G4ITSteppingVerbose::PostStepVerbose(), G4EmConfigurator::PrepareModels(), G4HadronStoppingProcess::PreparePhysicsTable(), PreparePhysicsTable(), G4VEmProcess::PreparePhysicsTable(), G4VEnergyLossProcess::PreparePhysicsTable(), G4VMultipleScattering::PreparePhysicsTable(), G4LossTableManager::PreparePhysicsTable(), G4HadronicProcessStore::Print(), G4HadronicProcessStore::PrintHtml(), G4AnnihiToMuPair::PrintInfoDefinition(), G4GammaConversionToMuons::PrintInfoDefinition(), G4hImpactIonisation::PrintInfoDefinition(), G4ProcessPlacer::PrintProcVec(), G4VEnergyLossProcess::PrintWarning(), G4VEmProcess::PrintWarning(), G4SynchrotronRadiation::ProcessDescription(), G4Decay::ProcessDescription(), G4DecayWithSpin::ProcessDescription(), G4PionDecayMakeSpin::ProcessDescription(), G4UnknownDecay::ProcessDescription(), G4ChannelingOptrChangeCrossSection::ProposeOccurenceBiasingOperation(), G4StackManager::PushOneTrack(), G4HadronicProcessStore::Register(), G4LossTableManager::Register(), G4LossTableManager::RegisterExtraParticle(), G4HadronicProcessStore::RegisterExtraProcess(), G4HadronicProcessStore::RegisterParticle(), G4WrapperProcess::RegisterProcess(), G4PhysicsListHelper::RegisterProcess(), G4ProcessTable::Remove(), G4ParallelGeometriesLimiterProcess::RemoveParallelWorld(), G4ProcessManager::RemoveProcess(), G4ProcessPlacer::RemoveProcess(), RetrievePhysicsTable(), G4VEmProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrievePhysicsTable(), G4VEmProcess::SetCrossSectionBiasingFactor(), G4VEnergyLossProcess::SetCrossSectionBiasingFactor(), G4VEnergyLossProcess::SetCSDARangeTable(), G4VEnergyLossProcess::SetInverseRangeTable(), G4VEnergyLossProcess::SetLambdaTable(), G4ProcessTableMessenger::SetNewValue(), G4ProcessTable::SetProcessActivation(), G4ProcessManager::SetProcessOrdering(), G4ProcessManager::SetProcessOrderingToFirst(), G4ProcessManager::SetProcessOrderingToLast(), G4ProcessManager::SetProcessOrderingToSecond(), G4VEnergyLossProcess::SetRangeTableForLoss(), G4VEnergyLossProcess::SetSecondaryRangeTable(), G4FastSimulationManagerProcess::SetWorldVolume(), G4ITSteppingVerbose::ShowStep(), G4SteppingVerbose::ShowStep(), G4SteppingVerboseWithUnits::ShowStep(), G4ChannelingOptrChangeCrossSection::StartRun(), G4ITSteppingVerbose::StepInfo(), G4SteppingVerbose::StepInfo(), G4SteppingVerboseWithUnits::StepInfo(), G4ITSteppingVerbose::StepInfoForLeadingTrack(), G4VEmProcess::StorePhysicsTable(), G4VMultipleScattering::StorePhysicsTable(), G4VEnergyLossProcess::StreamInfo(), G4VEmProcess::StreamInfo(), G4VMultipleScattering::StreamInfo(), G4EmCalculator::UpdateParticle(), G4ParallelWorldScoringProcess::Verbose(), G4ScoreSplittingProcess::Verbose(), G4ITSteppingVerbose::VerboseTrack(), G4SteppingVerbose::VerboseTrack(), and G4SteppingVerboseWithUnits::VerboseTrack().

◆ GetProcessSubType()

G4int G4VProcess::GetProcessSubType ( ) const
inlineinherited

◆ GetProcessType()

G4ProcessType G4VProcess::GetProcessType ( ) const
inlineinherited

◆ GetProcessTypeName()

const G4String & G4VProcess::GetProcessTypeName ( G4ProcessType  aType)
staticinherited

Definition at line 134 of file G4VProcess.cc.

135{
136 switch (aType)
137 {
138 case fNotDefined: return typeNotDefined; break;
139 case fTransportation: return typeTransportation; break;
140 case fElectromagnetic: return typeElectromagnetic; break;
141 case fOptical: return typeOptical; break;
142 case fHadronic: return typeHadronic; break;
144 case fDecay: return typeDecay; break;
145 case fGeneral: return typeGeneral; break;
146 case fParameterisation: return typeParameterisation; break;
147 case fUserDefined: return typeUserDefined; break;
148 case fPhonon: return typePhonon; break;
149 default: ;
150 }
151 return noType;
152}
@ fOptical
@ fPhonon
@ fParameterisation
@ fGeneral
@ fDecay
@ fHadronic
@ fUserDefined
@ fTransportation
@ fPhotolepton_hadron
@ fNotDefined
static const G4String typeNotDefined
Definition: G4VProcess.cc:119
static const G4String typeParameterisation
Definition: G4VProcess.cc:127
static const G4String typePhotolepton_hadron
Definition: G4VProcess.cc:124
static const G4String typeElectromagnetic
Definition: G4VProcess.cc:121
static const G4String noType
Definition: G4VProcess.cc:130
static const G4String typeUserDefined
Definition: G4VProcess.cc:128
static const G4String typeDecay
Definition: G4VProcess.cc:125
static const G4String typeTransportation
Definition: G4VProcess.cc:120
static const G4String typeHadronic
Definition: G4VProcess.cc:123
static const G4String typeOptical
Definition: G4VProcess.cc:122
static const G4String typeGeneral
Definition: G4VProcess.cc:126
static const G4String typePhonon
Definition: G4VProcess.cc:129

References fDecay, fElectromagnetic, fGeneral, fHadronic, fNotDefined, fOptical, fParameterisation, fPhonon, fPhotolepton_hadron, fTransportation, fUserDefined, anonymous_namespace{G4VProcess.cc}::noType, anonymous_namespace{G4VProcess.cc}::typeDecay, anonymous_namespace{G4VProcess.cc}::typeElectromagnetic, anonymous_namespace{G4VProcess.cc}::typeGeneral, anonymous_namespace{G4VProcess.cc}::typeHadronic, anonymous_namespace{G4VProcess.cc}::typeNotDefined, anonymous_namespace{G4VProcess.cc}::typeOptical, anonymous_namespace{G4VProcess.cc}::typeParameterisation, anonymous_namespace{G4VProcess.cc}::typePhonon, anonymous_namespace{G4VProcess.cc}::typePhotolepton_hadron, anonymous_namespace{G4VProcess.cc}::typeTransportation, and anonymous_namespace{G4VProcess.cc}::typeUserDefined.

Referenced by G4RichTrajectory::CreateAttValues(), G4RichTrajectoryPoint::CreateAttValues(), G4ProcessManager::DumpInfo(), G4VProcess::DumpInfo(), G4ProcessTableMessenger::G4ProcessTableMessenger(), G4ProcessTableMessenger::GetProcessType(), G4ProcessTableMessenger::GetProcessTypeName(), and G4ProcessTableMessenger::SetNumberOfProcessType().

◆ GetSelectedProcess()

const G4VProcess * G4GammaGeneralProcess::GetSelectedProcess ( ) const
inline

Definition at line 228 of file G4GammaGeneralProcess.hh.

229{
230 return selectedProc;
231}

References selectedProc.

◆ GetSubProcessName()

const G4String & G4GammaGeneralProcess::GetSubProcessName ( ) const

Definition at line 745 of file G4GammaGeneralProcess.cc.

References G4VProcess::GetProcessName(), and selectedProc.

◆ GetSubProcessSubType()

G4int G4GammaGeneralProcess::GetSubProcessSubType ( ) const

◆ GetTargetElement()

const G4Element * G4VEmProcess::GetTargetElement ( ) const
inlineprotectedinherited

Definition at line 749 of file G4VEmProcess.hh.

750{
752}

References G4VEmProcess::currentModel, and G4VEmModel::GetCurrentElement().

◆ GetTargetIsotope()

const G4Isotope * G4VEmProcess::GetTargetIsotope ( ) const
inlineprotectedinherited

Definition at line 756 of file G4VEmProcess.hh.

757{
759}
const G4Isotope * GetCurrentIsotope() const
Definition: G4VEmModel.hh:512

References G4VEmProcess::currentModel, and G4VEmModel::GetCurrentIsotope().

◆ GetTotalNumberOfInteractionLengthTraversed()

G4double G4VProcess::GetTotalNumberOfInteractionLengthTraversed ( ) const
inlineinherited

◆ GetVerboseLevel()

G4int G4VProcess::GetVerboseLevel ( ) const
inlineinherited

◆ InitialiseProcess()

void G4GammaGeneralProcess::InitialiseProcess ( const G4ParticleDefinition )
overrideprotectedvirtual

Implements G4VEmProcess.

Definition at line 190 of file G4GammaGeneralProcess.cc.

191{
192 if(isTheMaster) {
193
196
197 // tables are created and its size is defined only once
198 if(nullptr == theHandler) {
200 if(theRayleigh) { theT[1] = true; }
201
206 }
207 auto bld = man->GetTableBuilder();
208
209 const G4ProductionCutsTable* theCoupleTable=
211 size_t numOfCouples = theCoupleTable->GetTableSize();
212
213 G4double mine = param->MinKinEnergy();
214 G4double maxe = param->MaxKinEnergy();
215 G4int nd = param->NumberOfBinsPerDecade();
216 size_t nbin1 = std::max(5, nd*G4lrint(std::log10(minPEEnergy/mine)));
217 size_t nbin2 = std::max(5, nd*G4lrint(std::log10(maxe/minMMEnergy)));
218
219 G4PhysicsVector* vec = nullptr;
220 G4PhysicsLogVector aVector(mine,minPEEnergy,nbin1,splineFlag);
223 G4PhysicsLogVector dVector(minMMEnergy,maxe,nbin2,splineFlag);
224
225 for(size_t i=0; i<nTables; ++i) {
226 if(!theT[i]) { continue; }
227 //G4cout << "## PreparePhysTable " << i << "." << G4endl;
229 //G4cout << " make table " << table << G4endl;
230 for(size_t j=0; j<numOfCouples; ++j) {
231 vec = (*table)[j];
232 if (bld->GetFlag(j) && nullptr == vec) {
233 //G4cout <<" i= "<<i<<" j= "<< j <<" make new vector"<< G4endl;
234 if(i<=1) {
235 vec = new G4PhysicsVector(aVector);
236 } else if(i<=5) {
237 vec = new G4PhysicsVector(bVector);
238 } else if(i<=9) {
239 vec = new G4PhysicsVector(cVector);
240 } else {
241 vec = new G4PhysicsVector(dVector);
242 }
244 }
245 }
246 }
247 }
248}
void SetMasterProcess(const G4VEmProcess *)
G4PhysicsTable * MakeTable(size_t idx)
static G4EmParameters * Instance()

References G4lrint(), G4ProductionCutsTable::GetProductionCutsTable(), G4LossTableManager::GetTableBuilder(), G4ProductionCutsTable::GetTableSize(), G4EmParameters::Instance(), G4LossTableManager::Instance(), G4VEmProcess::isTheMaster, G4EmDataHandler::MakeTable(), G4INCL::Math::max(), G4EmParameters::MaxKinEnergy(), minEEEnergy, G4EmParameters::MinKinEnergy(), minMMEnergy, minPEEnergy, nHighE, nLowE, nTables, G4EmParameters::NumberOfBinsPerDecade(), G4EmDataHandler::SetMasterProcess(), G4PhysicsTableHelper::SetPhysicsVector(), splineFlag, theCompton, theConversionEE, theHandler, thePhotoElectric, theRayleigh, and theT.

Referenced by PreparePhysicsTable().

◆ isAlongStepDoItIsEnabled()

G4bool G4VProcess::isAlongStepDoItIsEnabled ( ) const
inlineinherited

Definition at line 506 of file G4VProcess.hh.

507{
508 return enableAlongStepDoIt;
509}
G4bool enableAlongStepDoIt
Definition: G4VProcess.hh:360

References G4VProcess::enableAlongStepDoIt.

Referenced by G4ProcessManager::CheckOrderingParameters().

◆ IsApplicable()

G4bool G4GammaGeneralProcess::IsApplicable ( const G4ParticleDefinition )
overridevirtual

Implements G4VEmProcess.

Definition at line 109 of file G4GammaGeneralProcess.cc.

110{
111 return true;
112}

◆ isAtRestDoItIsEnabled()

G4bool G4VProcess::isAtRestDoItIsEnabled ( ) const
inlineinherited

Definition at line 500 of file G4VProcess.hh.

501{
502 return enableAtRestDoIt;
503}
G4bool enableAtRestDoIt
Definition: G4VProcess.hh:359

References G4VProcess::enableAtRestDoIt.

Referenced by G4ProcessManager::CheckOrderingParameters().

◆ isPostStepDoItIsEnabled()

G4bool G4VProcess::isPostStepDoItIsEnabled ( ) const
inlineinherited

Definition at line 512 of file G4VProcess.hh.

513{
514 return enablePostStepDoIt;
515}
G4bool enablePostStepDoIt
Definition: G4VProcess.hh:361

References G4VProcess::enablePostStepDoIt.

Referenced by G4ProcessManager::CheckOrderingParameters().

◆ LambdaBinning()

G4int G4VEmProcess::LambdaBinning ( ) const
inlineprotectedinherited

Definition at line 629 of file G4VEmProcess.hh.

630{
631 return nLambdaBins;
632}

References G4VEmProcess::nLambdaBins.

Referenced by G4PolarizedCompton::BuildAsymmetryTable().

◆ LambdaPhysicsVector()

G4PhysicsVector * G4VEmProcess::LambdaPhysicsVector ( const G4MaterialCutsCouple couple)
protectedinherited

◆ LambdaTable()

G4PhysicsTable * G4VEmProcess::LambdaTable ( ) const
inlineinherited

Definition at line 657 of file G4VEmProcess.hh.

658{
659 return theLambdaTable;
660}

References G4VEmProcess::theLambdaTable.

Referenced by G4VEmProcess::BuildPhysicsTable(), and G4EmCalculator::FindLambdaTable().

◆ LambdaTablePrim()

G4PhysicsTable * G4VEmProcess::LambdaTablePrim ( ) const
inlineinherited

Definition at line 664 of file G4VEmProcess.hh.

665{
666 return theLambdaTablePrim;
667}

References G4VEmProcess::theLambdaTablePrim.

Referenced by G4VEmProcess::BuildPhysicsTable().

◆ MaterialCutsCouple()

const G4MaterialCutsCouple * G4VEmProcess::MaterialCutsCouple ( ) const
inlineprotectedinherited

Definition at line 473 of file G4VEmProcess.hh.

474{
475 return currentCouple;
476}

References G4VEmProcess::currentCouple.

Referenced by G4eplusAnnihilation::AtRestDoIt().

◆ MaxKinEnergy()

G4double G4VEmProcess::MaxKinEnergy ( ) const
inlineprotectedinherited

◆ MeanFreePath()

G4double G4VEmProcess::MeanFreePath ( const G4Track track)
inherited

Definition at line 998 of file G4VEmProcess.cc.

999{
1000 const G4double kinEnergy = track.GetKineticEnergy();
1001 CurrentSetup(track.GetMaterialCutsCouple(), kinEnergy);
1002 const G4double xs = GetCurrentLambda(kinEnergy,
1004 return (0.0 < xs) ? 1.0/xs : DBL_MAX;
1005}
G4double GetLogKineticEnergy() const
const G4DynamicParticle * GetDynamicParticle() const
G4double GetKineticEnergy() const
const G4MaterialCutsCouple * GetMaterialCutsCouple() const

References G4VEmProcess::CurrentSetup(), DBL_MAX, G4VEmProcess::GetCurrentLambda(), G4Track::GetDynamicParticle(), G4Track::GetKineticEnergy(), G4DynamicParticle::GetLogKineticEnergy(), and G4Track::GetMaterialCutsCouple().

Referenced by GetMeanFreePath(), and G4VEmProcess::GetMeanFreePath().

◆ MinKinEnergy()

G4double G4VEmProcess::MinKinEnergy ( ) const
inlineprotectedinherited

◆ MinPrimaryEnergy()

G4double G4VEmProcess::MinPrimaryEnergy ( const G4ParticleDefinition ,
const G4Material  
)
protectedvirtualinherited

Reimplemented in G4CoulombScattering, and G4GammaConversion.

Definition at line 138 of file G4VEmProcess.cc.

140{
141 return 0.0;
142}

Referenced by G4VEmProcess::BuildLambdaTable(), and G4VEmProcess::FindLambdaMax().

◆ NumberOfModels()

G4int G4VEmProcess::NumberOfModels ( ) const
inlineinherited

Definition at line 798 of file G4VEmProcess.hh.

799{
800 return numberOfModels;
801}
G4int numberOfModels

References G4VEmProcess::numberOfModels.

◆ operator!=()

G4bool G4VProcess::operator!= ( const G4VProcess right) const
inherited

Definition at line 161 of file G4VProcess.cc.

162{
163 return (this != &right);
164}

◆ operator=()

G4GammaGeneralProcess & G4GammaGeneralProcess::operator= ( const G4GammaGeneralProcess right)
delete

◆ operator==()

G4bool G4VProcess::operator== ( const G4VProcess right) const
inherited

Definition at line 155 of file G4VProcess.cc.

156{
157 return (this == &right);
158}

◆ Particle()

const G4ParticleDefinition * G4VEmProcess::Particle ( ) const
inlineinherited

Definition at line 678 of file G4VEmProcess.hh.

679{
680 return particle;
681}

References G4VEmProcess::particle.

◆ PolarAngleLimit()

G4double G4VEmProcess::PolarAngleLimit ( ) const
inlineprotectedinherited

Definition at line 1236 of file G4VEmProcess.cc.

1237{
1238 return theParameters->MscThetaLimit();
1239}
G4double MscThetaLimit() const

References G4EmParameters::MscThetaLimit(), and G4VEmProcess::theParameters.

◆ PostStepDoIt()

G4VParticleChange * G4GammaGeneralProcess::PostStepDoIt ( const G4Track track,
const G4Step step 
)
overridevirtual

Reimplemented from G4VDiscreteProcess.

Definition at line 575 of file G4GammaGeneralProcess.cc.

577{
578 // In all cases clear number of interaction lengths
580 selectedProc = nullptr;
582 /*
583 G4cout << "PostStep: preStepLambda= " << preStepLambda
584 << " PE= " << peLambda << " q= " << q << " idxE= " << idxEnergy
585 << G4endl;
586 */
587 switch (idxEnergy) {
588 case 0:
589 if(preStepLambda*q <= peLambda) {
591 } else {
594 } else {
596 }
597 }
598 break;
599
600 case 1:
601 if(q <= GetProbability(3)) {
603 } else if(q <= GetProbability(4)) {
605 } else if(theRayleigh) {
607 }
608 break;
609
610 case 2:
611 if(q <= GetProbability(7)) {
613 } else if(q <= GetProbability(8)) {
615 } else if(q <= GetProbability(9)) {
617 } else if(theGammaNuclear) {
618 SelectHadProcess(track, step, theGammaNuclear);
619 }
620 break;
621
622 case 3:
623 if(q + GetProbability(11) <= 1.0) {
625 } else if(q + GetProbability(12) <= 1.0) {
627 } else if(q + GetProbability(13) <= 1.0) {
629 } else if(theGammaNuclear && q + GetProbability(14) <= 1.0) {
630 SelectHadProcess(track, step, theGammaNuclear);
631 } else if(theConversionMM) {
633 }
634 break;
635 }
636 // sample secondaries
637 if(selectedProc != nullptr) {
638 return selectedProc->PostStepDoIt(track, step);
639 }
640 // no interaction - exception case
642 return &fParticleChange;
643}
#define G4UniformRand()
Definition: Randomize.hh:52
void SelectedProcess(const G4Step &step, G4VProcess *ptr)
void SelectHadProcess(const G4Track &, const G4Step &, G4HadronicProcess *)
G4double GetProbability(size_t idxt)
void SelectEmProcess(const G4Step &, G4VEmProcess *)
void InitializeForPostStep(const G4Track &)
virtual G4VParticleChange * PostStepDoIt(const G4Track &track, const G4Step &stepData)=0

References G4VEmProcess::fParticleChange, G4UniformRand, GetProbability(), idxEnergy, G4ParticleChangeForGamma::InitializeForPostStep(), peLambda, G4VProcess::PostStepDoIt(), G4VEmProcess::preStepLambda, selectedProc, SelectedProcess(), SelectEmProcess(), SelectHadProcess(), theCompton, theConversionEE, theConversionMM, theGammaNuclear, G4VProcess::theNumberOfInteractionLengthLeft, thePhotoElectric, theRayleigh, and theT.

◆ PostStepGetPhysicalInteractionLength()

G4double G4GammaGeneralProcess::PostStepGetPhysicalInteractionLength ( const G4Track track,
G4double  previousStepSize,
G4ForceCondition condition 
)
overridevirtual

Reimplemented from G4VDiscreteProcess.

Definition at line 467 of file G4GammaGeneralProcess.cc.

471{
473 G4double x = DBL_MAX;
474
476 const G4MaterialCutsCouple* couple = track.GetMaterialCutsCouple();
477
478 // compute mean free path
479 G4bool recompute = false;
480 if(couple != currentCouple) {
481 currentCouple = couple;
483 currentMaterial = couple->GetMaterial();
484 factor = 1.0;
485 if(baseMat) {
488 }
489 recompute = true;
490 }
491 if(energy != preStepKinEnergy) {
494 recompute = true;
495 }
496 if(recompute) {
498
499 // zero cross section
500 if(preStepLambda <= 0.0) {
503 }
504 }
505
506 // non-zero cross section
507 if(preStepLambda > 0.0) {
508
510
511 // beggining of tracking (or just after DoIt of this process)
514
515 } else if(currentInteractionLength < DBL_MAX) {
516
518 previousStepSize/currentInteractionLength;
521 }
522
523 // new mean free path and step limit for the next step
526 }
527 /*
528 G4cout << "PostStepGetPhysicalInteractionLength: e= " << energy
529 << " idxe= " << idxEnergy << " xs= " << preStepLambda
530 << " x= " << x << G4endl;
531 */
532 return x;
533}
G4double DensityFactor(G4int idx) const

References G4VEmProcess::basedCoupleIndex, G4VEmProcess::baseMat, condition(), G4VEmProcess::currentCouple, G4VEmProcess::currentCoupleIndex, G4VProcess::currentInteractionLength, G4VEmProcess::currentMaterial, DBL_MAX, G4VEmProcess::DensityFactor(), G4VEmProcess::DensityIndex(), G4INCL::KinematicsUtils::energy(), factor, G4Log(), G4UniformRand, G4Track::GetDynamicParticle(), G4MaterialCutsCouple::GetIndex(), G4Track::GetKineticEnergy(), G4DynamicParticle::GetLogKineticEnergy(), G4MaterialCutsCouple::GetMaterial(), G4Track::GetMaterialCutsCouple(), G4INCL::Math::max(), NotForced, G4VEmProcess::preStepKinEnergy, G4VEmProcess::preStepLambda, preStepLogE, G4VProcess::theInitialNumberOfInteractionLength, G4VProcess::theNumberOfInteractionLengthLeft, and TotalCrossSectionPerVolume().

◆ PostStepGPIL()

G4double G4VProcess::PostStepGPIL ( const G4Track track,
G4double  previousStepSize,
G4ForceCondition condition 
)
inlineinherited

Definition at line 479 of file G4VProcess.hh.

482{
483 return thePILfactor *
484 PostStepGetPhysicalInteractionLength(track, previousStepSize, condition);
485}
virtual G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)=0

References condition(), G4VProcess::PostStepGetPhysicalInteractionLength(), and G4VProcess::thePILfactor.

Referenced by G4SteppingManager::DefinePhysicalStepLength(), and G4ITStepProcessor::DoDefinePhysicalStepLength().

◆ PreparePhysicsTable()

void G4GammaGeneralProcess::PreparePhysicsTable ( const G4ParticleDefinition part)
overridevirtual

Reimplemented from G4VProcess.

Definition at line 142 of file G4GammaGeneralProcess.cc.

143{
144 SetParticle(&part);
145 preStepLambda = 0.0;
146 idxEnergy = 0;
147 currentCouple = nullptr;
148
151
152 isTheMaster = man->IsMaster();
153 if(isTheMaster) { SetVerboseLevel(param->Verbose()); }
154 else { SetVerboseLevel(param->WorkerVerbose()); }
155
158
159 if(1 < verboseLevel) {
160 G4cout << "G4GammaGeneralProcess::PreparePhysicsTable() for "
161 << GetProcessName()
162 << " and particle " << part.GetParticleName()
163 << " isMaster: " << isTheMaster << G4endl;
164 }
165
166 // 3 sub-processes must be always defined
167 if(thePhotoElectric == nullptr || theCompton == nullptr ||
168 theConversionEE == nullptr) {
170 ed << "### G4GeneralGammaProcess is initialized incorrectly"
171 << "\n Photoelectric: " << thePhotoElectric
172 << "\n Compton: " << theCompton
173 << "\n Conversion: " << theConversionEE;
174 G4Exception("G4GeneralGammaProcess","em0004",
175 FatalException, ed,"");
176 }
177
184
185 InitialiseProcess(&part);
186}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
G4int Verbose() const
G4int WorkerVerbose() const
void InitialiseProcess(const G4ParticleDefinition *) override
void PreparePhysicsTable(const G4ParticleDefinition &) override
void PreparePhysicsTable(const G4ParticleDefinition &) override
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
Definition: G4VProcess.hh:194

References G4VEmProcess::baseMat, G4VEmProcess::currentCouple, FatalException, G4cout, G4endl, G4Exception(), G4LossTableBuilder::GetBaseMaterialFlag(), G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4LossTableManager::GetTableBuilder(), idxEnergy, InitialiseProcess(), G4EmParameters::Instance(), G4LossTableManager::Instance(), G4LossTableManager::IsMaster(), G4VEmProcess::isTheMaster, G4VProcess::PreparePhysicsTable(), G4VEmProcess::PreparePhysicsTable(), G4HadronicProcess::PreparePhysicsTable(), G4VEmProcess::preStepLambda, G4VEmProcess::SetParticle(), G4VProcess::SetVerboseLevel(), theCompton, theConversionEE, theConversionMM, theGammaNuclear, thePhotoElectric, theRayleigh, G4EmParameters::Verbose(), G4VProcess::verboseLevel, and G4EmParameters::WorkerVerbose().

◆ PrepareWorkerPhysicsTable()

void G4VProcess::PrepareWorkerPhysicsTable ( const G4ParticleDefinition part)
virtualinherited

Reimplemented in G4BiasingProcessInterface.

Definition at line 206 of file G4VProcess.cc.

207{
209}

References G4VProcess::PreparePhysicsTable().

Referenced by G4BiasingProcessInterface::PrepareWorkerPhysicsTable().

◆ PrintWarning()

void G4VEmProcess::PrintWarning ( G4String  tit,
G4double  val 
)
privateinherited

Definition at line 1243 of file G4VEmProcess.cc.

1244{
1245 G4String ss = "G4VEmProcess::" + tit;
1247 ed << "Parameter is out of range: " << val
1248 << " it will have no effect!\n" << " Process "
1249 << GetProcessName() << " nbins= " << theParameters->NumberOfBins()
1250 << " Emin(keV)= " << theParameters->MinKinEnergy()/keV
1251 << " Emax(GeV)= " << theParameters->MaxKinEnergy()/GeV;
1252 G4Exception(ss, "em0044", JustWarning, ed);
1253}
@ JustWarning
static constexpr double keV
Definition: G4SIunits.hh:202
G4int NumberOfBins() const

References G4Exception(), G4VProcess::GetProcessName(), GeV, JustWarning, keV, G4EmParameters::MaxKinEnergy(), G4EmParameters::MinKinEnergy(), G4EmParameters::NumberOfBins(), and G4VEmProcess::theParameters.

Referenced by G4VEmProcess::SetLambdaBinning(), G4VEmProcess::SetMaxKinEnergy(), G4VEmProcess::SetMinKinEnergy(), and G4VEmProcess::SetMinKinEnergyPrim().

◆ ProcessDescription()

void G4GammaGeneralProcess::ProcessDescription ( std::ostream &  outFile) const
overridevirtual

Reimplemented from G4VProcess.

Definition at line 733 of file G4GammaGeneralProcess.cc.

734{
741}
void ProcessDescription(std::ostream &outFile) const override
void ProcessDescription(std::ostream &outFile) const override
virtual void ProcessDescription(std::ostream &outfile) const
Definition: G4VProcess.cc:175

References G4VProcess::ProcessDescription(), G4VEmProcess::ProcessDescription(), G4HadronicProcess::ProcessDescription(), theCompton, theConversionEE, theConversionMM, theGammaNuclear, thePhotoElectric, and theRayleigh.

◆ RecalculateLambda()

G4double G4VEmProcess::RecalculateLambda ( G4double  kinEnergy,
const G4MaterialCutsCouple couple 
)
inlineprotectedinherited

◆ ResetNumberOfInteractionLengthLeft()

void G4VProcess::ResetNumberOfInteractionLengthLeft ( )
virtualinherited

◆ RetrievePhysicsTable()

G4bool G4GammaGeneralProcess::RetrievePhysicsTable ( const G4ParticleDefinition part,
const G4String directory,
G4bool  ascii 
)
overridevirtual

Reimplemented from G4VProcess.

Definition at line 687 of file G4GammaGeneralProcess.cc.

690{
691 if(1 < verboseLevel) {
692 G4cout << "G4GammaGeneralProcess::RetrievePhysicsTable() for "
693 << part->GetParticleName() << " and process "
694 << GetProcessName() << G4endl;
695 }
696 G4bool yes = true;
697 if(!thePhotoElectric->RetrievePhysicsTable(part, directory, ascii))
698 { yes = false; }
699 if(!theCompton->RetrievePhysicsTable(part, directory, ascii))
700 { yes = false; }
701 if(!theConversionEE->RetrievePhysicsTable(part, directory, ascii))
702 { yes = false; }
703 if(theRayleigh != nullptr &&
704 !theRayleigh->RetrievePhysicsTable(part, directory, ascii))
705 { yes = false; }
706
707 for(size_t i=0; i<nTables; ++i) {
708 if(theT[i]) {
709 G4String nam = (0==i || 2==i || 6==i || 10==i)
710 ? "LambdaGeneral" + nameT[i] : "ProbGeneral" + nameT[i];
711 G4String fnam = GetPhysicsTableFileName(part,directory,nam,ascii);
712 if(!theHandler->RetrievePhysicsTable(i, part, fnam, ascii, splineFlag))
713 { yes = false; }
714 }
715 }
716 if(yes) {
717 }
718 return yes;
719}
G4bool RetrievePhysicsTable(size_t idx, const G4ParticleDefinition *part, const G4String &fname, G4bool ascii, G4bool spline)
static G4String nameT[nTables]
G4bool RetrievePhysicsTable(const G4ParticleDefinition *, const G4String &directory, G4bool ascii) override
const G4String & GetPhysicsTableFileName(const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false)
Definition: G4VProcess.cc:182

References G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4VProcess::GetPhysicsTableFileName(), G4VProcess::GetProcessName(), nameT, nTables, G4VEmProcess::RetrievePhysicsTable(), G4EmDataHandler::RetrievePhysicsTable(), splineFlag, theCompton, theConversionEE, theHandler, thePhotoElectric, theRayleigh, theT, and G4VProcess::verboseLevel.

◆ RetrieveTable()

G4bool G4GammaGeneralProcess::RetrieveTable ( G4VEmProcess ,
const G4String directory,
G4bool  ascii 
)
private

◆ SecondaryParticle()

const G4ParticleDefinition * G4VEmProcess::SecondaryParticle ( ) const
inlineinherited

Definition at line 685 of file G4VEmProcess.hh.

686{
687 return secondaryParticle;
688}

References G4VEmProcess::secondaryParticle.

◆ SelectedProcess()

void G4GammaGeneralProcess::SelectedProcess ( const G4Step step,
G4VProcess ptr 
)
inlineprotected

Definition at line 212 of file G4GammaGeneralProcess.hh.

213{
214 selectedProc = ptr;
216}
void SetProcessDefinedStep(const G4VProcess *aValue)
G4StepPoint * GetPostStepPoint() const

References G4Step::GetPostStepPoint(), selectedProc, and G4StepPoint::SetProcessDefinedStep().

Referenced by PostStepDoIt(), SelectEmProcess(), and SelectHadProcess().

◆ SelectEmProcess()

void G4GammaGeneralProcess::SelectEmProcess ( const G4Step step,
G4VEmProcess proc 
)
inlineprotected

◆ SelectHadProcess()

void G4GammaGeneralProcess::SelectHadProcess ( const G4Track track,
const G4Step step,
G4HadronicProcess proc 
)
protected

◆ SelectModel()

G4VEmModel * G4VEmProcess::SelectModel ( G4double  kinEnergy,
size_t   
)
inlineprotectedinherited

◆ SelectModelForMaterial()

G4VEmModel * G4VEmProcess::SelectModelForMaterial ( G4double  kinEnergy,
size_t  idxCouple 
) const
inlineinherited

Definition at line 526 of file G4VEmProcess.hh.

528{
529 return modelManager->SelectModel(kinEnergy, idxCouple);
530}

References G4VEmProcess::modelManager, and G4EmModelManager::SelectModel().

Referenced by G4EmCalculator::FindEmModel().

◆ SetBuildTableFlag()

void G4VEmProcess::SetBuildTableFlag ( G4bool  val)
inlineinherited

◆ SetCrossSectionBiasingFactor()

void G4VEmProcess::SetCrossSectionBiasingFactor ( G4double  f,
G4bool  flag = true 
)
inherited

Definition at line 1111 of file G4VEmProcess.cc.

1112{
1113 if(f > 0.0) {
1114 biasFactor = f;
1115 weightFlag = flag;
1116 if(1 < verboseLevel) {
1117 G4cout << "### SetCrossSectionBiasingFactor: for "
1119 << " and process " << GetProcessName()
1120 << " biasFactor= " << f << " weightFlag= " << flag
1121 << G4endl;
1122 }
1123 }
1124}

References G4VEmProcess::biasFactor, G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4VEmProcess::particle, G4VProcess::verboseLevel, and G4VEmProcess::weightFlag.

Referenced by G4EmExtraParameters::DefineRegParamForEM().

◆ SetCrossSectionType()

void G4VEmProcess::SetCrossSectionType ( G4CrossSectionType  val)
inlineinherited

◆ SetEmMasterProcess()

void G4VEmProcess::SetEmMasterProcess ( const G4VEmProcess ptr)
inlineinherited

Definition at line 791 of file G4VEmProcess.hh.

792{
793 masterProc = ptr;
794}
const G4VEmProcess * masterProc

References G4VEmProcess::masterProc.

Referenced by BuildPhysicsTable().

◆ SetEmModel()

void G4VEmProcess::SetEmModel ( G4VEmModel ptr,
G4int  index = 0 
)
inherited

Definition at line 157 of file G4VEmProcess.cc.

158{
159 if(nullptr == ptr) { return; }
160 if(!emModels.empty()) {
161 for(auto & em : emModels) { if(em == ptr) { return; } }
162 }
163 emModels.push_back(ptr);
164}

References G4VEmProcess::emModels.

Referenced by G4EmDNAPhysics::ConstructGammaPositronProcesses(), G4EmDNAPhysics_option1::ConstructProcess(), G4EmDNAPhysics_option2::ConstructProcess(), G4EmDNAPhysics_option3::ConstructProcess(), G4EmDNAPhysics_option4::ConstructProcess(), G4EmDNAPhysics_option5::ConstructProcess(), G4EmDNAPhysics_option6::ConstructProcess(), G4EmDNAPhysics_option7::ConstructProcess(), G4EmDNAPhysics_option8::ConstructProcess(), G4EmDNAPhysics_stationary_option2::ConstructProcess(), G4EmDNAPhysics_stationary_option4::ConstructProcess(), G4EmDNAPhysics_stationary_option6::ConstructProcess(), G4EmDNAPhysics::ConstructProcess(), G4EmDNAPhysics_stationary::ConstructProcess(), G4EmDNAPhysicsActivator::ConstructProcess(), G4EmLivermorePhysics::ConstructProcess(), G4EmLowEPPhysics::ConstructProcess(), G4EmPenelopePhysics::ConstructProcess(), G4EmStandardPhysics::ConstructProcess(), G4EmStandardPhysics_option1::ConstructProcess(), G4EmStandardPhysics_option2::ConstructProcess(), G4EmStandardPhysics_option3::ConstructProcess(), G4EmStandardPhysics_option4::ConstructProcess(), G4EmStandardPhysicsGS::ConstructProcess(), G4EmStandardPhysicsSS::ConstructProcess(), G4EmStandardPhysicsWVI::ConstructProcess(), G4EmDNAPhysicsActivator::DeactivateNuclearStopping(), G4EmModelActivator::FindOrAddProcess(), G4PolarizedAnnihilation::G4PolarizedAnnihilation(), G4DNAAttachment::InitialiseProcess(), G4DNAChargeDecrease::InitialiseProcess(), G4DNAChargeIncrease::InitialiseProcess(), G4DNADissociation::InitialiseProcess(), G4DNAElastic::InitialiseProcess(), G4DNAElectronSolvation::InitialiseProcess(), G4DNAExcitation::InitialiseProcess(), G4DNAIonisation::InitialiseProcess(), G4DNAPlasmonExcitation::InitialiseProcess(), G4DNAPositronium::InitialiseProcess(), G4DNARotExcitation::InitialiseProcess(), G4DNAVibExcitation::InitialiseProcess(), G4NuclearStopping::InitialiseProcess(), G4eeToHadrons::InitialiseProcess(), G4JAEAElasticScattering::InitialiseProcess(), G4MicroElecElastic::InitialiseProcess(), G4MicroElecInelastic::InitialiseProcess(), G4MicroElecLOPhononScattering::InitialiseProcess(), G4RayleighScattering::InitialiseProcess(), G4PolarizedCompton::InitialiseProcess(), G4PolarizedGammaConversion::InitialiseProcess(), G4PolarizedPhotoElectric::InitialiseProcess(), G4ComptonScattering::InitialiseProcess(), G4CoulombScattering::InitialiseProcess(), G4eplusAnnihilation::InitialiseProcess(), G4GammaConversion::InitialiseProcess(), G4PhotoElectricEffect::InitialiseProcess(), and G4VEmProcess::PreparePhysicsTable().

◆ SetEnergyOfCrossSectionMax()

void G4VEmProcess::SetEnergyOfCrossSectionMax ( std::vector< G4double > *  ptr)
inherited

Definition at line 1082 of file G4VEmProcess.cc.

1083{
1084 if(nullptr == ptr) {
1086 } else {
1088 }
1089}

References fEmIncreasing, G4VEmProcess::fXSType, and G4VEmProcess::theEnergyOfCrossSectionMax.

Referenced by G4VEmProcess::BuildPhysicsTable().

◆ SetLambdaBinning()

void G4VEmProcess::SetLambdaBinning ( G4int  nbins)
inherited

Definition at line 1174 of file G4VEmProcess.cc.

1175{
1176 if(5 < n && n < 10000000) {
1177 nLambdaBins = n;
1178 actBinning = true;
1179 } else {
1180 G4double e = (G4double)n;
1181 PrintWarning("SetLambdaBinning", e);
1182 }
1183}
void PrintWarning(G4String tit, G4double val)

References G4VEmProcess::actBinning, CLHEP::detail::n, G4VEmProcess::nLambdaBins, and G4VEmProcess::PrintWarning().

Referenced by G4GammaConversion::G4GammaConversion(), and G4PolarizedGammaConversion::G4PolarizedGammaConversion().

◆ SetMasterProcess()

void G4VProcess::SetMasterProcess ( G4VProcess masterP)
virtualinherited

◆ SetMaxKinEnergy()

void G4VEmProcess::SetMaxKinEnergy ( G4double  e)
inherited

◆ SetMinKinEnergy()

void G4VEmProcess::SetMinKinEnergy ( G4double  e)
inherited

◆ SetMinKinEnergyPrim()

void G4VEmProcess::SetMinKinEnergyPrim ( G4double  e)
inherited

◆ SetParticle()

void G4VEmProcess::SetParticle ( const G4ParticleDefinition p)
inlineprotectedinherited

◆ SetPILfactor()

void G4VProcess::SetPILfactor ( G4double  value)
inlineinherited

Definition at line 449 of file G4VProcess.hh.

450{
451 if (value>0.) { thePILfactor = value; }
452}

References G4VProcess::thePILfactor.

Referenced by export_G4VProcess().

◆ SetProcessManager()

void G4VProcess::SetProcessManager ( const G4ProcessManager procMan)
inlinevirtualinherited

◆ SetProcessSubType()

void G4VProcess::SetProcessSubType ( G4int  value)
inlineinherited

Definition at line 406 of file G4VProcess.hh.

407{
408 theProcessSubType = value;
409}

References G4VProcess::theProcessSubType.

Referenced by G4DNAElectronHoleRecombination::Create(), G4DNASecondOrderReaction::Create(), G4AnnihiToMuPair::G4AnnihiToMuPair(), G4BiasingProcessInterface::G4BiasingProcessInterface(), G4Cerenkov::G4Cerenkov(), G4ComptonScattering::G4ComptonScattering(), G4CoulombScattering::G4CoulombScattering(), G4CoupledTransportation::G4CoupledTransportation(), G4Decay::G4Decay(), G4DecayWithSpin::G4DecayWithSpin(), G4DNAAttachment::G4DNAAttachment(), G4DNABrownianTransportation::G4DNABrownianTransportation(), G4DNAChargeDecrease::G4DNAChargeDecrease(), G4DNAChargeIncrease::G4DNAChargeIncrease(), G4DNAElastic::G4DNAElastic(), G4DNAElectronSolvation::G4DNAElectronSolvation(), G4DNAExcitation::G4DNAExcitation(), G4DNAIonisation::G4DNAIonisation(), G4DNAMolecularDissociation::G4DNAMolecularDissociation(), G4DNAScavengerProcess::G4DNAScavengerProcess(), G4DNAVibExcitation::G4DNAVibExcitation(), G4eBremsstrahlung::G4eBremsstrahlung(), G4eeToHadrons::G4eeToHadrons(), G4eIonisation::G4eIonisation(), G4ePairProduction::G4ePairProduction(), G4eplusAnnihilation::G4eplusAnnihilation(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4GammaConversion::G4GammaConversion(), G4GammaConversionToMuons::G4GammaConversionToMuons(), G4GammaGeneralProcess(), G4HadronicProcess::G4HadronicProcess(), G4hhIonisation::G4hhIonisation(), G4hIonisation::G4hIonisation(), G4ionIonisation::G4ionIonisation(), G4ITTransportation::G4ITTransportation(), G4JAEAElasticScattering::G4JAEAElasticScattering(), G4MicroElecElastic::G4MicroElecElastic(), G4MicroElecInelastic::G4MicroElecInelastic(), G4MicroElecLOPhononScattering::G4MicroElecLOPhononScattering(), G4MicroElecSurface::G4MicroElecSurface(), G4mplIonisation::G4mplIonisation(), G4MuBremsstrahlung::G4MuBremsstrahlung(), G4MuIonisation::G4MuIonisation(), G4MuonMinusAtomicCapture::G4MuonMinusAtomicCapture(), G4MuPairProduction::G4MuPairProduction(), G4NeutronKiller::G4NeutronKiller(), G4NuclearStopping::G4NuclearStopping(), G4OpAbsorption::G4OpAbsorption(), G4OpBoundaryProcess::G4OpBoundaryProcess(), G4OpMieHG::G4OpMieHG(), G4OpRayleigh::G4OpRayleigh(), G4OpWLS::G4OpWLS(), G4OpWLS2::G4OpWLS2(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4PhotoElectricEffect::G4PhotoElectricEffect(), G4PionDecayMakeSpin::G4PionDecayMakeSpin(), G4PolarizedCompton::G4PolarizedCompton(), G4PolarizedGammaConversion::G4PolarizedGammaConversion(), G4PolarizedIonisation::G4PolarizedIonisation(), G4PolarizedPhotoElectric::G4PolarizedPhotoElectric(), G4RadioactiveDecay::G4RadioactiveDecay(), G4RayleighScattering::G4RayleighScattering(), G4Scintillation::G4Scintillation(), G4StepLimiter::G4StepLimiter(), G4SynchrotronRadiation::G4SynchrotronRadiation(), G4SynchrotronRadiationInMat::G4SynchrotronRadiationInMat(), G4TransitionRadiation::G4TransitionRadiation(), G4Transportation::G4Transportation(), G4UCNAbsorption::G4UCNAbsorption(), G4UCNBoundaryProcess::G4UCNBoundaryProcess(), G4UCNLoss::G4UCNLoss(), G4UCNMultiScattering::G4UCNMultiScattering(), G4UnknownDecay::G4UnknownDecay(), G4UserSpecialCuts::G4UserSpecialCuts(), G4VMultipleScattering::G4VMultipleScattering(), G4VTransitionRadiation::G4VTransitionRadiation(), G4VXTRenergyLoss::G4VXTRenergyLoss(), and G4Decay::SetExtDecayer().

◆ SetProcessType()

void G4VProcess::SetProcessType ( G4ProcessType  aType)
inlineinherited

Definition at line 394 of file G4VProcess.hh.

395{
396 theProcessType = aType;
397}

References G4VProcess::theProcessType.

Referenced by G4MaxTimeCuts::G4MaxTimeCuts(), and G4MinEkineCuts::G4MinEkineCuts().

◆ SetSecondaryParticle()

void G4VEmProcess::SetSecondaryParticle ( const G4ParticleDefinition p)
inlineprotectedinherited

◆ SetSplineFlag()

void G4VEmProcess::SetSplineFlag ( G4bool  val)
inlineprotectedinherited

◆ SetStartFromNullFlag()

void G4VEmProcess::SetStartFromNullFlag ( G4bool  val)
inlineprotectedinherited

◆ SetVerboseLevel()

void G4VProcess::SetVerboseLevel ( G4int  value)
inlineinherited

◆ StartTracking()

void G4GammaGeneralProcess::StartTracking ( G4Track )
overridevirtual

Reimplemented from G4VProcess.

Definition at line 460 of file G4GammaGeneralProcess.cc.

461{
463}

References G4VProcess::theNumberOfInteractionLengthLeft.

◆ StorePhysicsTable()

G4bool G4GammaGeneralProcess::StorePhysicsTable ( const G4ParticleDefinition part,
const G4String directory,
G4bool  ascii = false 
)
overridevirtual

Reimplemented from G4VProcess.

Definition at line 657 of file G4GammaGeneralProcess.cc.

660{
661 G4bool yes = true;
662 if(!isTheMaster) { return yes; }
663 if(!thePhotoElectric->StorePhysicsTable(part, directory, ascii))
664 { yes = false; }
665 if(!theCompton->StorePhysicsTable(part, directory, ascii))
666 { yes = false; }
667 if(!theConversionEE->StorePhysicsTable(part, directory, ascii))
668 { yes = false; }
669 if(theRayleigh != nullptr &&
670 !theRayleigh->StorePhysicsTable(part, directory, ascii))
671 { yes = false; }
672
673 for(size_t i=0; i<nTables; ++i) {
674 if(theT[i]) {
675 G4String nam = (0==i || 2==i || 6==i || 10==i)
676 ? "LambdaGeneral" + nameT[i] : "ProbGeneral" + nameT[i];
677 G4String fnam = GetPhysicsTableFileName(part,directory,nam,ascii);
678 if(!theHandler->StorePhysicsTable(i, part, fnam, ascii)) { yes = false; }
679 }
680 }
681 return yes;
682}
G4bool StorePhysicsTable(size_t idx, const G4ParticleDefinition *part, const G4String &fname, G4bool ascii)
G4bool StorePhysicsTable(const G4ParticleDefinition *, const G4String &directory, G4bool ascii=false) override

References G4VProcess::GetPhysicsTableFileName(), G4VEmProcess::isTheMaster, nameT, nTables, G4VEmProcess::StorePhysicsTable(), G4EmDataHandler::StorePhysicsTable(), theCompton, theConversionEE, theHandler, thePhotoElectric, theRayleigh, and theT.

◆ StreamInfo()

void G4VEmProcess::StreamInfo ( std::ostream &  outFile,
const G4ParticleDefinition part,
G4bool  rst = false 
) const
privateinherited

Definition at line 477 of file G4VEmProcess.cc.

479{
480 G4String indent = (rst ? " " : "");
481 out << std::setprecision(6);
482 out << G4endl << indent << GetProcessName() << ": ";
483 if (!rst) {
484 out << " for " << part.GetParticleName();
485 }
486 if(fXSType != fEmNoIntegral) { out << " XStype:" << fXSType; }
487 if(applyCuts) { out << " applyCuts:1 "; }
488 out << " SubType=" << GetProcessSubType();
489 if(biasFactor != 1.0) { out << " BiasingFactor= " << biasFactor; }
490 out << " BuildTable=" << buildLambdaTable << G4endl;
491 if(buildLambdaTable) {
492 if(particle == &part) {
493 size_t length = theLambdaTable->length();
494 for(size_t i=0; i<length; ++i) {
495 G4PhysicsVector* v = (*theLambdaTable)[i];
496 if(v) {
497 out << " Lambda table from ";
498 G4double emin = v->Energy(0);
500 G4int nbin = v->GetVectorLength() - 1;
501 if(emin > minKinEnergy) { out << "threshold "; }
502 else { out << G4BestUnit(emin,"Energy"); }
503 out << " to "
504 << G4BestUnit(emax,"Energy")
505 << ", " << G4lrint(nbin/std::log10(emax/emin))
506 << " bins/decade, spline: "
507 << splineFlag << G4endl;
508 break;
509 }
510 }
511 } else {
512 out << " Used Lambda table of "
514 }
515 }
517 if(particle == &part) {
518 size_t length = theLambdaTablePrim->length();
519 for(size_t i=0; i<length; ++i) {
520 G4PhysicsVector* v = (*theLambdaTablePrim)[i];
521 if(v) {
522 out << " LambdaPrime table from "
523 << G4BestUnit(v->Energy(0),"Energy")
524 << " to "
525 << G4BestUnit(v->GetMaxEnergy(),"Energy")
526 << " in " << v->GetVectorLength()-1
527 << " bins " << G4endl;
528 break;
529 }
530 }
531 } else {
532 out << " Used LambdaPrime table of "
534 }
535 }
538
539 if(verboseLevel > 2 && buildLambdaTable) {
540 out << " LambdaTable address= " << theLambdaTable << G4endl;
541 if(theLambdaTable && particle == &part) {
542 out << (*theLambdaTable) << G4endl;
543 }
544 }
545}
#define G4BestUnit(a, b)
void DumpModelList(std::ostream &out, G4int verb)
std::size_t length() const
G4double GetMaxEnergy() const
G4double Energy(const std::size_t index) const
std::size_t GetVectorLength() const
virtual void StreamProcessInfo(std::ostream &) const
Definition: G4VEmProcess.hh:94

References G4VEmProcess::applyCuts, G4VEmProcess::biasFactor, G4VEmProcess::buildLambdaTable, G4EmModelManager::DumpModelList(), emax, G4PhysicsVector::Energy(), fEmNoIntegral, G4VEmProcess::fXSType, G4BestUnit, G4endl, G4lrint(), G4PhysicsVector::GetMaxEnergy(), G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4VProcess::GetProcessSubType(), G4PhysicsVector::GetVectorLength(), G4PhysicsTable::length(), G4VEmProcess::maxKinEnergy, G4VEmProcess::minKinEnergy, G4VEmProcess::minKinEnergyPrim, G4VEmProcess::modelManager, G4VEmProcess::particle, G4VEmProcess::splineFlag, G4VEmProcess::StreamProcessInfo(), G4VEmProcess::theLambdaTable, G4VEmProcess::theLambdaTablePrim, and G4VProcess::verboseLevel.

Referenced by G4VEmProcess::BuildPhysicsTable(), and G4VEmProcess::ProcessDescription().

◆ StreamProcessInfo()

virtual void G4VEmProcess::StreamProcessInfo ( std::ostream &  ) const
inlineprotectedvirtualinherited

Reimplemented in G4eeToHadrons, G4CoulombScattering, and G4eplusAnnihilation.

Definition at line 94 of file G4VEmProcess.hh.

94{};

Referenced by G4VEmProcess::StreamInfo().

◆ SubtractNumberOfInteractionLengthLeft()

void G4VProcess::SubtractNumberOfInteractionLengthLeft ( G4double  prevStepSize)
inlineprotectedinherited

Definition at line 524 of file G4VProcess.hh.

525{
527 {
530 {
532 }
533 }
534 else
535 {
536#ifdef G4VERBOSE
537 if (verboseLevel>0)
538 {
539 G4cerr << "G4VProcess::SubtractNumberOfInteractionLengthLeft()";
540 G4cerr << " [" << theProcessName << "]" <<G4endl;
541 G4cerr << " currentInteractionLength = "
542 << currentInteractionLength << " [mm]";
543 G4cerr << " previousStepSize = " << prevStepSize << " [mm]";
544 G4cerr << G4endl;
545 }
546#endif
547 G4String msg = "Negative currentInteractionLength for ";
548 msg += theProcessName;
549 G4Exception("G4VProcess::SubtractNumberOfInteractionLengthLeft()",
550 "ProcMan201", EventMustBeAborted, msg);
551 }
552}
@ EventMustBeAborted
G4GLOB_DLL std::ostream G4cerr
static constexpr double perMillion

References G4VProcess::currentInteractionLength, EventMustBeAborted, G4cerr, G4endl, G4Exception(), CLHEP::perMillion, G4VProcess::theNumberOfInteractionLengthLeft, G4VProcess::theProcessName, and G4VProcess::verboseLevel.

Referenced by G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), and G4Decay::PostStepGetPhysicalInteractionLength().

◆ TotalCrossSectionPerVolume()

G4double G4GammaGeneralProcess::TotalCrossSectionPerVolume ( )
protected

Definition at line 537 of file G4GammaGeneralProcess.cc.

538{
539 G4double cross = 0.0;
540 /*
541 G4cout << "#Total: " << preStepKinEnergy << " " << minPEEnergy << " "
542 << minEEEnergy << " " << minMMEnergy<< G4endl;
543 G4cout << " idxE= " << idxEnergy
544 << " idxC= " << currentCoupleIndex << G4endl;
545 */
547 cross = ComputeGeneralLambda(0, 0);
548 //G4cout << "XS1: " << cross << G4endl;
550 cross += peLambda;
551 //G4cout << "XS2: " << cross << G4endl;
552
553 } else if(preStepKinEnergy < minEEEnergy) {
554 cross = ComputeGeneralLambda(1, 2);
555 //G4cout << "XS3: " << cross << G4endl;
556
557 } else if(preStepKinEnergy < minMMEnergy) {
558 cross = ComputeGeneralLambda(2, 6);
559 //G4cout << "XS4: " << cross << G4endl;
560
561 } else {
562 cross = ComputeGeneralLambda(3, 10);
563 //G4cout << "XS5: " << cross << G4endl;
564 }
565 /*
566 G4cout << "xs= " << cross << " idxE= " << idxEnergy
567 << " idxC= " << currentCoupleIndex
568 << " E= " << energy << G4endl;
569 */
570 return cross;
571}
G4double ComputeGeneralLambda(size_t idxe, size_t idxt)

References ComputeGeneralLambda(), G4VEmProcess::currentCouple, G4VEmProcess::GetLambda(), minEEEnergy, minMMEnergy, minPEEnergy, peLambda, G4VEmProcess::preStepKinEnergy, preStepLogE, and thePhotoElectric.

Referenced by PostStepGetPhysicalInteractionLength().

◆ UseBaseMaterial()

G4bool G4VEmProcess::UseBaseMaterial ( ) const
inlineinherited

Definition at line 777 of file G4VEmProcess.hh.

778{
779 return baseMat;
780}

References G4VEmProcess::baseMat.

Referenced by BuildPhysicsTable(), and G4VEmProcess::BuildPhysicsTable().

Field Documentation

◆ actBinning

G4bool G4VEmProcess::actBinning = false
privateinherited

◆ actMaxKinEnergy

G4bool G4VEmProcess::actMaxKinEnergy = false
privateinherited

◆ actMinKinEnergy

G4bool G4VEmProcess::actMinKinEnergy = false
privateinherited

◆ aParticleChange

G4ParticleChange G4VProcess::aParticleChange
protectedinherited

◆ applyCuts

G4bool G4VEmProcess::applyCuts = false
privateinherited

◆ aProcessManager

const G4ProcessManager* G4VProcess::aProcessManager = nullptr
protectedinherited

Definition at line 319 of file G4VProcess.hh.

Referenced by G4VProcess::GetProcessManager(), and G4VProcess::SetProcessManager().

◆ augerID

G4int G4VEmProcess::augerID = _AugerElectron
protectedinherited

Definition at line 420 of file G4VEmProcess.hh.

Referenced by G4eplusAnnihilation::AtRestDoIt(), and G4VEmProcess::PostStepDoIt().

◆ basedCoupleIndex

size_t G4VEmProcess::basedCoupleIndex = 0
protectedinherited

◆ baseMat

G4bool G4VEmProcess::baseMat = false
protectedinherited

◆ baseMaterial

const G4Material* G4VEmProcess::baseMaterial = nullptr
privateinherited

◆ biasFactor

G4double G4VEmProcess::biasFactor = 1.0
privateinherited

◆ biasFlag

G4bool G4VEmProcess::biasFlag = false
privateinherited

◆ biasID

G4int G4VEmProcess::biasID = _EM
protectedinherited

Definition at line 421 of file G4VEmProcess.hh.

Referenced by G4eplusAnnihilation::AtRestDoIt().

◆ biasManager

G4EmBiasingManager* G4VEmProcess::biasManager = nullptr
protectedinherited

◆ buildLambdaTable

G4bool G4VEmProcess::buildLambdaTable = true
privateinherited

◆ coupleIdxLambda

size_t G4VEmProcess::coupleIdxLambda = 0
protectedinherited

Definition at line 425 of file G4VEmProcess.hh.

Referenced by G4VEmProcess::GetCurrentLambda().

◆ currentCouple

const G4MaterialCutsCouple* G4VEmProcess::currentCouple = nullptr
protectedinherited

◆ currentCoupleIndex

size_t G4VEmProcess::currentCoupleIndex = 0
protectedinherited

◆ currentInteractionLength

G4double G4VProcess::currentInteractionLength = -1.0
protectedinherited

◆ currentMaterial

const G4Material* G4VEmProcess::currentMaterial = nullptr
protectedinherited

◆ currentModel

G4VEmModel* G4VEmProcess::currentModel = nullptr
privateinherited

◆ currentParticle

const G4ParticleDefinition* G4VEmProcess::currentParticle = nullptr
privateinherited

◆ emModels

std::vector<G4VEmModel*> G4VEmProcess::emModels
privateinherited

Definition at line 453 of file G4VEmProcess.hh.

Referenced by G4VEmProcess::EmModel(), and G4VEmProcess::SetEmModel().

◆ enableAlongStepDoIt

G4bool G4VProcess::enableAlongStepDoIt = true
protectedinherited

◆ enableAtRestDoIt

G4bool G4VProcess::enableAtRestDoIt = true
protectedinherited

◆ enablePostStepDoIt

G4bool G4VProcess::enablePostStepDoIt = true
protectedinherited

◆ factor

G4double G4GammaGeneralProcess::factor = 1.0
protected

◆ fFactor

G4double G4VEmProcess::fFactor = 1.0
privateinherited

◆ fLambda

G4double G4VEmProcess::fLambda = 0.0
privateinherited

Definition at line 398 of file G4VEmProcess.hh.

Referenced by G4VEmProcess::GetCurrentLambda().

◆ fLambdaEnergy

G4double G4VEmProcess::fLambdaEnergy = 0.0
privateinherited

◆ fluoID

G4int G4VEmProcess::fluoID = _Fluorescence
protectedinherited

Definition at line 419 of file G4VEmProcess.hh.

Referenced by G4eplusAnnihilation::AtRestDoIt(), and G4VEmProcess::PostStepDoIt().

◆ fParticleChange

G4ParticleChangeForGamma G4VEmProcess::fParticleChange
protectedinherited

◆ fProcessTable

G4ProcessTable* G4VProcess::fProcessTable = nullptr
privateinherited

Definition at line 374 of file G4VProcess.hh.

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

◆ fXSType

G4CrossSectionType G4VEmProcess::fXSType = fEmNoIntegral
privateinherited

◆ idxEnergy

size_t G4GammaGeneralProcess::idxEnergy = 0
private

◆ idxLambda

size_t G4VEmProcess::idxLambda = 0
protectedinherited

◆ isIon

G4bool G4VEmProcess::isIon = false
privateinherited

◆ isTheMaster

G4bool G4VEmProcess::isTheMaster = true
protectedinherited

◆ lambdaFactor

G4double G4VEmProcess::lambdaFactor = 0.8
privateinherited

◆ lManager

G4LossTableManager* G4VEmProcess::lManager = nullptr
privateinherited

◆ logLambdaFactor

G4double G4VEmProcess::logLambdaFactor
privateinherited

◆ mainSecondaries

G4int G4VEmProcess::mainSecondaries = 1
protectedinherited

◆ massRatio

G4double G4VEmProcess::massRatio = 1.0
privateinherited

◆ masterProc

const G4VEmProcess* G4VEmProcess::masterProc = nullptr
privateinherited

◆ masterProcessShadow

G4VProcess* G4VProcess::masterProcessShadow = nullptr
privateinherited

Definition at line 370 of file G4VProcess.hh.

Referenced by G4VProcess::GetMasterProcess(), and G4VProcess::SetMasterProcess().

◆ maxKinEnergy

G4double G4VEmProcess::maxKinEnergy
privateinherited

◆ mfpKinEnergy

G4double G4VEmProcess::mfpKinEnergy = DBL_MAX
protectedinherited

◆ minEEEnergy

G4double G4GammaGeneralProcess::minEEEnergy
private

Definition at line 181 of file G4GammaGeneralProcess.hh.

Referenced by InitialiseProcess(), and TotalCrossSectionPerVolume().

◆ minKinEnergy

G4double G4VEmProcess::minKinEnergy
privateinherited

◆ minKinEnergyPrim

G4double G4VEmProcess::minKinEnergyPrim = DBL_MAX
privateinherited

◆ minMMEnergy

G4double G4GammaGeneralProcess::minMMEnergy
private

Definition at line 182 of file G4GammaGeneralProcess.hh.

Referenced by InitialiseProcess(), and TotalCrossSectionPerVolume().

◆ minPEEnergy

G4double G4GammaGeneralProcess::minPEEnergy
private

Definition at line 180 of file G4GammaGeneralProcess.hh.

Referenced by InitialiseProcess(), and TotalCrossSectionPerVolume().

◆ modelManager

G4EmModelManager* G4VEmProcess::modelManager = nullptr
privateinherited

◆ nameT

G4String G4GammaGeneralProcess::nameT
staticprivate
Initial value:
=
{"0","1","2","3","4","5","6","7","8",
"9","10","11","12","13","14"}

Definition at line 172 of file G4GammaGeneralProcess.hh.

Referenced by RetrievePhysicsTable(), and StorePhysicsTable().

◆ nHighE

size_t G4GammaGeneralProcess::nHighE = 50
private

Definition at line 186 of file G4GammaGeneralProcess.hh.

Referenced by InitialiseProcess().

◆ nLambdaBins

G4int G4VEmProcess::nLambdaBins = 84
privateinherited

◆ nLowE

size_t G4GammaGeneralProcess::nLowE = 40
private

Definition at line 185 of file G4GammaGeneralProcess.hh.

Referenced by InitialiseProcess().

◆ nTables

const size_t G4GammaGeneralProcess::nTables = 15
staticprivate

◆ numberOfModels

G4int G4VEmProcess::numberOfModels = 0
privateinherited

◆ particle

const G4ParticleDefinition* G4VEmProcess::particle = nullptr
privateinherited

◆ peLambda

G4double G4GammaGeneralProcess::peLambda = 0.0
private

Definition at line 183 of file G4GammaGeneralProcess.hh.

Referenced by PostStepDoIt(), and TotalCrossSectionPerVolume().

◆ pParticleChange

G4VParticleChange* G4VProcess::pParticleChange = nullptr
protectedinherited

Definition at line 321 of file G4VProcess.hh.

Referenced by G4VMultipleScattering::AddEmModel(), G4VEmProcess::AddEmModel(), G4VEnergyLossProcess::AddEmModel(), G4ImportanceProcess::AlongStepDoIt(), G4WeightCutOffProcess::AlongStepDoIt(), G4WeightWindowProcess::AlongStepDoIt(), G4VContinuousDiscreteProcess::AlongStepDoIt(), G4VContinuousProcess::AlongStepDoIt(), G4VRestContinuousDiscreteProcess::AlongStepDoIt(), G4VRestContinuousProcess::AlongStepDoIt(), G4ParallelWorldProcess::AlongStepDoIt(), G4ParallelWorldScoringProcess::AlongStepDoIt(), G4VITRestProcess::AtRestDoIt(), G4VRestContinuousDiscreteProcess::AtRestDoIt(), G4VRestContinuousProcess::AtRestDoIt(), G4VRestDiscreteProcess::AtRestDoIt(), G4VRestProcess::AtRestDoIt(), G4ParallelWorldProcess::AtRestDoIt(), G4ParallelWorldScoringProcess::AtRestDoIt(), G4ScoreSplittingProcess::AtRestDoIt(), G4VITRestDiscreteProcess::AtRestDoIt(), G4eplusAnnihilation::AtRestDoIt(), G4DNAElectronHoleRecombination::Create(), G4DNASecondOrderReaction::Create(), G4VEnergyLossProcess::FillSecondariesAlongStep(), G4Decay::G4Decay(), G4DNAMolecularDissociation::G4DNAMolecularDissociation(), G4DNAScavengerProcess::G4DNAScavengerProcess(), G4ImportanceProcess::G4ImportanceProcess(), G4ITTransportation::G4ITTransportation(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4ParallelWorldScoringProcess::G4ParallelWorldScoringProcess(), G4RadioactiveDecay::G4RadioactiveDecay(), G4ScoreSplittingProcess::G4ScoreSplittingProcess(), G4Transportation::G4Transportation(), G4UnknownDecay::G4UnknownDecay(), G4VEmProcess::G4VEmProcess(), G4VEnergyLossProcess::G4VEnergyLossProcess(), G4VMultipleScattering::G4VMultipleScattering(), G4VProcess::G4VProcess(), G4VXTRenergyLoss::G4VXTRenergyLoss(), G4WeightCutOffProcess::G4WeightCutOffProcess(), G4WeightWindowProcess::G4WeightWindowProcess(), G4VITDiscreteProcess::PostStepDoIt(), G4VContinuousDiscreteProcess::PostStepDoIt(), G4VDiscreteProcess::PostStepDoIt(), G4VRestContinuousDiscreteProcess::PostStepDoIt(), G4VRestDiscreteProcess::PostStepDoIt(), G4ParallelWorldProcess::PostStepDoIt(), G4ParallelWorldScoringProcess::PostStepDoIt(), G4ScoreSplittingProcess::PostStepDoIt(), G4NeutronKiller::PostStepDoIt(), G4VITRestDiscreteProcess::PostStepDoIt(), G4LowECapture::PostStepDoIt(), G4VEmProcess::PostStepDoIt(), G4VEnergyLossProcess::PostStepDoIt(), G4Cerenkov::PostStepDoIt(), and G4VTransitionRadiation::PostStepDoIt().

◆ preStepKinEnergy

G4double G4VEmProcess::preStepKinEnergy = 0.0
protectedinherited

◆ preStepLambda

G4double G4VEmProcess::preStepLambda = 0.0
protectedinherited

◆ preStepLogE

G4double G4GammaGeneralProcess::preStepLogE = 1.0
protected

◆ preStepLogKinEnergy

G4double G4VEmProcess::preStepLogKinEnergy = LOG_EKIN_MIN
protectedinherited

Definition at line 405 of file G4VEmProcess.hh.

Referenced by G4VEmProcess::PostStepGetPhysicalInteractionLength().

◆ secID

G4int G4VEmProcess::secID = _EM
protectedinherited

◆ secondaryParticle

const G4ParticleDefinition* G4VEmProcess::secondaryParticle = nullptr
privateinherited

◆ secParticles

std::vector<G4DynamicParticle*> G4VEmProcess::secParticles
protectedinherited

◆ selectedProc

G4VProcess* G4GammaGeneralProcess::selectedProc = nullptr
protected

◆ splineFlag

G4bool G4GammaGeneralProcess::splineFlag = false
private

◆ startFromNull

G4bool G4VEmProcess::startFromNull = false
privateinherited

◆ theCompton

G4VEmProcess* G4GammaGeneralProcess::theCompton = nullptr
private

◆ theConversionEE

G4VEmProcess* G4GammaGeneralProcess::theConversionEE = nullptr
private

◆ theConversionMM

G4GammaConversionToMuons* G4GammaGeneralProcess::theConversionMM = nullptr
private

◆ theCuts

const std::vector<G4double>* G4VEmProcess::theCuts = nullptr
privateinherited

◆ theCutsElectron

const std::vector<G4double>* G4VEmProcess::theCutsElectron = nullptr
privateinherited

◆ theCutsGamma

const std::vector<G4double>* G4VEmProcess::theCutsGamma = nullptr
privateinherited

◆ theCutsPositron

const std::vector<G4double>* G4VEmProcess::theCutsPositron = nullptr
privateinherited

◆ theData

G4EmDataHandler* G4VEmProcess::theData = nullptr
privateinherited

◆ theDensityFactor

const std::vector<G4double>* G4VEmProcess::theDensityFactor = nullptr
privateinherited

Definition at line 386 of file G4VEmProcess.hh.

Referenced by G4VEmProcess::DensityFactor(), and G4VEmProcess::G4VEmProcess().

◆ theDensityIdx

const std::vector<G4int>* G4VEmProcess::theDensityIdx = nullptr
privateinherited

Definition at line 387 of file G4VEmProcess.hh.

Referenced by G4VEmProcess::DensityIndex(), and G4VEmProcess::G4VEmProcess().

◆ theElectron

const G4ParticleDefinition* G4VEmProcess::theElectron = nullptr
privateinherited

Definition at line 356 of file G4VEmProcess.hh.

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

◆ theEnergyOfCrossSectionMax

std::vector<G4double>* G4VEmProcess::theEnergyOfCrossSectionMax = nullptr
protectedinherited

◆ theGamma

const G4ParticleDefinition* G4VEmProcess::theGamma = nullptr
privateinherited

Definition at line 355 of file G4VEmProcess.hh.

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

◆ theGammaNuclear

G4HadronicProcess* G4GammaGeneralProcess::theGammaNuclear = nullptr
protected

◆ theHandler

G4EmDataHandler * G4GammaGeneralProcess::theHandler = nullptr
staticprivate

◆ theInitialNumberOfInteractionLength

G4double G4VProcess::theInitialNumberOfInteractionLength = -1.0
protectedinherited

◆ theLambdaTable

G4PhysicsTable* G4VEmProcess::theLambdaTable = nullptr
privateinherited

◆ theLambdaTablePrim

G4PhysicsTable* G4VEmProcess::theLambdaTablePrim = nullptr
privateinherited

◆ theNumberOfInteractionLengthLeft

G4double G4VProcess::theNumberOfInteractionLengthLeft = -1.0
protectedinherited

Definition at line 331 of file G4VProcess.hh.

Referenced by G4AdjointForcedInteractionForGamma::AlongStepDoIt(), G4MuonicAtomDecay::AtRestGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4Decay::AtRestGetPhysicalInteractionLength(), G4VProcess::ClearNumberOfInteractionLengthLeft(), G4MuonicAtomDecay::DecayIt(), G4VProcess::EndTracking(), G4VProcess::GetNumberOfInteractionLengthLeft(), G4VProcess::GetTotalNumberOfInteractionLengthTraversed(), PostStepDoIt(), G4VEmProcess::PostStepDoIt(), G4VEnergyLossProcess::PostStepDoIt(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), PostStepGetPhysicalInteractionLength(), G4Decay::PostStepGetPhysicalInteractionLength(), G4AdjointForcedInteractionForGamma::PostStepGetPhysicalInteractionLength(), G4PolarizedAnnihilation::PostStepGetPhysicalInteractionLength(), G4PolarizedCompton::PostStepGetPhysicalInteractionLength(), G4PolarizedIonisation::PostStepGetPhysicalInteractionLength(), G4VEmProcess::PostStepGetPhysicalInteractionLength(), G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(), G4VProcess::ResetNumberOfInteractionLengthLeft(), G4VProcess::StartTracking(), StartTracking(), G4VEmProcess::StartTracking(), G4VEnergyLossProcess::StartTracking(), and G4VProcess::SubtractNumberOfInteractionLengthLeft().

◆ theParameters

G4EmParameters* G4VEmProcess::theParameters = nullptr
privateinherited

◆ thePhotoElectric

G4VEmProcess* G4GammaGeneralProcess::thePhotoElectric = nullptr
private

◆ thePhysicsTableFileName

G4String G4VProcess::thePhysicsTableFileName
protectedinherited

Definition at line 344 of file G4VProcess.hh.

Referenced by G4VProcess::GetPhysicsTableFileName().

◆ thePILfactor

G4double G4VProcess::thePILfactor = 1.0
protectedinherited

◆ thePositron

const G4ParticleDefinition* G4VEmProcess::thePositron = nullptr
privateinherited

Definition at line 357 of file G4VEmProcess.hh.

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

◆ theProcessName

G4String G4VProcess::theProcessName
protectedinherited

◆ theProcessSubType

G4int G4VProcess::theProcessSubType = -1
protectedinherited

◆ theProcessType

G4ProcessType G4VProcess::theProcessType = fNotDefined
protectedinherited

◆ theRayleigh

G4VEmProcess* G4GammaGeneralProcess::theRayleigh = nullptr
private

◆ theT

G4bool G4GammaGeneralProcess::theT
staticprivate
Initial value:
=
{true,false,true,true,true,false,true,true,true,
true,true,true,true,true,true}

Definition at line 171 of file G4GammaGeneralProcess.hh.

Referenced by BuildPhysicsTable(), InitialiseProcess(), PostStepDoIt(), RetrievePhysicsTable(), and StorePhysicsTable().

◆ tripletID

G4int G4VEmProcess::tripletID = _TripletElectron
protectedinherited

◆ verboseLevel

G4int G4VProcess::verboseLevel = 0
protectedinherited

Definition at line 356 of file G4VProcess.hh.

Referenced by G4VEnergyLossProcess::ActivateForcedInteraction(), G4VEmProcess::ActivateForcedInteraction(), G4VEmProcess::ActivateSecondaryBiasing(), G4VEnergyLossProcess::ActivateSecondaryBiasing(), G4LowECapture::AddRegion(), G4CoupledTransportation::AlongStepDoIt(), G4Transportation::AlongStepDoIt(), G4VContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4ParallelWorldProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::AlongStepGetPhysicalInteractionLength(), G4VRestContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4CoupledTransportation::AlongStepGetPhysicalInteractionLength(), G4Transportation::AlongStepGetPhysicalInteractionLength(), G4VContinuousProcess::AlongStepGetPhysicalInteractionLength(), G4hImpactIonisation::AntiProtonParametrisedDEDX(), G4ParallelWorldScoringProcess::AtRestDoIt(), G4VRestContinuousDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VRestContinuousProcess::AtRestGetPhysicalInteractionLength(), G4VRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestProcess::AtRestGetPhysicalInteractionLength(), G4VRestProcess::AtRestGetPhysicalInteractionLength(), G4VXTRenergyLoss::BuildAngleForEnergyBank(), G4VXTRenergyLoss::BuildAngleTable(), G4VEnergyLossProcess::BuildDEDXTable(), G4VXTRenergyLoss::BuildEnergyTable(), G4VXTRenergyLoss::BuildGlobalAngleTable(), G4VEmProcess::BuildLambdaTable(), G4hImpactIonisation::BuildLambdaTable(), G4VEnergyLossProcess::BuildLambdaTable(), G4hImpactIonisation::BuildLossTable(), G4DNABrownianTransportation::BuildPhysicsTable(), BuildPhysicsTable(), G4LowECapture::BuildPhysicsTable(), G4VEmProcess::BuildPhysicsTable(), G4VEnergyLossProcess::BuildPhysicsTable(), G4VMultipleScattering::BuildPhysicsTable(), G4SynchrotronRadiation::BuildPhysicsTable(), G4VXTRenergyLoss::BuildPhysicsTable(), G4hImpactIonisation::BuildPhysicsTable(), G4ChargeExchangeProcess::BuildPhysicsTable(), G4OpRayleigh::CalculateRayleighMeanFreePaths(), G4PolarizedAnnihilation::ComputeSaturationFactor(), G4PolarizedCompton::ComputeSaturationFactor(), G4PolarizedIonisation::ComputeSaturationFactor(), G4DNAElectronHoleRecombination::Create(), G4DNASecondOrderReaction::Create(), G4VPhononProcess::CreateSecondary(), G4VProcess::EndTracking(), G4VEmProcess::FindLambdaMax(), G4Cerenkov::G4Cerenkov(), G4ChargeExchangeProcess::G4ChargeExchangeProcess(), G4CoupledTransportation::G4CoupledTransportation(), G4DNAMolecularDissociation::G4DNAMolecularDissociation(), G4DNAScavengerProcess::G4DNAScavengerProcess(), G4ErrorEnergyLoss::G4ErrorEnergyLoss(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4GaussXTRadiator::G4GaussXTRadiator(), G4ImportanceProcess::G4ImportanceProcess(), G4MaxTimeCuts::G4MaxTimeCuts(), G4MicroElecSurface::G4MicroElecSurface(), G4MinEkineCuts::G4MinEkineCuts(), G4OpAbsorption::G4OpAbsorption(), G4OpBoundaryProcess::G4OpBoundaryProcess(), G4OpMieHG::G4OpMieHG(), G4OpRayleigh::G4OpRayleigh(), G4OpWLS::G4OpWLS(), G4OpWLS2::G4OpWLS2(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4ParallelWorldScoringProcess::G4ParallelWorldScoringProcess(), G4PolarizedIonisation::G4PolarizedIonisation(), G4Scintillation::G4Scintillation(), G4ScoreSplittingProcess::G4ScoreSplittingProcess(), G4SpecialCuts::G4SpecialCuts(), G4StepLimiter::G4StepLimiter(), G4StrawTubeXTRadiator::G4StrawTubeXTRadiator(), G4SynchrotronRadiation::G4SynchrotronRadiation(), G4TransparentRegXTRadiator::G4TransparentRegXTRadiator(), G4Transportation::G4Transportation(), G4UCNAbsorption::G4UCNAbsorption(), G4UCNBoundaryProcess::G4UCNBoundaryProcess(), G4UCNLoss::G4UCNLoss(), G4UCNMultiScattering::G4UCNMultiScattering(), G4UserSpecialCuts::G4UserSpecialCuts(), G4VXTRenergyLoss::G4VXTRenergyLoss(), G4WeightCutOffProcess::G4WeightCutOffProcess(), G4WeightWindowProcess::G4WeightWindowProcess(), G4VXTRenergyLoss::GetAngleVector(), G4ChargeExchangeProcess::GetElementCrossSection(), G4VXTRenergyLoss::GetGasZmuProduct(), G4PhononDownconversion::GetMeanFreePath(), G4PhononScattering::GetMeanFreePath(), G4PolarizedCompton::GetMeanFreePath(), G4VXTRenergyLoss::GetMeanFreePath(), G4UCNAbsorption::GetMeanFreePath(), G4PolarizedAnnihilation::GetMeanFreePath(), G4PolarizedIonisation::GetMeanFreePath(), G4SynchrotronRadiation::GetMeanFreePath(), G4VXTRenergyLoss::GetNumberOfPhotons(), G4VXTRenergyLoss::GetPlateZmuProduct(), G4SynchrotronRadiation::GetRandomEnergySR(), G4VProcess::GetVerboseLevel(), G4hhIonisation::InitialiseEnergyLossProcess(), G4eeToHadrons::InitialiseProcess(), G4hImpactIonisation::InitializeMe(), G4UCNBoundaryProcess::MRreflect(), G4UCNBoundaryProcess::MRreflectHigh(), G4DNASecondOrderReaction::PostStepDoIt(), G4ParallelWorldScoringProcess::PostStepDoIt(), G4ScoreSplittingProcess::PostStepDoIt(), G4DNAScavengerProcess::PostStepDoIt(), G4VEmProcess::PostStepDoIt(), G4NeutrinoElectronProcess::PostStepDoIt(), G4UCNAbsorption::PostStepDoIt(), G4UCNBoundaryProcess::PostStepDoIt(), G4UCNLoss::PostStepDoIt(), G4UCNMultiScattering::PostStepDoIt(), G4MicroElecSurface::PostStepDoIt(), G4Cerenkov::PostStepDoIt(), G4Scintillation::PostStepDoIt(), G4VXTRenergyLoss::PostStepDoIt(), G4ElNeutrinoNucleusProcess::PostStepDoIt(), G4HadronElasticProcess::PostStepDoIt(), G4MuNeutrinoNucleusProcess::PostStepDoIt(), G4OpAbsorption::PostStepDoIt(), G4OpBoundaryProcess::PostStepDoIt(), G4OpMieHG::PostStepDoIt(), G4OpRayleigh::PostStepDoIt(), G4OpWLS::PostStepDoIt(), G4OpWLS2::PostStepDoIt(), G4CoupledTransportation::PostStepDoIt(), G4VITDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4DNAScavengerProcess::PostStepGetPhysicalInteractionLength(), G4PolarizedAnnihilation::PostStepGetPhysicalInteractionLength(), G4PolarizedCompton::PostStepGetPhysicalInteractionLength(), G4PolarizedIonisation::PostStepGetPhysicalInteractionLength(), G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(), PreparePhysicsTable(), G4VEmProcess::PreparePhysicsTable(), G4VEnergyLossProcess::PreparePhysicsTable(), G4VMultipleScattering::PreparePhysicsTable(), G4hImpactIonisation::ProtonParametrisedDEDX(), G4UCNBoundaryProcess::Reflect(), G4CoupledTransportation::ReportInexactEnergy(), G4CoupledTransportation::ReportMissingLogger(), RetrievePhysicsTable(), G4VEmProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrieveTable(), G4VEmProcess::SetCrossSectionBiasingFactor(), G4VEnergyLossProcess::SetCrossSectionBiasingFactor(), G4VEnergyLossProcess::SetCSDARangeTable(), G4CoupledTransportation::SetHighLooperThresholds(), G4Transportation::SetHighLooperThresholds(), G4VEnergyLossProcess::SetInverseRangeTable(), G4LowECapture::SetKinEnergyLimit(), G4NeutronKiller::SetKinEnergyLimit(), G4VEnergyLossProcess::SetLambdaTable(), G4CoupledTransportation::SetLowLooperThresholds(), G4Transportation::SetLowLooperThresholds(), G4VEnergyLossProcess::SetRangeTableForLoss(), G4VEnergyLossProcess::SetSecondaryRangeTable(), G4NeutronKiller::SetTimeLimit(), G4VProcess::SetVerboseLevel(), G4Cerenkov::SetVerboseLevel(), G4Scintillation::SetVerboseLevel(), G4OpAbsorption::SetVerboseLevel(), G4OpBoundaryProcess::SetVerboseLevel(), G4OpMieHG::SetVerboseLevel(), G4OpRayleigh::SetVerboseLevel(), G4OpWLS::SetVerboseLevel(), G4OpWLS2::SetVerboseLevel(), G4FastSimulationManagerProcess::SetWorldVolume(), G4GaussXTRadiator::SpectralXTRdEdx(), G4RegularXTRadiator::SpectralXTRdEdx(), G4TransparentRegXTRadiator::SpectralXTRdEdx(), G4XTRRegularRadModel::SpectralXTRdEdx(), G4VProcess::StartTracking(), G4CoupledTransportation::StartTracking(), G4VEmProcess::StorePhysicsTable(), G4VMultipleScattering::StorePhysicsTable(), G4VEnergyLossProcess::StoreTable(), G4VEnergyLossProcess::StreamInfo(), G4VEmProcess::StreamInfo(), G4VMultipleScattering::StreamInfo(), G4VITProcess::SubtractNumberOfInteractionLengthLeft(), and G4VProcess::SubtractNumberOfInteractionLengthLeft().

◆ weightFlag

G4bool G4VEmProcess::weightFlag = false
privateinherited

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