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

#include <G4DNAElastic.hh>

Inheritance diagram for G4DNAElastic:
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)
 
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 ()
 
 G4DNAElastic (const G4String &processName="DNAElastic", G4ProcessType type=fElectromagnetic)
 
const G4ElementGetCurrentElement () const
 
G4double GetCurrentInteractionLength () const
 
const G4VEmModelGetCurrentModel () const
 
virtual G4VEmProcessGetEmProcess (const G4String &name)
 
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
 
G4double GetTotalNumberOfInteractionLengthTraversed () const
 
G4int GetVerboseLevel () const
 
G4bool isAlongStepDoItIsEnabled () const
 
virtual G4bool IsApplicable (const G4ParticleDefinition &)
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool isPostStepDoItIsEnabled () const
 
G4PhysicsTableLambdaTable () const
 
G4PhysicsTableLambdaTablePrim () const
 
G4double MeanFreePath (const G4Track &track)
 
G4int NumberOfModels () const
 
G4bool operator!= (const G4VProcess &right) const
 
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 &)
 
virtual void PrintInfo ()
 
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
 
virtual ~G4DNAElastic ()
 

Static Public Member Functions

static const G4StringGetProcessTypeName (G4ProcessType)
 

Protected Member Functions

G4bool ApplyCuts () const
 
void ClearNumberOfInteractionLengthLeft ()
 
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 ()
 
const G4ElementGetTargetElement () const
 
const G4IsotopeGetTargetIsotope () const
 
virtual void InitialiseProcess (const G4ParticleDefinition *)
 
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)
 
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)
 

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
 
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 preStepLogKinEnergy = LOG_EKIN_MIN
 
G4int secID = _EM
 
std::vector< G4DynamicParticle * > secParticles
 
std::vector< G4double > * theEnergyOfCrossSectionMax = 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)
 
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
 
G4bool isInitialised
 
G4bool isIon = false
 
G4double lambdaFactor = 0.8
 
G4LossTableManagerlManager = nullptr
 
G4double logLambdaFactor
 
G4double massRatio = 1.0
 
const G4VEmProcessmasterProc = nullptr
 
G4VProcessmasterProcessShadow = nullptr
 
G4double maxKinEnergy
 
G4double minKinEnergy
 
G4double minKinEnergyPrim = DBL_MAX
 
G4EmModelManagermodelManager = nullptr
 
G4int nLambdaBins = 84
 
G4int numberOfModels = 0
 
const G4ParticleDefinitionparticle = nullptr
 
const G4ParticleDefinitionsecondaryParticle = nullptr
 
G4bool splineFlag = true
 
G4bool startFromNull = false
 
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
 
const G4ParticleDefinitionthePositron = nullptr
 
G4bool weightFlag = false
 

Detailed Description

Definition at line 42 of file G4DNAElastic.hh.

Constructor & Destructor Documentation

◆ G4DNAElastic()

G4DNAElastic::G4DNAElastic ( const G4String processName = "DNAElastic",
G4ProcessType  type = fElectromagnetic 
)

Definition at line 37 of file G4DNAElastic.cc.

37 :
38 G4VEmProcess(processName, type), isInitialised(false)
39{
41}
G4bool isInitialised
Definition: G4DNAElastic.hh:62
G4VEmProcess(const G4String &name, G4ProcessType type=fElectromagnetic)
Definition: G4VEmProcess.cc:79
void SetProcessSubType(G4int)
Definition: G4VProcess.hh:406

References fLowEnergyElastic, and G4VProcess::SetProcessSubType().

◆ ~G4DNAElastic()

G4DNAElastic::~G4DNAElastic ( )
virtual

Definition at line 45 of file G4DNAElastic.cc.

46{
47}

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(), 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().

◆ 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
int G4int
Definition: G4Types.hh:85
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 G4VEmProcess::BuildPhysicsTable ( const G4ParticleDefinition part)
overridevirtualinherited

Reimplemented from G4VProcess.

Definition at line 307 of file G4VEmProcess.cc.

308{
309 if(nullptr == masterProc) {
310 if(isTheMaster) { masterProc = this; }
311 else { masterProc = static_cast<const G4VEmProcess*>(GetMasterProcess());}
312 }
313
314 G4String num = part.GetParticleName();
315 if(1 < verboseLevel) {
316 G4cout << "### G4VEmProcess::BuildPhysicsTable() for "
317 << GetProcessName()
318 << " and particle " << num
319 << " buildLambdaTable= " << buildLambdaTable
320 << " isTheMaster= " << isTheMaster
321 << " " << masterProc
322 << G4endl;
323 }
324
325 if(particle == &part) {
326
327 // worker initialisation
328 if(!isTheMaster) {
331 if(fXSType == fEmOnePeak) {
333 }
335
336 // local initialisation of models
337 G4bool printing = true;
338 for(G4int i=0; i<numberOfModels; ++i) {
339 G4VEmModel* mod = GetModelByIndex(i, printing);
340 G4VEmModel* mod0= masterProc->GetModelByIndex(i, printing);
341 //G4cout << i << ". " << mod << " " << mod0 << " "
342 // << particle->GetParticleName() << G4endl;
344 mod->InitialiseLocal(particle, mod0);
345 }
346 // master thread
347 } else {
350 }
351 if(fXSType == fEmOnePeak) {
355 }
356 }
357 }
358 // protection against double printout
359 if(theParameters->IsPrintLocked()) { return; }
360
361 // explicitly defined printout by particle name
362 if(1 < verboseLevel ||
363 (0 < verboseLevel && (num == "gamma" || num == "e-" ||
364 num == "e+" || num == "mu+" ||
365 num == "mu-" || num == "proton"||
366 num == "pi+" || num == "pi-" ||
367 num == "kaon+" || num == "kaon-" ||
368 num == "alpha" || num == "anti_proton" ||
369 num == "GenericIon"|| num == "alpha++" ||
370 num == "alpha+" || num == "helium" ||
371 num == "hydrogen")))
372 {
373 StreamInfo(G4cout, part);
374 }
375
376 if(1 < verboseLevel) {
377 G4cout << "### G4VEmProcess::BuildPhysicsTable() done for "
378 << GetProcessName()
379 << " and particle " << num
380 << " baseMat=" << baseMat
381 << G4endl;
382 }
383}
@ fEmOnePeak
G4bool IsPrintLocked() const
void SetUseBaseMaterials(G4bool val)
Definition: G4VEmModel.hh:753
virtual void InitialiseLocal(const G4ParticleDefinition *, G4VEmModel *masterModel)
Definition: G4VEmModel.cc:204
G4VEmModel * GetModelByIndex(G4int idx=0, G4bool ver=false) const
void SetEnergyOfCrossSectionMax(std::vector< G4double > *)
G4PhysicsTable * LambdaTable() const
std::vector< G4double > * theEnergyOfCrossSectionMax
G4int numberOfModels
void StreamInfo(std::ostream &outFile, const G4ParticleDefinition &, G4bool rst=false) const
std::vector< G4double > * EnergyOfCrossSectionMax() const
G4bool UseBaseMaterial() const
G4CrossSectionType fXSType
G4bool isTheMaster
std::vector< G4double > * FindLambdaMax()
G4PhysicsTable * LambdaTablePrim() const
const G4VEmProcess * masterProc
void BuildLambdaTable()
const G4VProcess * GetMasterProcess() const
Definition: G4VProcess.hh:518

References G4VEmProcess::baseMat, G4VEmProcess::BuildLambdaTable(), G4VEmProcess::buildLambdaTable, G4VEmProcess::EnergyOfCrossSectionMax(), fEmOnePeak, G4VEmProcess::FindLambdaMax(), G4VEmProcess::fXSType, G4cout, G4endl, G4VProcess::GetMasterProcess(), G4VEmProcess::GetModelByIndex(), G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4VEmModel::InitialiseLocal(), G4EmParameters::IsPrintLocked(), G4VEmProcess::isTheMaster, G4VEmProcess::LambdaTable(), G4VEmProcess::LambdaTablePrim(), G4VEmProcess::masterProc, G4VEmProcess::maxKinEnergy, G4VEmProcess::minKinEnergyPrim, G4VEmProcess::numberOfModels, G4VEmProcess::particle, G4VEmProcess::SetEnergyOfCrossSectionMax(), G4VEmModel::SetUseBaseMaterials(), G4VEmProcess::StreamInfo(), G4VEmProcess::theEnergyOfCrossSectionMax, G4VEmProcess::theLambdaTable, G4VEmProcess::theLambdaTablePrim, G4VEmProcess::theParameters, G4VEmProcess::UseBaseMaterial(), and G4VProcess::verboseLevel.

Referenced by G4GammaGeneralProcess::BuildPhysicsTable(), G4PolarizedAnnihilation::BuildPhysicsTable(), and G4PolarizedCompton::BuildPhysicsTable().

◆ 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().

◆ 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]
@ fEmDecreasing
@ fEmNoIntegral
@ fEmIncreasing
G4double mfpKinEnergy
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

Definition at line 494 of file G4VEmProcess.hh.

495{
496 if(couple != currentCouple) {
497 currentCouple = couple;
502 if(baseMat) {
503 basedCoupleIndex = (*theDensityIdx)[currentCoupleIndex];
504 if(nullptr != currentMaterial->GetBaseMaterial())
506 fFactor *= (*theDensityFactor)[currentCoupleIndex];
507 }
508 }
509}
const G4Material * GetBaseMaterial() const
Definition: G4Material.hh:229
size_t basedCoupleIndex
G4double fFactor
const G4Material * currentMaterial
#define DBL_MAX
Definition: templates.hh:62

References G4VEmProcess::basedCoupleIndex, G4VEmProcess::baseMat, G4VEmProcess::baseMaterial, G4VEmProcess::biasFactor, G4VEmProcess::currentCouple, G4VEmProcess::currentCoupleIndex, G4VEmProcess::currentMaterial, DBL_MAX, G4VEmProcess::fFactor, G4Material::GetBaseMaterial(), G4MaterialCutsCouple::GetIndex(), G4MaterialCutsCouple::GetMaterial(), and G4VEmProcess::mfpKinEnergy.

Referenced by G4eplusAnnihilation::AtRestDoIt(), G4VEmProcess::CurrentSetup(), G4VEmProcess::LambdaPhysicsVector(), and G4VEmProcess::PostStepGetPhysicalInteractionLength().

◆ 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 G4GammaGeneralProcess::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 G4GammaGeneralProcess::BuildPhysicsTable(), and G4GammaGeneralProcess::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(), 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(), 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}

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 * G4VEmProcess::GetEmProcess ( const G4String name)
virtualinherited

Reimplemented in G4GammaGeneralProcess.

Definition at line 1220 of file G4VEmProcess.cc.

1221{
1222 return (nam == GetProcessName()) ? this : nullptr;
1223}

References G4VProcess::GetProcessName().

Referenced by G4EmCalculator::FindDiscreteProcess().

◆ 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 G4GammaGeneralProcess::BuildPhysicsTable(), G4AdjointComptonModel::RapidSampleSecondaries(), and G4GammaGeneralProcess::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 G4VEmProcess::GetMeanFreePath ( const G4Track track,
G4double  previousStepSize,
G4ForceCondition condition 
)
overrideprotectedvirtualinherited

Implements G4VDiscreteProcess.

Definition at line 988 of file G4VEmProcess.cc.

991{
993 return G4VEmProcess::MeanFreePath(track);
994}
@ NotForced
G4double MeanFreePath(const G4Track &track)

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

Referenced by G4PolarizedCompton::GetMeanFreePath(), and G4PolarizedAnnihilation::GetMeanFreePath().

◆ 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(), G4GammaGeneralProcess::RetrievePhysicsTable(), G4VEmProcess::RetrievePhysicsTable(), G4VEnergyLossProcess::RetrieveTable(), G4GammaGeneralProcess::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().

◆ 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(), G4GammaGeneralProcess::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(), G4GammaGeneralProcess::GetEmProcess(), G4WeightWindowProcess::GetName(), G4ProcessManager::GetProcess(), G4ProcessManager::GetProcessVectorIndex(), G4GammaGeneralProcess::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(), G4GammaGeneralProcess::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(), G4GammaGeneralProcess::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
@ fElectromagnetic
@ 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().

◆ 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 G4DNAElastic::InitialiseProcess ( const G4ParticleDefinition p)
protectedvirtual

Implements G4VEmProcess.

Definition at line 66 of file G4DNAElastic.cc.

67{
68 if(!isInitialised)
69 {
70 isInitialised = true;
71 SetBuildTableFlag(false);
72
74
75 if(name == "e-")
76 {
77 if(!EmModel())
78 {
82 }
83 AddEmModel(1, EmModel());
84 }
85
86 else if(name == "proton" || name == "hydrogen")
87 {
88 if(!EmModel())
89 {
93 }
94 AddEmModel(1, EmModel());
95 }
96
97 // "alpha" must be explicitly used, not alpha++
98 else if(name == "helium" || name == "alpha" || name == "alpha+")
99 {
100 if(!EmModel())
101 {
105 }
106 AddEmModel(1, EmModel());
107 }
108 }
109}
static constexpr double eV
Definition: G4SIunits.hh:201
void SetHighEnergyLimit(G4double)
Definition: G4VEmModel.hh:767
void SetLowEnergyLimit(G4double)
Definition: G4VEmModel.hh:774
G4VEmModel * EmModel(size_t index=0) const
void SetBuildTableFlag(G4bool val)
void AddEmModel(G4int, G4VEmModel *, const G4Region *region=nullptr)
void SetEmModel(G4VEmModel *, G4int index=0)
const char * name(G4int ptype)

References G4VEmProcess::AddEmModel(), G4VEmProcess::EmModel(), eV, G4ParticleDefinition::GetParticleName(), isInitialised, MeV, G4InuclParticleNames::name(), G4VEmProcess::SetBuildTableFlag(), G4VEmProcess::SetEmModel(), G4VEmModel::SetHighEnergyLimit(), and G4VEmModel::SetLowEnergyLimit().

◆ 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 G4DNAElastic::IsApplicable ( const G4ParticleDefinition p)
virtual

Implements G4VEmProcess.

Definition at line 51 of file G4DNAElastic.cc.

52{
55
56 return (&p == G4Electron::Electron() || &p == G4Positron::Positron()
57 || &p == G4Proton::Proton() || &p == instance->GetIon("hydrogen")
58 || &p == instance->GetIon("alpha++")
59 || &p == instance->GetIon("alpha+")
60 || &p == instance->GetIon("helium"));
61
62}
static G4DNAGenericIonsManager * Instance(void)
G4ParticleDefinition * GetIon(const G4String &name)
static G4Positron * Positron()
Definition: G4Positron.cc:93
static G4Proton * Proton()
Definition: G4Proton.cc:92

References G4Electron::Electron(), G4DNAGenericIonsManager::GetIon(), G4DNAGenericIonsManager::Instance(), G4Positron::Positron(), and G4Proton::Proton().

◆ 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 G4GammaGeneralProcess::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}

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==()

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 * G4VEmProcess::PostStepDoIt ( const G4Track track,
const G4Step step 
)
overridevirtualinherited

Reimplemented from G4VDiscreteProcess.

Definition at line 675 of file G4VEmProcess.cc.

677{
678 // In all cases clear number of interaction lengths
681
683
684 // Do not make anything if particle is stopped, the annihilation then
685 // should be performed by the AtRestDoIt!
686 if (track.GetTrackStatus() == fStopButAlive) { return &fParticleChange; }
687
688 const G4double finalT = track.GetKineticEnergy();
689
690 // forced process - should happen only once per track
691 if(biasFlag) {
693 biasFlag = false;
694 }
695 }
696
697 // check active and select model
698 const G4double scaledEnergy = finalT*massRatio;
699 SelectModel(scaledEnergy, currentCoupleIndex);
700 if(!currentModel->IsActive(scaledEnergy)) { return &fParticleChange; }
701
702 // Integral approach
703 if (fXSType != fEmNoIntegral) {
704 const G4double logFinalT = track.GetDynamicParticle()->GetLogKineticEnergy();
705 const G4double lx = std::max(GetCurrentLambda(finalT, logFinalT), 0.0);
706 const G4double lg = preStepLambda;
707 if(finalT < mfpKinEnergy) {
708 mfpKinEnergy = finalT;
709 preStepLambda = lx;
710 }
711#ifdef G4VERBOSE
712 if(lg < lx && 1 < verboseLevel) {
713 G4cout << "WARNING: for " << currentParticle->GetParticleName()
714 << " and " << GetProcessName()
715 << " E(MeV)= " << finalT/MeV
716 << " preLambda= " << lg << " < " << lx << " (postLambda) "
717 << G4endl;
718 }
719#endif
720 if(lg*G4UniformRand() >= lx) {
721 return &fParticleChange;
722 }
723 }
724
725 // define new weight for primary and secondaries
727 if(weightFlag) {
728 weight /= biasFactor;
730 }
731
732#ifdef G4VERBOSE
733 if(1 < verboseLevel) {
734 G4cout << "G4VEmProcess::PostStepDoIt: Sample secondary; E= "
735 << finalT/MeV
736 << " MeV; model= (" << currentModel->LowEnergyLimit()
737 << ", " << currentModel->HighEnergyLimit() << ")"
738 << G4endl;
739 }
740#endif
741
742 // sample secondaries
743 secParticles.clear();
746 track.GetDynamicParticle(),
748
749 G4int num0 = secParticles.size();
750
751 // splitting or Russian roulette
752 if(biasManager) {
754 G4double eloss = 0.0;
756 secParticles, track, currentModel, &fParticleChange, eloss,
758 step.GetPostStepPoint()->GetSafety());
759 if(eloss > 0.0) {
762 }
763 }
764 }
765
766 // save secondaries
767 G4int num = secParticles.size();
768 if(num > 0) {
769
772 G4double time = track.GetGlobalTime();
773
774 G4int n1(0), n2(0);
775 if(num > mainSecondaries) {
777 }
778
779 for (G4int i=0; i<num; ++i) {
781 if (nullptr != dp) {
783 G4double e = dp->GetKineticEnergy();
784 G4bool good = true;
785 if(applyCuts) {
786 if (p == theGamma) {
787 if (e < (*theCutsGamma)[currentCoupleIndex]) { good = false; }
788
789 } else if (p == theElectron) {
790 if (e < (*theCutsElectron)[currentCoupleIndex]) { good = false; }
791
792 } else if (p == thePositron) {
795 good = false;
796 e += 2.0*electron_mass_c2;
797 }
798 }
799 // added secondary if it is good
800 }
801 if (good) {
802 G4Track* t = new G4Track(dp, time, track.GetPosition());
804 if (biasManager) {
805 t->SetWeight(weight * biasManager->GetWeight(i));
806 } else {
807 t->SetWeight(weight);
808 }
810
811 // define type of secondary
812 if(i < mainSecondaries) {
816 }
817 } else if(i < mainSecondaries + n1) {
819 } else if(i < mainSecondaries + n1 + n2) {
821 } else {
822 if(i < num0) {
823 if(p == theGamma) {
825 } else {
827 }
828 } else {
830 }
831 }
832 /*
833 G4cout << "Secondary(post step) has weight " << t->GetWeight()
834 << ", Ekin= " << t->GetKineticEnergy()/MeV << " MeV "
835 << GetProcessName() << " fluoID= " << fluoID
836 << " augerID= " << augerID <<G4endl;
837 */
838 } else {
839 delete dp;
840 edep += e;
841 }
842 }
843 }
845 }
846
852 }
853
854 return &fParticleChange;
855}
@ fComptonScattering
@ fAlive
@ fStopAndKill
@ fStopButAlive
#define G4UniformRand()
Definition: Randomize.hh:52
const G4ParticleDefinition * GetParticleDefinition() const
G4double GetKineticEnergy() const
G4bool ForcedInteractionRegion(G4int coupleIdx)
G4double ApplySecondaryBiasing(std::vector< G4DynamicParticle * > &, const G4Track &track, G4VEmModel *currentModel, G4ParticleChangeForGamma *pParticleChange, G4double &eloss, G4int coupleIdx, G4double tcut, G4double safety=0.0)
G4double GetWeight(G4int i)
G4bool SecondaryBiasingRegion(G4int coupleIdx)
void InitializeForPostStep(const G4Track &)
G4ProcessManager * GetProcessManager() const
G4ProcessVector * GetAtRestProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
std::size_t size() const
G4double GetSafety() const
G4StepPoint * GetPostStepPoint() const
G4TrackStatus GetTrackStatus() const
void SetWeight(G4double aValue)
const G4ThreeVector & GetPosition() const
void SetTouchableHandle(const G4TouchableHandle &apValue)
G4double GetGlobalTime() const
const G4TouchableHandle & GetTouchableHandle() const
void SetCreatorModelID(const G4int id)
virtual void FillNumberOfSecondaries(G4int &numberOfTriplets, G4int &numberOfRecoil)
Definition: G4VEmModel.cc:365
G4double LowEnergyLimit() const
Definition: G4VEmModel.hh:662
G4double HighEnergyLimit() const
Definition: G4VEmModel.hh:655
G4bool IsActive(G4double kinEnergy) const
Definition: G4VEmModel.hh:795
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin=0.0, G4double tmax=DBL_MAX)=0
G4int mainSecondaries
const G4ParticleDefinition * thePositron
std::vector< G4DynamicParticle * > secParticles
const G4ParticleDefinition * theElectron
const G4ParticleDefinition * theGamma
const std::vector< G4double > * theCuts
const std::vector< G4double > * theCutsPositron
G4double GetParentWeight() const
void ProposeTrackStatus(G4TrackStatus status)
void ProposeWeight(G4double finalWeight)
G4double GetLocalEnergyDeposit() const
void AddSecondary(G4Track *aSecondary)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
void SetNumberOfSecondaries(G4int totSecondaries)
G4TrackStatus GetTrackStatus() const
G4int GetProcessSubType() const
Definition: G4VProcess.hh:400
float electron_mass_c2
Definition: hepunit.py:273

References _ComptonGamma, _IonRecoil, G4VParticleChange::AddSecondary(), G4VEmProcess::applyCuts, G4EmBiasingManager::ApplySecondaryBiasing(), G4VEmProcess::augerID, G4VEmProcess::biasFactor, G4VEmProcess::biasFlag, G4VEmProcess::biasManager, G4VEmProcess::currentCouple, G4VEmProcess::currentCoupleIndex, G4VEmProcess::currentModel, G4VEmProcess::currentParticle, DBL_MAX, source.hepunit::electron_mass_c2, fAlive, fComptonScattering, fEmNoIntegral, G4VEmModel::FillNumberOfSecondaries(), G4VEmProcess::fluoID, G4EmBiasingManager::ForcedInteractionRegion(), G4VEmProcess::fParticleChange, fStopAndKill, fStopButAlive, G4VEmProcess::fXSType, G4cout, G4endl, G4UniformRand, G4ProcessManager::GetAtRestProcessVector(), G4VEmProcess::GetCurrentLambda(), G4Track::GetDynamicParticle(), G4Track::GetGlobalTime(), G4DynamicParticle::GetKineticEnergy(), G4Track::GetKineticEnergy(), G4VParticleChange::GetLocalEnergyDeposit(), G4DynamicParticle::GetLogKineticEnergy(), G4VParticleChange::GetParentWeight(), G4DynamicParticle::GetParticleDefinition(), G4ParticleDefinition::GetParticleName(), G4Track::GetPosition(), G4Step::GetPostStepPoint(), G4ParticleDefinition::GetProcessManager(), G4VProcess::GetProcessName(), G4VProcess::GetProcessSubType(), G4ParticleChangeForGamma::GetProposedKineticEnergy(), G4StepPoint::GetSafety(), G4Track::GetTouchableHandle(), G4Track::GetTrackStatus(), G4VParticleChange::GetTrackStatus(), G4EmBiasingManager::GetWeight(), G4VEmModel::HighEnergyLimit(), G4ParticleChangeForGamma::InitializeForPostStep(), G4VEmModel::IsActive(), G4VEmModel::LowEnergyLimit(), G4VEmProcess::mainSecondaries, G4VEmProcess::massRatio, G4INCL::Math::max(), MeV, G4VEmProcess::mfpKinEnergy, G4VEmProcess::particle, G4VProcess::pParticleChange, G4VEmProcess::preStepLambda, G4VParticleChange::ProposeLocalEnergyDeposit(), G4VParticleChange::ProposeTrackStatus(), G4VParticleChange::ProposeWeight(), G4VEmModel::SampleSecondaries(), G4VEmProcess::secID, G4EmBiasingManager::SecondaryBiasingRegion(), G4VEmProcess::secParticles, G4VEmProcess::SelectModel(), G4Track::SetCreatorModelID(), G4VParticleChange::SetNumberOfSecondaries(), G4Track::SetTouchableHandle(), G4Track::SetWeight(), G4ProcessVector::size(), G4VEmProcess::theCuts, G4VEmProcess::theCutsElectron, G4VEmProcess::theCutsGamma, G4VEmProcess::theCutsPositron, G4VEmProcess::theElectron, G4VEmProcess::theGamma, G4VProcess::theNumberOfInteractionLengthLeft, G4VEmProcess::thePositron, G4VEmProcess::tripletID, G4VProcess::verboseLevel, and G4VEmProcess::weightFlag.

◆ PostStepGetPhysicalInteractionLength()

G4double G4VEmProcess::PostStepGetPhysicalInteractionLength ( const G4Track track,
G4double  previousStepSize,
G4ForceCondition condition 
)
overridevirtualinherited

Reimplemented from G4VDiscreteProcess.

Definition at line 570 of file G4VEmProcess.cc.

574{
576 G4double x = DBL_MAX;
577
581 const G4double scaledEnergy = preStepKinEnergy*massRatio;
582 SelectModel(scaledEnergy, currentCoupleIndex);
583 /*
584 G4cout << "PostStepGetPhysicalInteractionLength: idx= " << currentCoupleIndex
585 << " couple: " << currentCouple << G4endl;
586 */
587 if(!currentModel->IsActive(scaledEnergy)) {
590 return x;
591 }
592
593 // forced biasing only for primary particles
594 if(biasManager) {
595 if(0 == track.GetParentID()) {
596 if(biasFlag &&
598 return biasManager->GetStepLimit(currentCoupleIndex, previousStepSize);
599 }
600 }
601 }
602
603 // compute mean free path
605
606 // zero cross section
607 if(preStepLambda <= 0.0) {
610
611 } else {
612
613 // non-zero cross section
615
616 // beggining of tracking (or just after DoIt of this process)
619
620 } else if(currentInteractionLength < DBL_MAX) {
621
623 previousStepSize/currentInteractionLength;
626 }
627
628 // new mean free path and step limit for the next step
631 }
632 return x;
633}
G4double GetStepLimit(G4int coupleIdx, G4double previousStep)
G4int GetParentID() const
void ComputeIntegralLambda(G4double kinEnergy, G4double logKinEnergy)
G4double preStepLogKinEnergy
G4double preStepKinEnergy

References G4VEmProcess::biasFlag, G4VEmProcess::biasManager, G4VEmProcess::ComputeIntegralLambda(), condition(), G4VEmProcess::currentCoupleIndex, G4VProcess::currentInteractionLength, G4VEmProcess::currentModel, DBL_MAX, G4VEmProcess::DefineMaterial(), G4EmBiasingManager::ForcedInteractionRegion(), G4Log(), G4UniformRand, G4Track::GetDynamicParticle(), G4Track::GetKineticEnergy(), G4DynamicParticle::GetLogKineticEnergy(), G4Track::GetMaterialCutsCouple(), G4Track::GetParentID(), G4EmBiasingManager::GetStepLimit(), G4VEmModel::IsActive(), G4VEmProcess::massRatio, G4INCL::Math::max(), NotForced, G4VEmProcess::preStepKinEnergy, G4VEmProcess::preStepLambda, G4VEmProcess::preStepLogKinEnergy, G4VEmProcess::SelectModel(), G4VProcess::theInitialNumberOfInteractionLength, and G4VProcess::theNumberOfInteractionLengthLeft.

Referenced by G4PolarizedAnnihilation::PostStepGetPhysicalInteractionLength(), and G4PolarizedCompton::PostStepGetPhysicalInteractionLength().

◆ 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 G4VEmProcess::PreparePhysicsTable ( const G4ParticleDefinition part)
overridevirtualinherited

Reimplemented from G4VProcess.

Definition at line 175 of file G4VEmProcess.cc.

176{
178 if(nullptr == particle) { SetParticle(&part); }
179
180 if(part.GetParticleType() == "nucleus" &&
181 part.GetParticleSubType() == "generic") {
182
184 if(pname != "deuteron" && pname != "triton" &&
185 pname != "alpha" && pname != "He3" &&
186 pname != "alpha+" && pname != "helium" &&
187 pname != "hydrogen") {
188
190 isIon = true;
191 }
192 }
193
194 if(1 < verboseLevel) {
195 G4cout << "G4VEmProcess::PreparePhysicsTable() for "
196 << GetProcessName()
197 << " and particle " << part.GetParticleName()
198 << " local particle " << particle->GetParticleName()
199 << G4endl;
200 }
201
202 if(particle != &part) { return; }
203
205
206 Clear();
208
210 const G4ProductionCutsTable* theCoupleTable=
212
213 // initialisation of the process
216
217 if(isTheMaster) {
219 if(nullptr == theData) { theData = new G4EmDataHandler(2); }
220 if(fEmOnePeak == fXSType) {
221 if(nullptr == theEnergyOfCrossSectionMax) {
222 theEnergyOfCrossSectionMax = new std::vector<G4double>;
223 }
224 size_t n = theCoupleTable->GetTableSize();
226 }
227 } else {
229 }
234
235 // integral option may be disabled
237
238 // prepare tables
242 }
243 // high energy table
247 }
249
250 // initialisation of models
252 for(G4int i=0; i<numberOfModels; ++i) {
254 if(nullptr == mod) { continue; }
255 if(nullptr == currentModel) { currentModel = mod; }
258 if(mod->HighEnergyLimit() > maxKinEnergy) {
260 }
261 SetEmModel(mod);
263 }
264
265 if(nullptr != lManager->AtomDeexcitation()) {
267 }
268 fLambdaEnergy = 0.0;
269
270 theCuts =
275
276 // forced biasing
277 if(biasManager) {
279 biasFlag = false;
280 }
281
282 // defined ID of secondary particles
283 G4int stype = GetProcessSubType();
284 if(stype == fAnnihilation) {
287 } else if(stype == fGammaConversion) {
289 mainSecondaries = 2;
290 } else if(stype == fPhotoElectricEffect) {
292 } else if(stype == fComptonScattering) {
294 } else if(stype >= fLowEnergyElastic) {
296 }
297 if(1 < verboseLevel) {
298 G4cout << "### G4VEmProcess::PreparePhysicsTable() done for "
299 << GetProcessName()
300 << " and particle " << part.GetParticleName()
301 << " baseMat=" << baseMat << G4endl;
302 }
303}
@ fDNAUnknownModel
@ fGammaConversion
@ fAnnihilation
@ fPhotoElectricEffect
@ idxG4ElectronCut
@ idxG4GammaCut
@ idxG4PositronCut
void Initialise(const G4ParticleDefinition &part, const G4String &procName, G4int verbose)
G4PhysicsTable * MakeTable(size_t idx)
G4int NumberOfModels() const
void SetFluoFlag(G4bool val)
const G4DataVector * Initialise(const G4ParticleDefinition *part, const G4ParticleDefinition *secPart, G4double, G4int verb)
void DefineRegParamForEM(G4VEmProcess *) const
G4int Verbose() const
G4int WorkerVerbose() const
G4bool ApplyCuts() const
G4bool Integral() const
G4double LambdaFactor() const
static G4GenericIon * GenericIon()
Definition: G4GenericIon.cc:92
void InitialiseBaseMaterials(const G4PhysicsTable *table=nullptr)
void PreparePhysicsTable(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p, G4bool theMaster)
G4VAtomDeexcitation * AtomDeexcitation()
const G4String & GetParticleType() const
const G4String & GetParticleSubType() const
const std::vector< G4double > * GetEnergyCutsVector(std::size_t pcIdx) const
void SetPolarAngleLimit(G4double)
Definition: G4VEmModel.hh:802
void SetMasterThread(G4bool val)
Definition: G4VEmModel.hh:739
G4bool actMaxKinEnergy
G4bool actMinKinEnergy
virtual void InitialiseProcess(const G4ParticleDefinition *)=0
G4double logLambdaFactor
void SetParticle(const G4ParticleDefinition *p)
G4EmDataHandler * theData
void SetVerboseLevel(G4int value)
Definition: G4VProcess.hh:412
string pname
Definition: eplot.py:33

References _Annihilation, _ComptonElectron, _PairProduction, _PhotoElectron, _TripletGamma, G4VEmProcess::actMaxKinEnergy, G4VEmProcess::actMinKinEnergy, G4EmParameters::ApplyCuts(), G4VEmProcess::applyCuts, G4LossTableManager::AtomDeexcitation(), G4VEmProcess::baseMat, G4VEmProcess::biasFlag, G4VEmProcess::biasManager, G4VEmProcess::buildLambdaTable, G4VEmProcess::Clear(), G4VEmProcess::currentModel, DBL_MAX, G4EmParameters::DefineRegParamForEM(), fAnnihilation, fComptonScattering, fDNAUnknownModel, fEmNoIntegral, fEmOnePeak, fGammaConversion, G4VEmProcess::fLambdaEnergy, fLowEnergyElastic, fPhotoElectricEffect, G4VEmProcess::fXSType, G4cout, G4endl, G4Log(), G4GenericIon::GenericIon(), G4LossTableBuilder::GetBaseMaterialFlag(), G4ProductionCutsTable::GetEnergyCutsVector(), G4EmModelManager::GetModel(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetParticleSubType(), G4ParticleDefinition::GetParticleType(), G4VProcess::GetProcessName(), G4VProcess::GetProcessSubType(), G4ProductionCutsTable::GetProductionCutsTable(), G4LossTableManager::GetTableBuilder(), G4ProductionCutsTable::GetTableSize(), G4VEmModel::HighEnergyLimit(), idxG4ElectronCut, idxG4GammaCut, idxG4PositronCut, G4EmBiasingManager::Initialise(), G4EmModelManager::Initialise(), G4LossTableBuilder::InitialiseBaseMaterials(), G4VEmProcess::InitialiseProcess(), G4EmParameters::Integral(), G4VEmProcess::isIon, G4LossTableManager::IsMaster(), G4VEmProcess::isTheMaster, G4EmParameters::LambdaFactor(), G4VEmProcess::lambdaFactor, G4VEmProcess::lManager, G4VEmProcess::logLambdaFactor, G4VEmProcess::mainSecondaries, G4EmDataHandler::MakeTable(), G4EmParameters::MaxKinEnergy(), G4VEmProcess::maxKinEnergy, G4EmParameters::MinKinEnergy(), G4VEmProcess::minKinEnergy, G4VEmProcess::minKinEnergyPrim, G4VEmProcess::modelManager, G4EmParameters::MscThetaLimit(), CLHEP::detail::n, G4EmModelManager::NumberOfModels(), G4VEmProcess::numberOfModels, G4VEmProcess::particle, eplot::pname, G4LossTableManager::PreparePhysicsTable(), G4VEmProcess::secID, G4VEmProcess::secondaryParticle, G4VEmProcess::SetEmModel(), G4EmModelManager::SetFluoFlag(), G4VEmModel::SetHighEnergyLimit(), G4VEmModel::SetMasterThread(), G4VEmProcess::SetParticle(), G4VEmModel::SetPolarAngleLimit(), G4VEmModel::SetUseBaseMaterials(), G4VProcess::SetVerboseLevel(), G4VEmProcess::theCuts, G4VEmProcess::theCutsElectron, G4VEmProcess::theCutsGamma, G4VEmProcess::theCutsPositron, G4VEmProcess::theData, G4VEmProcess::theEnergyOfCrossSectionMax, G4VEmProcess::theLambdaTable, G4VEmProcess::theLambdaTablePrim, G4VEmProcess::theParameters, G4VEmProcess::tripletID, G4EmParameters::Verbose(), G4VProcess::verboseLevel, and G4EmParameters::WorkerVerbose().

Referenced by G4GammaGeneralProcess::PreparePhysicsTable().

◆ PrepareWorkerPhysicsTable()

void G4VProcess::PrepareWorkerPhysicsTable ( const G4ParticleDefinition part)
virtualinherited

Reimplemented in G4BiasingProcessInterface.

Definition at line 206 of file G4VProcess.cc.

207{
209}
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
Definition: G4VProcess.hh:194

References G4VProcess::PreparePhysicsTable().

Referenced by G4BiasingProcessInterface::PrepareWorkerPhysicsTable().

◆ PrintInfo()

void G4DNAElastic::PrintInfo ( )
virtual

Definition at line 113 of file G4DNAElastic.cc.

114{
115 G4cout << " Total cross sections computed from " << EmModel()->GetName()
116 << " model" << G4endl;
117}
const G4String & GetName() const
Definition: G4VEmModel.hh:837

References G4VEmProcess::EmModel(), G4cout, G4endl, and G4VEmModel::GetName().

◆ 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
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
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 G4VEmProcess::ProcessDescription ( std::ostream &  outFile) const
overridevirtualinherited

◆ RecalculateLambda()

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

◆ ResetNumberOfInteractionLengthLeft()

void G4VProcess::ResetNumberOfInteractionLengthLeft ( )
virtualinherited

◆ RetrievePhysicsTable()

G4bool G4VEmProcess::RetrievePhysicsTable ( const G4ParticleDefinition part,
const G4String directory,
G4bool  ascii 
)
overridevirtualinherited

Reimplemented from G4VProcess.

Definition at line 907 of file G4VEmProcess.cc.

910{
911 if(1 < verboseLevel) {
912 G4cout << "G4VEmProcess::RetrievePhysicsTable() for "
913 << part->GetParticleName() << " and process "
914 << GetProcessName() << G4endl;
915 }
916 G4bool yes = true;
917
919 || particle != part) { return yes; }
920
921 const G4String particleName = part->GetParticleName();
922
923 if(buildLambdaTable) {
924 const G4String& filename =
925 GetPhysicsTableFileName(part,directory,"Lambda",ascii);
927 filename,ascii,
928 splineFlag);
929 if ( yes ) {
930 if (0 < verboseLevel) {
931 G4cout << "Lambda table for " << particleName
932 << " is Retrieved from <"
933 << filename << ">"
934 << G4endl;
935 }
936 if(splineFlag) {
937 for(auto & v : *theLambdaTable) {
938 if(nullptr != v) { v->FillSecondDerivatives(); }
939 }
940 }
941
942 } else {
943 if (1 < verboseLevel) {
944 G4cout << "Lambda table for " << particleName << " in file <"
945 << filename << "> is not exist"
946 << G4endl;
947 }
948 }
949 }
951 const G4String& filename =
952 GetPhysicsTableFileName(part,directory,"LambdaPrim",ascii);
954 filename,ascii,true);
955 if ( yes ) {
956 if (0 < verboseLevel) {
957 G4cout << "Lambda table prim for " << particleName
958 << " is Retrieved from <"
959 << filename << ">"
960 << G4endl;
961 }
962 for(auto & v : *theLambdaTablePrim) {
963 if(nullptr != v) { v->FillSecondDerivatives(); }
964 }
965 } else {
966 if (1 < verboseLevel) {
967 G4cout << "Lambda table prim for " << particleName << " in file <"
968 << filename << "> is not exist"
969 << G4endl;
970 }
971 }
972 }
973 return yes;
974}
static G4bool RetrievePhysicsTable(G4PhysicsTable *physTable, const G4String &fileName, G4bool ascii, G4bool spline)
const G4String & GetPhysicsTableFileName(const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false)
Definition: G4VProcess.cc:182

References G4VEmProcess::buildLambdaTable, G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4VProcess::GetPhysicsTableFileName(), G4VProcess::GetProcessName(), G4VEmProcess::maxKinEnergy, G4VEmProcess::minKinEnergyPrim, G4VEmProcess::particle, G4PhysicsTableHelper::RetrievePhysicsTable(), G4VEmProcess::splineFlag, G4VEmProcess::theLambdaTable, G4VEmProcess::theLambdaTablePrim, and G4VProcess::verboseLevel.

Referenced by G4GammaGeneralProcess::RetrievePhysicsTable().

◆ SecondaryParticle()

const G4ParticleDefinition * G4VEmProcess::SecondaryParticle ( ) const
inlineinherited

Definition at line 685 of file G4VEmProcess.hh.

686{
687 return secondaryParticle;
688}

References G4VEmProcess::secondaryParticle.

◆ 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}

References G4VEmProcess::masterProc.

Referenced by G4GammaGeneralProcess::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(), 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(), 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::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 G4VEmProcess::StartTracking ( G4Track track)
overridevirtualinherited

Reimplemented from G4VProcess.

Definition at line 549 of file G4VEmProcess.cc.

550{
551 // reset parameters for the new track
555
557
558 // forced biasing only for primary particles
559 if(biasManager) {
560 if(0 == track->GetParentID()) {
561 // primary particle
562 biasFlag = true;
564 }
565 }
566}
const G4ParticleDefinition * GetParticleDefinition() const
float proton_mass_c2
Definition: hepunit.py:274

References G4VEmProcess::biasFlag, G4VEmProcess::biasManager, G4VEmProcess::currentParticle, DBL_MAX, G4Track::GetParentID(), G4Track::GetParticleDefinition(), G4ParticleDefinition::GetPDGMass(), G4VEmProcess::isIon, G4VEmProcess::massRatio, G4VEmProcess::mfpKinEnergy, source.hepunit::proton_mass_c2, G4EmBiasingManager::ResetForcedInteraction(), and G4VProcess::theNumberOfInteractionLengthLeft.

◆ StorePhysicsTable()

G4bool G4VEmProcess::StorePhysicsTable ( const G4ParticleDefinition part,
const G4String directory,
G4bool  ascii = false 
)
overridevirtualinherited

Reimplemented from G4VProcess.

Definition at line 859 of file G4VEmProcess.cc.

862{
863 G4bool yes = true;
864 if(!isTheMaster) { return yes; }
865
866 if ( theLambdaTable && part == particle) {
867 const G4String& nam =
868 GetPhysicsTableFileName(part,directory,"Lambda",ascii);
869 yes = theLambdaTable->StorePhysicsTable(nam,ascii);
870
871 if ( yes ) {
872 if(0 < verboseLevel) G4cout << "Stored: " << nam << G4endl;
873 } else {
874 G4cout << "Fail to store Physics Table for "
876 << " and process " << GetProcessName()
877 << " in the directory <" << directory
878 << "> " << G4endl;
879 }
880 }
881 if ( theLambdaTablePrim && part == particle) {
882 const G4String& name =
883 GetPhysicsTableFileName(part,directory,"LambdaPrim",ascii);
885
886 if ( yes ) {
887 if(0 < verboseLevel) {
888 G4cout << "Physics table prim is stored for "
890 << " and process " << GetProcessName()
891 << " in the directory <" << directory
892 << "> " << G4endl;
893 }
894 } else {
895 G4cout << "Fail to store Physics Table Prim for "
897 << " and process " << GetProcessName()
898 << " in the directory <" << directory
899 << "> " << G4endl;
900 }
901 }
902 return yes;
903}
G4bool StorePhysicsTable(const G4String &filename, G4bool ascii=false)

References G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4VProcess::GetPhysicsTableFileName(), G4VProcess::GetProcessName(), G4VEmProcess::isTheMaster, G4InuclParticleNames::name(), G4VEmProcess::particle, G4PhysicsTable::StorePhysicsTable(), G4VEmProcess::theLambdaTable, G4VEmProcess::theLambdaTablePrim, and G4VProcess::verboseLevel.

Referenced by G4GammaGeneralProcess::StorePhysicsTable().

◆ 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().

◆ UseBaseMaterial()

G4bool G4VEmProcess::UseBaseMaterial ( ) const
inlineinherited

Definition at line 777 of file G4VEmProcess.hh.

778{
779 return baseMat;
780}

References G4VEmProcess::baseMat.

Referenced by G4GammaGeneralProcess::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

◆ 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

◆ idxLambda

size_t G4VEmProcess::idxLambda = 0
protectedinherited

◆ isInitialised

G4bool G4DNAElastic::isInitialised
private

Definition at line 62 of file G4DNAElastic.hh.

Referenced by InitialiseProcess().

◆ 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

◆ minKinEnergy

G4double G4VEmProcess::minKinEnergy
privateinherited

◆ minKinEnergyPrim

G4double G4VEmProcess::minKinEnergyPrim = DBL_MAX
privateinherited

◆ modelManager

G4EmModelManager* G4VEmProcess::modelManager = nullptr
privateinherited

◆ nLambdaBins

G4int G4VEmProcess::nLambdaBins = 84
privateinherited

◆ numberOfModels

G4int G4VEmProcess::numberOfModels = 0
privateinherited

◆ particle

const G4ParticleDefinition* G4VEmProcess::particle = nullptr
privateinherited

◆ 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

◆ 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

◆ splineFlag

G4bool G4VEmProcess::splineFlag = true
privateinherited

◆ startFromNull

G4bool G4VEmProcess::startFromNull = false
privateinherited

◆ 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().

◆ 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(), G4GammaGeneralProcess::PostStepDoIt(), G4VEmProcess::PostStepDoIt(), G4VEnergyLossProcess::PostStepDoIt(), G4VContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestContinuousDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4VRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), G4GammaGeneralProcess::PostStepGetPhysicalInteractionLength(), G4Decay::PostStepGetPhysicalInteractionLength(), G4AdjointForcedInteractionForGamma::PostStepGetPhysicalInteractionLength(), G4PolarizedAnnihilation::PostStepGetPhysicalInteractionLength(), G4PolarizedCompton::PostStepGetPhysicalInteractionLength(), G4PolarizedIonisation::PostStepGetPhysicalInteractionLength(), G4VEmProcess::PostStepGetPhysicalInteractionLength(), G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(), G4VProcess::ResetNumberOfInteractionLengthLeft(), G4VProcess::StartTracking(), G4GammaGeneralProcess::StartTracking(), G4VEmProcess::StartTracking(), G4VEnergyLossProcess::StartTracking(), and G4VProcess::SubtractNumberOfInteractionLengthLeft().

◆ theParameters

G4EmParameters* G4VEmProcess::theParameters = nullptr
privateinherited

◆ 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

◆ 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(), G4GammaGeneralProcess::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(), G4GammaGeneralProcess::PreparePhysicsTable(), G4VEmProcess::PreparePhysicsTable(), G4VEnergyLossProcess::PreparePhysicsTable(), G4VMultipleScattering::PreparePhysicsTable(), G4hImpactIonisation::ProtonParametrisedDEDX(), G4UCNBoundaryProcess::Reflect(), G4CoupledTransportation::ReportInexactEnergy(), G4CoupledTransportation::ReportMissingLogger(), G4GammaGeneralProcess::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: