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

#include <G4PolarizedCompton.hh>

Inheritance diagram for G4PolarizedCompton:
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)
 
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 override
 
G4VEmModelEmModel (size_t index=0) const
 
virtual void EndTracking ()
 
std::vector< G4double > * EnergyOfCrossSectionMax () const
 
std::vector< G4double > * FindLambdaMax ()
 
 G4PolarizedCompton (const G4PolarizedCompton &)=delete
 
 G4PolarizedCompton (const G4String &processName="pol-compt", 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 &) override
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool isPostStepDoItIsEnabled () const
 
G4PhysicsTableLambdaTable () const
 
G4PhysicsTableLambdaTablePrim () const
 
G4double MeanFreePath (const G4Track &track)
 
G4int NumberOfModels () const
 
G4bool operator!= (const G4VProcess &right) const
 
G4PolarizedComptonoperator= (const G4PolarizedCompton &right)=delete
 
G4bool operator== (const G4VProcess &right) const
 
const G4ParticleDefinitionParticle () const
 
G4VParticleChangePostStepDoIt (const G4Track &, const G4Step &) override
 
G4double PostStepGPIL (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
void PreparePhysicsTable (const G4ParticleDefinition &) override
 
virtual void PrepareWorkerPhysicsTable (const G4ParticleDefinition &)
 
virtual void ProcessDescription (std::ostream &) 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 SetModel (const G4String &name)
 
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 ~G4PolarizedCompton () override
 

Static Public Member Functions

static const G4StringGetProcessTypeName (G4ProcessType)
 

Protected Member Functions

G4bool ApplyCuts () const
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &) override
 
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 ()
 
virtual G4double GetMeanFreePath (const G4Track &aTrack, G4double previousStepSize, G4ForceCondition *condition) override
 
G4ParticleChangeForGammaGetParticleChange ()
 
const G4ElementGetTargetElement () const
 
const G4IsotopeGetTargetIsotope () const
 
virtual void InitialiseProcess (const G4ParticleDefinition *) override
 
G4int LambdaBinning () const
 
G4PhysicsVectorLambdaPhysicsVector (const G4MaterialCutsCouple *)
 
const G4MaterialCutsCoupleMaterialCutsCouple () const
 
G4double MaxKinEnergy () const
 
G4double MinKinEnergy () const
 
virtual G4double MinPrimaryEnergy (const G4ParticleDefinition *, const G4Material *)
 
G4double PolarAngleLimit () const
 
virtual G4double PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) override
 
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 BuildAsymmetryTable (const G4ParticleDefinition &part)
 
void BuildLambdaTable ()
 
void CleanTable ()
 
void Clear ()
 
G4double ComputeAsymmetry (G4double energy, const G4MaterialCutsCouple *couple, const G4ParticleDefinition &particle, G4double cut, G4double &tAsymmetry)
 
G4double ComputeCurrentLambda (G4double kinEnergy)
 
void ComputeIntegralLambda (G4double kinEnergy, G4double logKinEnergy)
 
G4double ComputeSaturationFactor (const G4Track &aTrack)
 
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
 
G4bool fBuildAsymmetryTable
 
G4PolarizedComptonModelfEmModel
 
G4double fFactor = 1.0
 
G4bool fIsInitialised
 
G4double fLambda = 0.0
 
G4double fLambdaEnergy = 0.0
 
G4ProcessTablefProcessTable = nullptr
 
G4int fType
 
G4bool fUseAsymmetryTable
 
G4CrossSectionType fXSType = fEmNoIntegral
 
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
 

Static Private Attributes

static G4PhysicsTabletheAsymmetryTable = nullptr
 

Detailed Description

Definition at line 52 of file G4PolarizedCompton.hh.

Constructor & Destructor Documentation

◆ G4PolarizedCompton() [1/2]

G4PolarizedCompton::G4PolarizedCompton ( const G4String processName = "pol-compt",
G4ProcessType  type = fElectromagnetic 
)
explicit

Definition at line 50 of file G4PolarizedCompton.cc.

52 : G4VEmProcess(processName, type)
53 , fType(10)
55 , fUseAsymmetryTable(true)
56 , fIsInitialised(false)
57{
63 SetSplineFlag(true);
64 fEmModel = nullptr;
65}
@ fComptonScattering
static constexpr double MeV
Definition: G4SIunits.hh:200
static G4Electron * Electron()
Definition: G4Electron.cc:93
G4PolarizedComptonModel * fEmModel
G4VEmProcess(const G4String &name, G4ProcessType type=fElectromagnetic)
Definition: G4VEmProcess.cc:79
void SetBuildTableFlag(G4bool val)
void SetSecondaryParticle(const G4ParticleDefinition *p)
void SetSplineFlag(G4bool val)
void SetStartFromNullFlag(G4bool val)
void SetMinKinEnergyPrim(G4double e)
void SetProcessSubType(G4int)
Definition: G4VProcess.hh:406

References G4Electron::Electron(), fComptonScattering, fEmModel, MeV, G4VEmProcess::SetBuildTableFlag(), G4VEmProcess::SetMinKinEnergyPrim(), G4VProcess::SetProcessSubType(), G4VEmProcess::SetSecondaryParticle(), G4VEmProcess::SetSplineFlag(), and G4VEmProcess::SetStartFromNullFlag().

◆ ~G4PolarizedCompton()

G4PolarizedCompton::~G4PolarizedCompton ( )
overridevirtual

Definition at line 68 of file G4PolarizedCompton.cc.

References CleanTable().

◆ G4PolarizedCompton() [2/2]

G4PolarizedCompton::G4PolarizedCompton ( const G4PolarizedCompton )
delete

Member Function Documentation

◆ ActivateForcedInteraction()

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

Definition at line 1129 of file G4VEmProcess.cc.

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

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

Referenced by G4EmExtraParameters::DefineRegParamForEM().

◆ ActivateSecondaryBiasing()

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

Definition at line 1149 of file G4VEmProcess.cc.

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

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

Referenced by G4EmExtraParameters::DefineRegParamForEM().

◆ AddEmModel()

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

Definition at line 146 of file G4VEmProcess.cc.

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

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

Referenced by LBE::ConstructEM(), G4EmDNAPhysics_option7::ConstructProcess(), G4EmDNAPhysics_option8::ConstructProcess(), G4EmLivermorePhysics::ConstructProcess(), G4EmPenelopePhysics::ConstructProcess(), G4EmStandardPhysics_option4::ConstructProcess(), G4DNAAttachment::InitialiseProcess(), G4DNAChargeDecrease::InitialiseProcess(), G4DNAChargeIncrease::InitialiseProcess(), G4DNADissociation::InitialiseProcess(), G4DNAElastic::InitialiseProcess(), G4DNAElectronSolvation::InitialiseProcess(), G4DNAExcitation::InitialiseProcess(), G4DNAIonisation::InitialiseProcess(), G4DNAPlasmonExcitation::InitialiseProcess(), G4DNAPositronium::InitialiseProcess(), G4DNARotExcitation::InitialiseProcess(), G4DNAVibExcitation::InitialiseProcess(), G4NuclearStopping::InitialiseProcess(), G4eeToHadrons::InitialiseProcess(), G4JAEAElasticScattering::InitialiseProcess(), G4MicroElecElastic::InitialiseProcess(), G4MicroElecInelastic::InitialiseProcess(), G4MicroElecLOPhononScattering::InitialiseProcess(), G4RayleighScattering::InitialiseProcess(), 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().

◆ BuildAsymmetryTable()

void G4PolarizedCompton::BuildAsymmetryTable ( const G4ParticleDefinition part)
private

Definition at line 288 of file G4PolarizedCompton.cc.

289{
290 // cleanup old, initialise new table
291 CleanTable();
294
295 // Access to materials
296 const G4ProductionCutsTable* theCoupleTable =
298 size_t numOfCouples = theCoupleTable->GetTableSize();
300 {
301 return;
302 }
303 G4int nbins = LambdaBinning();
304 G4double emin = MinKinEnergy();
306 G4PhysicsLogVector* aVector = nullptr;
307 G4PhysicsLogVector* bVector = nullptr;
308
309 for(size_t i = 0; i < numOfCouples; ++i)
310 {
312 {
313 // create physics vector and fill it
314 const G4MaterialCutsCouple* couple =
315 theCoupleTable->GetMaterialCutsCouple(i);
316 // use same parameters as for lambda
317 if(!aVector)
318 {
319 aVector = new G4PhysicsLogVector(emin, emax, nbins, true);
320 bVector = aVector;
321 }
322 else
323 {
324 bVector = new G4PhysicsLogVector(*aVector);
325 }
326
327 for(G4int j = 0; j <= nbins; ++j)
328 {
329 G4double energy = bVector->Energy(j);
330 G4double tasm = 0.;
331 G4double asym = ComputeAsymmetry(energy, couple, part, 0., tasm);
332 bVector->PutValue(j, asym);
333 }
334 bVector->FillSecondDerivatives();
336 }
337 }
338}
static const G4double emax
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
static G4PhysicsTable * PreparePhysicsTable(G4PhysicsTable *physTable)
static void SetPhysicsVector(G4PhysicsTable *physTable, std::size_t idx, G4PhysicsVector *vec)
G4bool GetFlag(std::size_t i) const
void PutValue(const std::size_t index, const G4double value)
G4double Energy(const std::size_t index) const
void FillSecondDerivatives(const G4SplineType=G4SplineType::Base, const G4double dir1=0.0, const G4double dir2=0.0)
G4double ComputeAsymmetry(G4double energy, const G4MaterialCutsCouple *couple, const G4ParticleDefinition &particle, G4double cut, G4double &tAsymmetry)
static G4PhysicsTable * theAsymmetryTable
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
std::size_t GetTableSize() const
static G4ProductionCutsTable * GetProductionCutsTable()
G4double MaxKinEnergy() const
G4double MinKinEnergy() const
G4int LambdaBinning() const
G4double energy(const ThreeVector &p, const G4double m)

References CleanTable(), ComputeAsymmetry(), emax, G4PhysicsVector::Energy(), G4INCL::KinematicsUtils::energy(), G4PhysicsVector::FillSecondDerivatives(), G4PhysicsTable::GetFlag(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4ProductionCutsTable::GetProductionCutsTable(), G4ProductionCutsTable::GetTableSize(), G4VEmProcess::LambdaBinning(), G4VEmProcess::MaxKinEnergy(), G4VEmProcess::MinKinEnergy(), G4PhysicsTableHelper::PreparePhysicsTable(), G4PhysicsVector::PutValue(), G4PhysicsTableHelper::SetPhysicsVector(), and theAsymmetryTable.

Referenced by BuildPhysicsTable().

◆ 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}
@ fIsCrossSectionPrim
G4double G4Log(G4double x)
Definition: G4Log.hh:226
bool G4bool
Definition: G4Types.hh:86
void FillLambdaVector(G4PhysicsVector *, const G4MaterialCutsCouple *, G4bool startFromNull=true, G4EmTableType t=fRestricted)
G4double MinKinEnergy() const
G4int NumberOfBinsPerDecade() const
G4double MaxKinEnergy() const
G4bool GetFlag(size_t idx)
G4LossTableBuilder * GetTableBuilder()
const G4Material * GetMaterial() const
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 G4PolarizedCompton::BuildPhysicsTable ( const G4ParticleDefinition part)
overrideprotectedvirtual

Reimplemented from G4VProcess.

Definition at line 267 of file G4PolarizedCompton.cc.

268{
269 // *** build (unpolarized) cross section tables (Lambda)
272 {
273 G4bool isMaster = true;
274 const G4PolarizedCompton* masterProcess =
275 static_cast<const G4PolarizedCompton*>(GetMasterProcess());
276 if(masterProcess && masterProcess != this)
277 {
278 isMaster = false;
279 }
280 if(isMaster)
281 {
283 }
284 }
285}
void BuildAsymmetryTable(const G4ParticleDefinition &part)
void BuildPhysicsTable(const G4ParticleDefinition &) override
const G4VProcess * GetMasterProcess() const
Definition: G4VProcess.hh:518

References BuildAsymmetryTable(), G4VEmProcess::BuildPhysicsTable(), fBuildAsymmetryTable, fEmModel, and G4VProcess::GetMasterProcess().

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

◆ CleanTable()

void G4PolarizedCompton::CleanTable ( )
private

Definition at line 79 of file G4PolarizedCompton.cc.

80{
82 {
84 delete theAsymmetryTable;
85 theAsymmetryTable = nullptr;
86 }
87}
void clearAndDestroy()

References G4PhysicsTable::clearAndDestroy(), and theAsymmetryTable.

Referenced by BuildAsymmetryTable(), and ~G4PolarizedCompton().

◆ 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

◆ ComputeAsymmetry()

G4double G4PolarizedCompton::ComputeAsymmetry ( G4double  energy,
const G4MaterialCutsCouple couple,
const G4ParticleDefinition particle,
G4double  cut,
G4double tAsymmetry 
)
private

Definition at line 341 of file G4PolarizedCompton.cc.

344{
345 G4double lAsymmetry = 0.0;
346 tAsymmetry = 0;
347
348 // calculate polarized cross section
349 G4ThreeVector thePolarization = G4ThreeVector(0., 0., 1.);
350 fEmModel->SetTargetPolarization(thePolarization);
351 fEmModel->SetBeamPolarization(thePolarization);
352 G4double sigma2 =
353 fEmModel->CrossSection(couple, &aParticle, energy, cut, energy);
354
355 // calculate unpolarized cross section
356 thePolarization = G4ThreeVector();
357 fEmModel->SetTargetPolarization(thePolarization);
358 fEmModel->SetBeamPolarization(thePolarization);
359 G4double sigma0 =
360 fEmModel->CrossSection(couple, &aParticle, energy, cut, energy);
361
362 // determine asymmetries
363 if(sigma0 > 0.)
364 {
365 lAsymmetry = sigma2 / sigma0 - 1.;
366 }
367 return lAsymmetry;
368}
CLHEP::Hep3Vector G4ThreeVector
void SetTargetPolarization(const G4ThreeVector &pTarget)
void SetBeamPolarization(const G4ThreeVector &pBeam)
G4double CrossSection(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
Definition: G4VEmModel.hh:539

References G4VEmModel::CrossSection(), G4INCL::KinematicsUtils::energy(), fEmModel, G4PolarizedComptonModel::SetBeamPolarization(), and G4PolarizedComptonModel::SetTargetPolarization().

Referenced by BuildAsymmetryTable().

◆ 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]
@ fEmOnePeak
@ fEmDecreasing
@ fEmNoIntegral
@ fEmIncreasing
G4double mfpKinEnergy
G4CrossSectionType fXSType
G4double GetCurrentLambda(G4double kinEnergy)
G4double lambdaFactor

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

Referenced by G4VEmProcess::PostStepGetPhysicalInteractionLength().

◆ ComputeSaturationFactor()

G4double G4PolarizedCompton::ComputeSaturationFactor ( const G4Track aTrack)
private

Definition at line 193 of file G4PolarizedCompton.cc.

194{
195 G4double factor = 1.0;
196
197 // *** get asymmetry, if target is polarized ***
198 const G4DynamicParticle* aDynamicGamma = aTrack.GetDynamicParticle();
199 const G4double GammaEnergy = aDynamicGamma->GetKineticEnergy();
200 const G4StokesVector GammaPolarization =
202 const G4ParticleMomentum GammaDirection0 =
203 aDynamicGamma->GetMomentumDirection();
204
205 G4Material* aMaterial = aTrack.GetMaterial();
206 G4VPhysicalVolume* aPVolume = aTrack.GetVolume();
207 G4LogicalVolume* aLVolume = aPVolume->GetLogicalVolume();
208
209 G4PolarizationManager* polarizationManager =
211
212 const G4bool VolumeIsPolarized = polarizationManager->IsPolarized(aLVolume);
213 G4StokesVector ElectronPolarization =
214 polarizationManager->GetVolumePolarization(aLVolume);
215
216 if(VolumeIsPolarized)
217 {
218 if(verboseLevel >= 2)
219 {
220 G4cout << "G4PolarizedCompton::ComputeSaturationFactor: " << G4endl;
221 G4cout << " Mom " << GammaDirection0 << G4endl;
222 G4cout << " Polarization " << GammaPolarization << G4endl;
223 G4cout << " MaterialPol. " << ElectronPolarization << G4endl;
224 G4cout << " Phys. Volume " << aPVolume->GetName() << G4endl;
225 G4cout << " Log. Volume " << aLVolume->GetName() << G4endl;
226 G4cout << " Material " << aMaterial << G4endl;
227 }
228
229 size_t midx = CurrentMaterialCutsCoupleIndex();
230 const G4PhysicsVector* aVector = nullptr;
231 if(midx < theAsymmetryTable->size())
232 {
233 aVector = (*theAsymmetryTable)(midx);
234 }
235 if(aVector)
236 {
237 G4double asymmetry = aVector->Value(GammaEnergy);
238
239 // we have to determine angle between particle motion
240 // and target polarisation here
241 // circ pol * Vec(ElectronPol)*Vec(PhotonMomentum)
242 // both vectors in global reference frame
243
244 G4double pol = ElectronPolarization * GammaDirection0;
245 G4double polProduct = GammaPolarization.p3() * pol;
246 factor /= (1. + polProduct * asymmetry);
247 if(verboseLevel >= 2)
248 {
249 G4cout << " Asymmetry: " << asymmetry << G4endl;
250 G4cout << " PolProduct: " << polProduct << G4endl;
251 G4cout << " Factor: " << factor << G4endl;
252 }
253 }
254 else
255 {
257 ed << "Problem with asymmetry table: material index " << midx
258 << " is out of range or the table is not filled";
259 G4Exception("G4PolarizedComptonModel::ComputeSaturationFactor", "em0048",
260 JustWarning, ed, "");
261 }
262 }
263 return factor;
264}
@ 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
const G4ThreeVector & GetMomentumDirection() const
G4double GetKineticEnergy() const
const G4String & GetName() const
G4double Value(const G4double energy, std::size_t &lastidx) const
bool IsPolarized(G4LogicalVolume *lVol) const
const G4StokesVector GetVolumePolarization(G4LogicalVolume *lVol) const
static G4PolarizationManager * GetInstance()
G4double p3() const
G4VPhysicalVolume * GetVolume() const
G4Material * GetMaterial() const
const G4DynamicParticle * GetDynamicParticle() const
const G4ThreeVector & GetPolarization() const
size_t CurrentMaterialCutsCoupleIndex() const
G4LogicalVolume * GetLogicalVolume() const
const G4String & GetName() const

References G4VEmProcess::CurrentMaterialCutsCoupleIndex(), G4cout, G4endl, G4Exception(), G4Track::GetDynamicParticle(), G4PolarizationManager::GetInstance(), G4DynamicParticle::GetKineticEnergy(), G4VPhysicalVolume::GetLogicalVolume(), G4Track::GetMaterial(), G4DynamicParticle::GetMomentumDirection(), G4LogicalVolume::GetName(), G4VPhysicalVolume::GetName(), G4Track::GetPolarization(), G4Track::GetVolume(), G4PolarizationManager::GetVolumePolarization(), G4PolarizationManager::IsPolarized(), JustWarning, G4StokesVector::p3(), G4PhysicsVector::Value(), and G4VProcess::verboseLevel.

Referenced by GetMeanFreePath(), and 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()

virtual void G4PolarizedCompton::DumpInfo ( ) const
inlineoverridevirtual

Reimplemented from G4VProcess.

Definition at line 65 of file G4PolarizedCompton.hh.

virtual void ProcessDescription(std::ostream &) const override

References G4cout, and ProcessDescription().

◆ EmModel()

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

Definition at line 805 of file G4VEmProcess.hh.

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

References G4VEmProcess::emModels.

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

◆ EndTracking()

void G4VProcess::EndTracking ( )
virtualinherited

◆ EnergyOfCrossSectionMax()

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

Definition at line 671 of file G4VEmProcess.hh.

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

References G4VEmProcess::theEnergyOfCrossSectionMax.

Referenced by G4VEmProcess::BuildPhysicsTable().

◆ FindLambdaMax()

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

Definition at line 1021 of file G4VEmProcess.cc.

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

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

Referenced by G4VEmProcess::BuildPhysicsTable().

◆ GetCurrentElement()

const G4Element * G4VEmProcess::GetCurrentElement ( ) const
inherited

Definition at line 1104 of file G4VEmProcess.cc.

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

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

◆ GetCurrentInteractionLength()

G4double G4VProcess::GetCurrentInteractionLength ( ) const
inlineinherited

◆ GetCurrentLambda() [1/2]

G4double G4VEmProcess::GetCurrentLambda ( G4double  kinEnergy)
inlineprivateinherited

◆ GetCurrentLambda() [2/2]

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

◆ GetCurrentModel()

const G4VEmModel * G4VEmProcess::GetCurrentModel ( ) const
inlineinherited

Definition at line 784 of file G4VEmProcess.hh.

785{
786 return currentModel;
787}

References G4VEmProcess::currentModel.

◆ GetElectronEnergyCut()

G4double G4VEmProcess::GetElectronEnergyCut ( )
inlineprotectedinherited

Definition at line 487 of file G4VEmProcess.hh.

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

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

Referenced by G4eplusAnnihilation::AtRestDoIt().

◆ GetEmProcess()

G4VEmProcess * 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 G4PolarizedCompton::GetMeanFreePath ( const G4Track aTrack,
G4double  previousStepSize,
G4ForceCondition condition 
)
overrideprotectedvirtual

Implements G4VDiscreteProcess.

Definition at line 134 of file G4PolarizedCompton.cc.

137{
138 // *** get unploarised mean free path from lambda table ***
139 G4double mfp =
140 G4VEmProcess::GetMeanFreePath(aTrack, previousStepSize, condition);
141
143 {
144 mfp *= ComputeSaturationFactor(aTrack);
145 }
146 if(verboseLevel >= 2)
147 {
148 G4cout << "G4PolarizedCompton::MeanFreePath: " << mfp / mm << " mm "
149 << G4endl;
150 }
151 return mfp;
152}
G4double ComputeSaturationFactor(const G4Track &aTrack)
G4double GetMeanFreePath(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) override

References ComputeSaturationFactor(), condition(), DBL_MAX, fUseAsymmetryTable, G4cout, G4endl, G4VEmProcess::GetMeanFreePath(), mm, theAsymmetryTable, and G4VProcess::verboseLevel.

◆ 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

◆ 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 G4PolarizedCompton::InitialiseProcess ( const G4ParticleDefinition )
overrideprotectedvirtual

Implements G4VEmProcess.

Definition at line 96 of file G4PolarizedCompton.cc.

97{
99 {
100 fIsInitialised = true;
101 if(0 == fType)
102 {
103 if(nullptr == EmModel(0))
104 {
106 }
107 }
108 else
109 {
112 }
116 AddEmModel(1, EmModel(0));
117 }
118}
static G4EmParameters * Instance()
void SetHighEnergyLimit(G4double)
Definition: G4VEmModel.hh:767
void SetLowEnergyLimit(G4double)
Definition: G4VEmModel.hh:774
G4VEmModel * EmModel(size_t index=0) const
void AddEmModel(G4int, G4VEmModel *, const G4Region *region=nullptr)
void SetEmModel(G4VEmModel *, G4int index=0)

References G4VEmProcess::AddEmModel(), G4VEmProcess::EmModel(), fEmModel, fIsInitialised, fType, G4EmParameters::Instance(), G4EmParameters::MaxKinEnergy(), G4EmParameters::MinKinEnergy(), 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 G4PolarizedCompton::IsApplicable ( const G4ParticleDefinition p)
overridevirtual

Implements G4VEmProcess.

Definition at line 90 of file G4PolarizedCompton.cc.

91{
92 return (&p == G4Gamma::Gamma());
93}
static G4Gamma * Gamma()
Definition: G4Gamma.cc:85

References G4Gamma::Gamma().

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

Definition at line 636 of file G4VEmProcess.hh.

637{
638 return minKinEnergy;
639}

References G4VEmProcess::minKinEnergy.

Referenced by BuildAsymmetryTable(), and G4eplusAnnihilation::InitialiseProcess().

◆ MinPrimaryEnergy()

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

Reimplemented in G4CoulombScattering, and G4GammaConversion.

Definition at line 138 of file G4VEmProcess.cc.

140{
141 return 0.0;
142}

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

◆ NumberOfModels()

G4int G4VEmProcess::NumberOfModels ( ) const
inlineinherited

Definition at line 798 of file G4VEmProcess.hh.

799{
800 return numberOfModels;
801}
G4int numberOfModels

References G4VEmProcess::numberOfModels.

◆ operator!=()

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

Definition at line 161 of file G4VProcess.cc.

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

◆ operator=()

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

◆ operator==()

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

Definition at line 155 of file G4VProcess.cc.

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

◆ Particle()

const G4ParticleDefinition * G4VEmProcess::Particle ( ) const
inlineinherited

Definition at line 678 of file G4VEmProcess.hh.

679{
680 return particle;
681}

References G4VEmProcess::particle.

◆ PolarAngleLimit()

G4double G4VEmProcess::PolarAngleLimit ( ) const
inlineprotectedinherited

Definition at line 1236 of file G4VEmProcess.cc.

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

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

◆ PostStepDoIt()

G4VParticleChange * 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}
@ fAlive
@ fStopAndKill
@ fStopButAlive
#define G4UniformRand()
Definition: Randomize.hh:52
const G4ParticleDefinition * GetParticleDefinition() 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 G4PolarizedCompton::PostStepGetPhysicalInteractionLength ( const G4Track track,
G4double  previousStepSize,
G4ForceCondition condition 
)
overrideprotectedvirtual

Reimplemented from G4VDiscreteProcess.

Definition at line 155 of file G4PolarizedCompton.cc.

157{
158 // save previous values
161
162 // *** compute unpolarized step limit ***
163 // this changes theNumberOfInteractionLengthLeft and currentInteractionLength
165 aTrack, previousStepSize, condition);
166 G4double x0 = x;
167 G4double satFact = 1.0;
168
169 // *** add corrections on polarisation ***
171 {
172 satFact = ComputeSaturationFactor(aTrack);
173 G4double curLength = currentInteractionLength * satFact;
174 G4double prvLength = iLength * satFact;
175 if(nLength > 0.0)
176 {
178 std::max(nLength - previousStepSize / prvLength, 0.0);
179 }
180 x = theNumberOfInteractionLengthLeft * curLength;
181 }
182 if(verboseLevel >= 2)
183 {
184 G4cout << "G4PolarizedCompton::PostStepGPIL: " << std::setprecision(8)
185 << x / mm << " mm;" << G4endl
186 << " unpolarized value: " << std::setprecision(8)
187 << x0 / mm << " mm." << G4endl;
188 }
189 return x;
190}
G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) override

References ComputeSaturationFactor(), condition(), G4VProcess::currentInteractionLength, DBL_MAX, fUseAsymmetryTable, G4cout, G4endl, G4INCL::Math::max(), mm, G4VEmProcess::PostStepGetPhysicalInteractionLength(), theAsymmetryTable, G4VProcess::theNumberOfInteractionLengthLeft, and G4VProcess::verboseLevel.

◆ 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
void SetUseBaseMaterials(G4bool val)
Definition: G4VEmModel.hh:753
G4bool actMaxKinEnergy
G4bool actMinKinEnergy
virtual void InitialiseProcess(const G4ParticleDefinition *)=0
G4double logLambdaFactor
G4bool isTheMaster
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().

◆ 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}
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 G4PolarizedCompton::ProcessDescription ( std::ostream &  out) const
overridevirtual

Reimplemented from G4VProcess.

Definition at line 71 of file G4PolarizedCompton.cc.

72{
73 out << "Polarized model for Compton scattering.\n";
74
76}
void ProcessDescription(std::ostream &outFile) const override

References G4VEmProcess::ProcessDescription().

Referenced by DumpInfo().

◆ 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}
const G4VEmProcess * masterProc

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(), G4DNAElastic::InitialiseProcess(), G4DNAElectronSolvation::InitialiseProcess(), G4DNAExcitation::InitialiseProcess(), G4DNAIonisation::InitialiseProcess(), G4DNAPlasmonExcitation::InitialiseProcess(), G4DNAPositronium::InitialiseProcess(), G4DNARotExcitation::InitialiseProcess(), G4DNAVibExcitation::InitialiseProcess(), G4NuclearStopping::InitialiseProcess(), G4eeToHadrons::InitialiseProcess(), G4JAEAElasticScattering::InitialiseProcess(), G4MicroElecElastic::InitialiseProcess(), G4MicroElecInelastic::InitialiseProcess(), G4MicroElecLOPhononScattering::InitialiseProcess(), G4RayleighScattering::InitialiseProcess(), 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

◆ SetModel()

void G4PolarizedCompton::SetModel ( const G4String name)

Definition at line 121 of file G4PolarizedCompton.cc.

122{
123 if(ss == "Klein-Nishina")
124 {
125 fType = 0;
126 }
127 if(ss == "Polarized-Compton")
128 {
129 fType = 10;
130 }
131}

References fType.

◆ SetParticle()

void G4VEmProcess::SetParticle ( const G4ParticleDefinition p)
inlineprotectedinherited

◆ SetPILfactor()

void G4VProcess::SetPILfactor ( G4double  value)
inlineinherited

Definition at line 449 of file G4VProcess.hh.

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

References G4VProcess::thePILfactor.

Referenced by export_G4VProcess().

◆ SetProcessManager()

void G4VProcess::SetProcessManager ( const G4ProcessManager procMan)
inlinevirtualinherited

◆ SetProcessSubType()

void G4VProcess::SetProcessSubType ( G4int  value)
inlineinherited

Definition at line 406 of file G4VProcess.hh.

407{
408 theProcessSubType = value;
409}

References G4VProcess::theProcessSubType.

Referenced by G4DNAElectronHoleRecombination::Create(), G4DNASecondOrderReaction::Create(), G4AnnihiToMuPair::G4AnnihiToMuPair(), G4BiasingProcessInterface::G4BiasingProcessInterface(), G4Cerenkov::G4Cerenkov(), G4ComptonScattering::G4ComptonScattering(), G4CoulombScattering::G4CoulombScattering(), G4CoupledTransportation::G4CoupledTransportation(), G4Decay::G4Decay(), G4DecayWithSpin::G4DecayWithSpin(), G4DNAAttachment::G4DNAAttachment(), G4DNABrownianTransportation::G4DNABrownianTransportation(), G4DNAChargeDecrease::G4DNAChargeDecrease(), G4DNAChargeIncrease::G4DNAChargeIncrease(), G4DNAElastic::G4DNAElastic(), G4DNAElectronSolvation::G4DNAElectronSolvation(), G4DNAExcitation::G4DNAExcitation(), G4DNAIonisation::G4DNAIonisation(), G4DNAMolecularDissociation::G4DNAMolecularDissociation(), G4DNAScavengerProcess::G4DNAScavengerProcess(), G4DNAVibExcitation::G4DNAVibExcitation(), G4eBremsstrahlung::G4eBremsstrahlung(), G4eeToHadrons::G4eeToHadrons(), G4eIonisation::G4eIonisation(), G4ePairProduction::G4ePairProduction(), G4eplusAnnihilation::G4eplusAnnihilation(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4GammaConversion::G4GammaConversion(), G4GammaConversionToMuons::G4GammaConversionToMuons(), G4GammaGeneralProcess::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(), 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
G4int GetParentID() 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)
const char * name(G4int ptype)

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

◆ fBuildAsymmetryTable

G4bool G4PolarizedCompton::fBuildAsymmetryTable
private

Definition at line 101 of file G4PolarizedCompton.hh.

Referenced by BuildPhysicsTable().

◆ fEmModel

G4PolarizedComptonModel* G4PolarizedCompton::fEmModel
private

◆ fFactor

G4double G4VEmProcess::fFactor = 1.0
privateinherited

◆ fIsInitialised

G4bool G4PolarizedCompton::fIsInitialised
private

Definition at line 104 of file G4PolarizedCompton.hh.

Referenced by InitialiseProcess().

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

◆ fType

G4int G4PolarizedCompton::fType
private

Definition at line 99 of file G4PolarizedCompton.hh.

Referenced by InitialiseProcess(), and SetModel().

◆ fUseAsymmetryTable

G4bool G4PolarizedCompton::fUseAsymmetryTable
private

Definition at line 102 of file G4PolarizedCompton.hh.

Referenced by GetMeanFreePath(), and PostStepGetPhysicalInteractionLength().

◆ fXSType

G4CrossSectionType G4VEmProcess::fXSType = fEmNoIntegral
privateinherited

◆ idxLambda

size_t G4VEmProcess::idxLambda = 0
protectedinherited

◆ isIon

G4bool G4VEmProcess::isIon = false
privateinherited

◆ isTheMaster

G4bool G4VEmProcess::isTheMaster = true
protectedinherited

◆ lambdaFactor

G4double G4VEmProcess::lambdaFactor = 0.8
privateinherited

◆ lManager

G4LossTableManager* G4VEmProcess::lManager = nullptr
privateinherited

◆ logLambdaFactor

G4double G4VEmProcess::logLambdaFactor
privateinherited

◆ mainSecondaries

G4int G4VEmProcess::mainSecondaries = 1
protectedinherited

◆ massRatio

G4double G4VEmProcess::massRatio = 1.0
privateinherited

◆ masterProc

const G4VEmProcess* G4VEmProcess::masterProc = nullptr
privateinherited

◆ masterProcessShadow

G4VProcess* G4VProcess::masterProcessShadow = nullptr
privateinherited

Definition at line 370 of file G4VProcess.hh.

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

◆ maxKinEnergy

G4double G4VEmProcess::maxKinEnergy
privateinherited

◆ mfpKinEnergy

G4double G4VEmProcess::mfpKinEnergy = DBL_MAX
protectedinherited

◆ 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

◆ theAsymmetryTable

G4PhysicsTable * G4PolarizedCompton::theAsymmetryTable = nullptr
staticprivate

◆ 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(), 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(), 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(), 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(), 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: