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

#include <G4PolarizedAnnihilation.hh>

Inheritance diagram for G4PolarizedAnnihilation:
G4eplusAnnihilation 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)
 
G4VParticleChangeAtRestDoIt (const G4Track &track, const G4Step &stepData) override
 
G4double AtRestGetPhysicalInteractionLength (const G4Track &track, G4ForceCondition *condition) override
 
G4double AtRestGPIL (const G4Track &track, G4ForceCondition *condition)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &) override
 
virtual void BuildWorkerPhysicsTable (const G4ParticleDefinition &part)
 
G4double ComputeCrossSectionPerAtom (G4double kineticEnergy, G4double Z, G4double A=0., G4double cut=0.0)
 
G4double CrossSectionBiasingFactor () const
 
G4double CrossSectionPerVolume (G4double kineticEnergy, const G4MaterialCutsCouple *couple, G4double logKinEnergy=DBL_MAX)
 
void CurrentSetup (const G4MaterialCutsCouple *, G4double energy)
 
virtual void DumpInfo () const override
 
G4VEmModelEmModel (size_t index=0) const
 
virtual void EndTracking ()
 
std::vector< G4double > * EnergyOfCrossSectionMax () const
 
std::vector< G4double > * FindLambdaMax ()
 
 G4PolarizedAnnihilation (const G4PolarizedAnnihilation &)=delete
 
 G4PolarizedAnnihilation (const G4String &name="pol-annihil")
 
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
 
virtual G4double GetMeanFreePath (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) override
 
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
 
G4bool IsApplicable (const G4ParticleDefinition &p) final
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool isPostStepDoItIsEnabled () const
 
G4PhysicsTableLambdaTable () const
 
G4PhysicsTableLambdaTablePrim () const
 
G4double MeanFreePath (const G4Track &track)
 
G4int NumberOfModels () const
 
G4bool operator!= (const G4VProcess &right) const
 
G4PolarizedAnnihilationoperator= (const G4PolarizedAnnihilation &right)=delete
 
G4bool operator== (const G4VProcess &right) const
 
const G4ParticleDefinitionParticle () const
 
G4VParticleChangePostStepDoIt (const G4Track &, const G4Step &) override
 
virtual G4double PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) override
 
G4double PostStepGPIL (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
void PreparePhysicsTable (const G4ParticleDefinition &) override
 
virtual void PrepareWorkerPhysicsTable (const G4ParticleDefinition &)
 
virtual void 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 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 ~G4PolarizedAnnihilation () override
 

Static Public Member Functions

static const G4StringGetProcessTypeName (G4ProcessType)
 

Protected Member Functions

G4bool ApplyCuts () const
 
void ClearNumberOfInteractionLengthLeft ()
 
G4CrossSectionType CrossSectionType () const
 
size_t CurrentMaterialCutsCoupleIndex () const
 
void DefineMaterial (const G4MaterialCutsCouple *couple)
 
G4double DensityFactor (G4int idx) const
 
G4int DensityIndex (G4int idx) const
 
G4double GetElectronEnergyCut ()
 
G4double GetGammaEnergyCut ()
 
G4ParticleChangeForGammaGetParticleChange ()
 
const G4ElementGetTargetElement () const
 
const G4IsotopeGetTargetIsotope () const
 
void InitialiseProcess (const G4ParticleDefinition *) override
 
G4int LambdaBinning () const
 
G4PhysicsVectorLambdaPhysicsVector (const G4MaterialCutsCouple *)
 
const G4MaterialCutsCoupleMaterialCutsCouple () const
 
G4double MaxKinEnergy () const
 
G4double MinKinEnergy () const
 
virtual G4double MinPrimaryEnergy (const G4ParticleDefinition *, const G4Material *)
 
G4double PolarAngleLimit () const
 
G4double RecalculateLambda (G4double kinEnergy, const G4MaterialCutsCouple *couple)
 
G4VEmModelSelectModel (G4double kinEnergy, size_t)
 
void SetParticle (const G4ParticleDefinition *p)
 
void SetSecondaryParticle (const G4ParticleDefinition *p)
 
void SetSplineFlag (G4bool val)
 
void SetStartFromNullFlag (G4bool val)
 
void StreamProcessInfo (std::ostream &outFile) const override
 
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 BuildAsymmetryTables (const G4ParticleDefinition &part)
 
void BuildLambdaTable ()
 
void CleanTables ()
 
void Clear ()
 
G4double ComputeAsymmetry (G4double energy, const G4MaterialCutsCouple *couple, const G4ParticleDefinition &particle, G4double cut, G4double &tasm)
 
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
 
G4PhysicsTablefAsymmetryTable
 
G4PolarizedAnnihilationModelfEmModel
 
G4int fEntanglementModelID
 
G4double fFactor = 1.0
 
G4double fLambda = 0.0
 
G4double fLambdaEnergy = 0.0
 
G4ProcessTablefProcessTable = nullptr
 
G4PhysicsTablefTransverseAsymmetryTable
 
G4CrossSectionType fXSType = fEmNoIntegral
 
G4bool isInitialised = false
 
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
 
const G4ParticleDefinitiontheGamma
 
G4PhysicsTabletheLambdaTable = nullptr
 
G4PhysicsTabletheLambdaTablePrim = nullptr
 
G4EmParameterstheParameters = nullptr
 
const G4ParticleDefinitionthePositron = nullptr
 
G4bool weightFlag = false
 

Detailed Description

Definition at line 47 of file G4PolarizedAnnihilation.hh.

Constructor & Destructor Documentation

◆ G4PolarizedAnnihilation() [1/2]

G4PolarizedAnnihilation::G4PolarizedAnnihilation ( const G4String name = "pol-annihil")
explicit

Definition at line 51 of file G4PolarizedAnnihilation.cc.

53 , fAsymmetryTable(nullptr)
55{
58}
G4PolarizedAnnihilationModel * fEmModel
G4PhysicsTable * fTransverseAsymmetryTable
void SetEmModel(G4VEmModel *, G4int index=0)
G4eplusAnnihilation(const G4String &name="annihil")
const char * name(G4int ptype)

References fEmModel, and G4VEmProcess::SetEmModel().

◆ ~G4PolarizedAnnihilation()

G4PolarizedAnnihilation::~G4PolarizedAnnihilation ( )
overridevirtual

Definition at line 61 of file G4PolarizedAnnihilation.cc.

References CleanTables().

◆ G4PolarizedAnnihilation() [2/2]

G4PolarizedAnnihilation::G4PolarizedAnnihilation ( const G4PolarizedAnnihilation )
delete

Member Function Documentation

◆ ActivateForcedInteraction()

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

Definition at line 1129 of file G4VEmProcess.cc.

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

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

Referenced by G4EmExtraParameters::DefineRegParamForEM().

◆ ActivateSecondaryBiasing()

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

Definition at line 1149 of file G4VEmProcess.cc.

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

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

Referenced by G4EmExtraParameters::DefineRegParamForEM().

◆ AddEmModel()

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

Definition at line 146 of file G4VEmProcess.cc.

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

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

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

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

G4VParticleChange * G4eplusAnnihilation::AtRestDoIt ( const G4Track track,
const G4Step stepData 
)
overridevirtualinherited

Reimplemented from G4VDiscreteProcess.

Definition at line 124 of file G4eplusAnnihilation.cc.

127{
129
131 size_t idx = CurrentMaterialCutsCoupleIndex();
132 G4double ene(0.0);
133 G4VEmModel* model = SelectModel(ene, idx);
134
135 // define new weight for primary and secondaries
137
138 // sample secondaries
139 secParticles.clear();
140 G4double gammaCut = GetGammaEnergyCut();
142 track.GetDynamicParticle(), gammaCut);
143
144 G4int num0 = secParticles.size();
145
146 // splitting or Russian roulette
147 if(biasManager) {
149 G4double eloss = 0.0;
151 secParticles, track, model, &fParticleChange, eloss,
152 idx, gammaCut, step.GetPostStepPoint()->GetSafety());
153 if(eloss > 0.0) {
156 }
157 }
158 }
159
160 // save secondaries
161 G4int num = secParticles.size();
162
163 // Check that entanglement is switched on... (the following flag is
164 // set by /process/em/QuantumEntanglement).
166 // ...and that we have two gammas with both gammas' energies above
167 // gammaCut (entanglement is only programmed for e+ e- -> gamma gamma).
168 G4bool entangledgammagamma = false;
169 if (entangled) {
170 if (num == 2) {
171 entangledgammagamma = true;
172 for (const auto* p: secParticles) {
173 if (p->GetDefinition() != theGamma ||
174 p->GetKineticEnergy() < gammaCut) {
175 entangledgammagamma = false;
176 }
177 }
178 }
179 }
180
181 // Prepare a shared pointer for psossible use below. If it is used, the
182 // shared pointer is copied into the tracks through G4EntanglementAuxInfo.
183 // This ensures the clip board lasts until both tracks are destroyed.
184 std::shared_ptr<G4eplusAnnihilationEntanglementClipBoard> clipBoard;
185 if (entangledgammagamma) {
186 clipBoard = std::make_shared<G4eplusAnnihilationEntanglementClipBoard>();
187 clipBoard->SetParentParticleDefinition(track.GetDefinition());
188 }
189
190 if(num > 0) {
191
194 G4double time = track.GetGlobalTime();
195
196 for (G4int i=0; i<num; ++i) {
197 if (secParticles[i]) {
200 G4double e = dp->GetKineticEnergy();
201 G4bool good = true;
202 if(ApplyCuts()) {
203 if (p == theGamma) {
204 if (e < gammaCut) { good = false; }
205 } else if (p == theElectron) {
206 if (e < GetElectronEnergyCut()) { good = false; }
207 }
208 // added secondary if it is good
209 }
210 if (good) {
211 G4Track* t = new G4Track(dp, time, track.GetPosition());
213 if (entangledgammagamma) {
214 // entangledgammagamma is only true when there are only two gammas
215 // (See code above where entangledgammagamma is calculated.)
216 if (i == 0) { // First gamma
217 clipBoard->SetTrackA(t);
218 } else if (i == 1) { // Second gamma
219 clipBoard->SetTrackB(t);
220 }
223 }
224 if (biasManager) {
225 t->SetWeight(weight * biasManager->GetWeight(i));
226 } else {
227 t->SetWeight(weight);
228 }
230
231 // define type of secondary
233 else if(i < num0) {
234 if(p == theGamma) {
236 } else {
238 }
239 } else {
241 }
242 /*
243 G4cout << "Secondary(post step) has weight " << t->GetWeight()
244 << ", Ekin= " << t->GetKineticEnergy()/MeV << " MeV "
245 << GetProcessName() << " fluoID= " << fluoID
246 << " augerID= " << augerID <<G4endl;
247 */
248 } else {
249 delete dp;
250 edep += e;
251 }
252 }
253 }
255 }
256 return &fParticleChange;
257}
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
const G4ParticleDefinition * GetParticleDefinition() const
G4double GetKineticEnergy() const
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)
static G4EmParameters * Instance()
G4bool QuantumEntanglement() const
void InitializeForPostStep(const G4Track &)
void SetAuxiliaryTrackInformation(G4int id, G4VAuxiliaryTrackInformation *info) const
Definition: G4Track.cc:205
void SetWeight(G4double aValue)
const G4ThreeVector & GetPosition() const
void SetTouchableHandle(const G4TouchableHandle &apValue)
G4double GetGlobalTime() const
G4ParticleDefinition * GetDefinition() const
const G4DynamicParticle * GetDynamicParticle() const
const G4TouchableHandle & GetTouchableHandle() const
void SetCreatorModelID(const G4int id)
const G4MaterialCutsCouple * GetMaterialCutsCouple() const
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin=0.0, G4double tmax=DBL_MAX)=0
void DefineMaterial(const G4MaterialCutsCouple *couple)
G4bool ApplyCuts() const
G4double GetGammaEnergyCut()
G4int mainSecondaries
G4VEmModel * SelectModel(G4double kinEnergy, size_t)
G4double GetElectronEnergyCut()
std::vector< G4DynamicParticle * > secParticles
const G4MaterialCutsCouple * MaterialCutsCouple() const
G4ParticleChangeForGamma fParticleChange
size_t CurrentMaterialCutsCoupleIndex() const
G4double GetParentWeight() const
G4double GetLocalEnergyDeposit() const
void AddSecondary(G4Track *aSecondary)
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
void SetNumberOfSecondaries(G4int totSecondaries)
const G4ParticleDefinition * theElectron
const G4ParticleDefinition * theGamma

References G4VParticleChange::AddSecondary(), G4VEmProcess::ApplyCuts(), G4EmBiasingManager::ApplySecondaryBiasing(), G4VEmProcess::augerID, G4VEmProcess::biasID, G4VEmProcess::biasManager, G4VEmProcess::CurrentMaterialCutsCoupleIndex(), G4VEmProcess::DefineMaterial(), G4eplusAnnihilation::fEntanglementModelID, G4VEmProcess::fluoID, G4VEmProcess::fParticleChange, G4Track::GetDefinition(), G4Track::GetDynamicParticle(), G4VEmProcess::GetElectronEnergyCut(), G4VEmProcess::GetGammaEnergyCut(), G4Track::GetGlobalTime(), G4DynamicParticle::GetKineticEnergy(), G4VParticleChange::GetLocalEnergyDeposit(), G4Track::GetMaterialCutsCouple(), G4VParticleChange::GetParentWeight(), G4DynamicParticle::GetParticleDefinition(), G4Track::GetPosition(), G4Step::GetPostStepPoint(), G4StepPoint::GetSafety(), G4Track::GetTouchableHandle(), G4EmBiasingManager::GetWeight(), G4ParticleChangeForGamma::InitializeForPostStep(), G4EmParameters::Instance(), G4VEmProcess::mainSecondaries, G4VEmProcess::MaterialCutsCouple(), G4VProcess::pParticleChange, G4VParticleChange::ProposeLocalEnergyDeposit(), G4EmParameters::QuantumEntanglement(), G4VEmModel::SampleSecondaries(), G4VEmProcess::secID, G4EmBiasingManager::SecondaryBiasingRegion(), G4VEmProcess::secParticles, G4VEmProcess::SelectModel(), G4Track::SetAuxiliaryTrackInformation(), G4Track::SetCreatorModelID(), G4VParticleChange::SetNumberOfSecondaries(), G4Track::SetTouchableHandle(), G4Track::SetWeight(), G4eplusAnnihilation::theElectron, and G4eplusAnnihilation::theGamma.

◆ AtRestGetPhysicalInteractionLength()

G4double G4eplusAnnihilation::AtRestGetPhysicalInteractionLength ( const G4Track track,
G4ForceCondition condition 
)
overridevirtualinherited

Reimplemented from G4VDiscreteProcess.

Definition at line 97 of file G4eplusAnnihilation.cc.

99{
101 return 0.0;
102}
G4double condition(const G4ErrorSymMatrix &m)
@ NotForced

References condition(), and NotForced.

◆ AtRestGPIL()

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

Definition at line 472 of file G4VProcess.hh.

474{
476}
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().

◆ BuildAsymmetryTables()

void G4PolarizedAnnihilation::BuildAsymmetryTables ( const G4ParticleDefinition part)
private

Definition at line 236 of file G4PolarizedAnnihilation.cc.

238{
239 // cleanup old, initialise new table
240 CleanTables();
244 if(nullptr == fAsymmetryTable) return;
245
246 // Access to materials
247 const G4ProductionCutsTable* theCoupleTable =
249 size_t numOfCouples = theCoupleTable->GetTableSize();
250 for(size_t i = 0; i < numOfCouples; ++i)
251 {
253 {
254 // create physics vector and fill it
255 const G4MaterialCutsCouple* couple =
256 theCoupleTable->GetMaterialCutsCouple(i);
257
258 // use same parameters as for lambda
259 G4PhysicsVector* aVector = LambdaPhysicsVector(couple);
260 G4PhysicsVector* tVector = LambdaPhysicsVector(couple);
261 G4int nn = aVector->GetVectorLength();
262 for(G4int j = 0; j < nn; ++j)
263 {
264 G4double energy = aVector->Energy(j);
265 G4double tasm = 0.;
266 G4double asym = ComputeAsymmetry(energy, couple, part, 0., tasm);
267 aVector->PutValue(j, asym);
268 tVector->PutValue(j, tasm);
269 }
270 if(aVector->GetSpline()) {
271 aVector->FillSecondDerivatives();
272 tVector->FillSecondDerivatives();
273 }
276 tVector);
277 }
278 }
279}
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
std::size_t GetVectorLength() const
void FillSecondDerivatives(const G4SplineType=G4SplineType::Base, const G4double dir1=0.0, const G4double dir2=0.0)
G4bool GetSpline() const
G4double ComputeAsymmetry(G4double energy, const G4MaterialCutsCouple *couple, const G4ParticleDefinition &particle, G4double cut, G4double &tasm)
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
std::size_t GetTableSize() const
static G4ProductionCutsTable * GetProductionCutsTable()
G4PhysicsVector * LambdaPhysicsVector(const G4MaterialCutsCouple *)
G4double energy(const ThreeVector &p, const G4double m)

References CleanTables(), ComputeAsymmetry(), G4PhysicsVector::Energy(), G4INCL::KinematicsUtils::energy(), fAsymmetryTable, G4PhysicsVector::FillSecondDerivatives(), fTransverseAsymmetryTable, G4PhysicsTable::GetFlag(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4ProductionCutsTable::GetProductionCutsTable(), G4PhysicsVector::GetSpline(), G4ProductionCutsTable::GetTableSize(), G4PhysicsVector::GetVectorLength(), G4VEmProcess::LambdaPhysicsVector(), G4InuclParticleNames::nn, G4PhysicsTableHelper::PreparePhysicsTable(), G4PhysicsVector::PutValue(), and G4PhysicsTableHelper::SetPhysicsVector().

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}
static const G4double emax
@ fIsCrossSectionPrim
G4double G4Log(G4double x)
Definition: G4Log.hh:226
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 G4PolarizedAnnihilation::BuildPhysicsTable ( const G4ParticleDefinition part)
overridevirtual

Reimplemented from G4VProcess.

Definition at line 225 of file G4PolarizedAnnihilation.cc.

227{
229 if(isTheMaster)
230 {
232 }
233}
void BuildAsymmetryTables(const G4ParticleDefinition &part)
void BuildPhysicsTable(const G4ParticleDefinition &) override
G4bool isTheMaster

References BuildAsymmetryTables(), G4VEmProcess::BuildPhysicsTable(), and G4VEmProcess::isTheMaster.

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

◆ CleanTables()

void G4PolarizedAnnihilation::CleanTables ( )
private

◆ 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 G4PolarizedAnnihilation::ComputeAsymmetry ( G4double  energy,
const G4MaterialCutsCouple couple,
const G4ParticleDefinition particle,
G4double  cut,
G4double tasm 
)
private

Definition at line 282 of file G4PolarizedAnnihilation.cc.

285{
286 G4double lAsymmetry = 0.0;
287 tAsymmetry = 0.0;
288
289 // calculate polarized cross section
290 G4ThreeVector targetPolarization = G4ThreeVector(0., 0., 1.);
291 fEmModel->SetTargetPolarization(targetPolarization);
292 fEmModel->SetBeamPolarization(targetPolarization);
293 G4double sigma2 =
294 fEmModel->CrossSection(couple, &aParticle, energy, cut, energy);
295
296 // calculate transversely polarized cross section
297 targetPolarization = G4ThreeVector(1., 0., 0.);
298 fEmModel->SetTargetPolarization(targetPolarization);
299 fEmModel->SetBeamPolarization(targetPolarization);
300 G4double sigma3 =
301 fEmModel->CrossSection(couple, &aParticle, energy, cut, energy);
302
303 // calculate unpolarized cross section
304 targetPolarization = G4ThreeVector();
305 fEmModel->SetTargetPolarization(targetPolarization);
306 fEmModel->SetBeamPolarization(targetPolarization);
307 G4double sigma0 =
308 fEmModel->CrossSection(couple, &aParticle, energy, cut, energy);
309
310 // determine asymmetries
311 if(sigma0 > 0.)
312 {
313 lAsymmetry = sigma2 / sigma0 - 1.;
314 tAsymmetry = sigma3 / sigma0 - 1.;
315 }
316 return lAsymmetry;
317}
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, G4PolarizedAnnihilationModel::SetBeamPolarization(), and G4PolarizedAnnihilationModel::SetTargetPolarization().

Referenced by BuildAsymmetryTables().

◆ 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 * 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 G4PolarizedAnnihilation::ComputeSaturationFactor ( const G4Track aTrack)
private

Definition at line 139 of file G4PolarizedAnnihilation.cc.

140{
141 G4Material* aMaterial = track.GetMaterial();
142 G4VPhysicalVolume* aPVolume = track.GetVolume();
143 G4LogicalVolume* aLVolume = aPVolume->GetLogicalVolume();
144
145 G4PolarizationManager* polarizationManager =
147
148 const G4bool volumeIsPolarized = polarizationManager->IsPolarized(aLVolume);
149 G4StokesVector electronPolarization =
150 polarizationManager->GetVolumePolarization(aLVolume);
151
152 G4double factor = 1.0;
153
154 if(volumeIsPolarized)
155 {
156 // *** get asymmetry, if target is polarized ***
157 const G4DynamicParticle* aDynamicPositron = track.GetDynamicParticle();
158 const G4double positronEnergy = aDynamicPositron->GetKineticEnergy();
159 const G4StokesVector positronPolarization =
160 G4StokesVector(track.GetPolarization());
161 const G4ParticleMomentum positronDirection0 =
162 aDynamicPositron->GetMomentumDirection();
163
164 if(verboseLevel >= 2)
165 {
166 G4cout << "G4PolarizedAnnihilation::ComputeSaturationFactor: " << G4endl;
167 G4cout << " Mom " << positronDirection0 << G4endl;
168 G4cout << " Polarization " << positronPolarization << G4endl;
169 G4cout << " MaterialPol. " << electronPolarization << G4endl;
170 G4cout << " Phys. Volume " << aPVolume->GetName() << G4endl;
171 G4cout << " Log. Volume " << aLVolume->GetName() << G4endl;
172 G4cout << " Material " << aMaterial << G4endl;
173 }
174
175 size_t midx = CurrentMaterialCutsCoupleIndex();
176 const G4PhysicsVector* aVector = nullptr;
177 const G4PhysicsVector* bVector = nullptr;
178 if(midx < fAsymmetryTable->size())
179 {
180 aVector = (*fAsymmetryTable)(midx);
181 }
182 if(midx < fTransverseAsymmetryTable->size())
183 {
184 bVector = (*fTransverseAsymmetryTable)(midx);
185 }
186 if(aVector && bVector)
187 {
188 G4double lAsymmetry = aVector->Value(positronEnergy);
189 G4double tAsymmetry = bVector->Value(positronEnergy);
190 G4double polZZ =
191 positronPolarization.z() * (electronPolarization * positronDirection0);
192 G4double polXX =
193 positronPolarization.x() *
194 (electronPolarization *
195 G4PolarizationHelper::GetParticleFrameX(positronDirection0));
196 G4double polYY =
197 positronPolarization.y() *
198 (electronPolarization *
199 G4PolarizationHelper::GetParticleFrameY(positronDirection0));
200
201 factor /= (1. + polZZ * lAsymmetry + (polXX + polYY) * tAsymmetry);
202
203 if(verboseLevel >= 2)
204 {
205 G4cout << " Asymmetry: " << lAsymmetry << ", " << tAsymmetry
206 << G4endl;
207 G4cout << " PolProduct: " << polXX << ", " << polYY << ", " << polZZ
208 << G4endl;
209 G4cout << " Factor: " << factor << G4endl;
210 }
211 }
212 else
213 {
215 ed << "Problem with asymmetry tables: material index " << midx
216 << " is out of range or tables are not filled";
217 G4Exception("G4PolarizedAnnihilation::ComputeSaturationFactor", "em0048",
218 JustWarning, ed, "");
219 }
220 }
221 return factor;
222}
@ 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
double z() const
double x() const
double y() const
const G4ThreeVector & GetMomentumDirection() const
const G4String & GetName() const
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
Definition: G4Material.cc:686
G4double Value(const G4double energy, std::size_t &lastidx) const
static G4ThreeVector GetParticleFrameY(const G4ThreeVector &)
static G4ThreeVector GetParticleFrameX(const G4ThreeVector &)
bool IsPolarized(G4LogicalVolume *lVol) const
const G4StokesVector GetVolumePolarization(G4LogicalVolume *lVol) const
static G4PolarizationManager * GetInstance()
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(), G4PolarizationHelper::GetParticleFrameX(), G4PolarizationHelper::GetParticleFrameY(), G4Track::GetPolarization(), G4Track::GetVolume(), G4PolarizationManager::GetVolumePolarization(), G4PolarizationManager::IsPolarized(), JustWarning, G4PhysicsVector::Value(), G4VProcess::verboseLevel, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

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 G4PolarizedAnnihilation::DumpInfo ( ) const
inlineoverridevirtual

Reimplemented from G4VProcess.

Definition at line 55 of file G4PolarizedAnnihilation.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(), G4PolarizedCompton::InitialiseProcess(), G4PolarizedGammaConversion::InitialiseProcess(), G4PolarizedPhotoElectric::InitialiseProcess(), G4ComptonScattering::InitialiseProcess(), G4CoulombScattering::InitialiseProcess(), G4eplusAnnihilation::InitialiseProcess(), G4GammaConversion::InitialiseProcess(), G4PhotoElectricEffect::InitialiseProcess(), G4DNAAttachment::PrintInfo(), G4DNAChargeDecrease::PrintInfo(), G4DNAChargeIncrease::PrintInfo(), G4DNADissociation::PrintInfo(), G4DNAElastic::PrintInfo(), G4DNAExcitation::PrintInfo(), G4DNAIonisation::PrintInfo(), G4DNAPlasmonExcitation::PrintInfo(), G4DNAPositronium::PrintInfo(), G4DNARotExcitation::PrintInfo(), and G4DNAVibExcitation::PrintInfo().

◆ EndTracking()

void G4VProcess::EndTracking ( )
virtualinherited

◆ EnergyOfCrossSectionMax()

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

Definition at line 671 of file G4VEmProcess.hh.

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

References G4VEmProcess::theEnergyOfCrossSectionMax.

Referenced by G4VEmProcess::BuildPhysicsTable().

◆ FindLambdaMax()

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

Definition at line 1021 of file G4VEmProcess.cc.

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

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

Referenced by G4VEmProcess::BuildPhysicsTable().

◆ GetCurrentElement()

const G4Element * G4VEmProcess::GetCurrentElement ( ) const
inherited

Definition at line 1104 of file G4VEmProcess.cc.

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

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

◆ GetCurrentInteractionLength()

G4double G4VProcess::GetCurrentInteractionLength ( ) const
inlineinherited

◆ GetCurrentLambda() [1/2]

G4double G4VEmProcess::GetCurrentLambda ( G4double  kinEnergy)
inlineprivateinherited

◆ GetCurrentLambda() [2/2]

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

◆ GetCurrentModel()

const G4VEmModel * G4VEmProcess::GetCurrentModel ( ) const
inlineinherited

Definition at line 784 of file G4VEmProcess.hh.

785{
786 return currentModel;
787}

References G4VEmProcess::currentModel.

◆ GetElectronEnergyCut()

G4double G4VEmProcess::GetElectronEnergyCut ( )
inlineprotectedinherited

Definition at line 487 of file G4VEmProcess.hh.

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

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

Referenced by G4eplusAnnihilation::AtRestDoIt().

◆ GetEmProcess()

G4VEmProcess * 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 G4PolarizedAnnihilation::GetMeanFreePath ( const G4Track track,
G4double  previousStepSize,
G4ForceCondition condition 
)
overridevirtual

Implements G4VDiscreteProcess.

Definition at line 81 of file G4PolarizedAnnihilation.cc.

84{
85 G4double mfp =
86 G4VEmProcess::GetMeanFreePath(track, previousStepSize, condition);
87
88 if(nullptr != fAsymmetryTable && nullptr != fTransverseAsymmetryTable && mfp < DBL_MAX)
89 {
90 mfp *= ComputeSaturationFactor(track);
91 }
92 if(verboseLevel >= 2)
93 {
94 G4cout << "G4PolarizedAnnihilation::MeanFreePath: " << mfp / mm << " mm "
95 << G4endl;
96 }
97 return mfp;
98}
G4double ComputeSaturationFactor(const G4Track &aTrack)
G4double GetMeanFreePath(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) override

References ComputeSaturationFactor(), condition(), DBL_MAX, fAsymmetryTable, fTransverseAsymmetryTable, G4cout, G4endl, G4VEmProcess::GetMeanFreePath(), mm, 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}

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 G4eplusAnnihilation::InitialiseProcess ( const G4ParticleDefinition )
overrideprotectedvirtualinherited

Implements G4VEmProcess.

Definition at line 106 of file G4eplusAnnihilation.cc.

107{
108 if(!isInitialised) {
109 isInitialised = true;
110 if(nullptr == EmModel(0)) { SetEmModel(new G4eeToTwoGammaModel()); }
113 AddEmModel(1, EmModel(0));
114 }
115}
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)
G4double MaxKinEnergy() const
G4double MinKinEnergy() const

References G4VEmProcess::AddEmModel(), G4VEmProcess::EmModel(), G4eplusAnnihilation::isInitialised, G4VEmProcess::MaxKinEnergy(), G4VEmProcess::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 G4eplusAnnihilation::IsApplicable ( const G4ParticleDefinition p)
finalvirtualinherited

Implements G4VEmProcess.

Definition at line 90 of file G4eplusAnnihilation.cc.

91{
92 return (&p == G4Positron::Positron());
93}
static G4Positron * Positron()
Definition: G4Positron.cc:93

References G4Positron::Positron().

◆ isAtRestDoItIsEnabled()

G4bool G4VProcess::isAtRestDoItIsEnabled ( ) const
inlineinherited

Definition at line 500 of file G4VProcess.hh.

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

References G4VProcess::enableAtRestDoIt.

Referenced by G4ProcessManager::CheckOrderingParameters().

◆ isPostStepDoItIsEnabled()

G4bool G4VProcess::isPostStepDoItIsEnabled ( ) const
inlineinherited

Definition at line 512 of file G4VProcess.hh.

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

References G4VProcess::enablePostStepDoIt.

Referenced by G4ProcessManager::CheckOrderingParameters().

◆ LambdaBinning()

G4int G4VEmProcess::LambdaBinning ( ) const
inlineprotectedinherited

Definition at line 629 of file G4VEmProcess.hh.

630{
631 return nLambdaBins;
632}

References G4VEmProcess::nLambdaBins.

Referenced by G4PolarizedCompton::BuildAsymmetryTable().

◆ LambdaPhysicsVector()

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

◆ LambdaTable()

G4PhysicsTable * G4VEmProcess::LambdaTable ( ) const
inlineinherited

Definition at line 657 of file G4VEmProcess.hh.

658{
659 return theLambdaTable;
660}

References G4VEmProcess::theLambdaTable.

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

◆ LambdaTablePrim()

G4PhysicsTable * G4VEmProcess::LambdaTablePrim ( ) const
inlineinherited

Definition at line 664 of file G4VEmProcess.hh.

665{
666 return theLambdaTablePrim;
667}

References G4VEmProcess::theLambdaTablePrim.

Referenced by G4VEmProcess::BuildPhysicsTable().

◆ MaterialCutsCouple()

const G4MaterialCutsCouple * G4VEmProcess::MaterialCutsCouple ( ) const
inlineprotectedinherited

Definition at line 473 of file G4VEmProcess.hh.

474{
475 return currentCouple;
476}

References G4VEmProcess::currentCouple.

Referenced by G4eplusAnnihilation::AtRestDoIt().

◆ MaxKinEnergy()

G4double G4VEmProcess::MaxKinEnergy ( ) const
inlineprotectedinherited

◆ MeanFreePath()

G4double G4VEmProcess::MeanFreePath ( const G4Track track)
inherited

◆ MinKinEnergy()

G4double G4VEmProcess::MinKinEnergy ( ) const
inlineprotectedinherited

◆ MinPrimaryEnergy()

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

Reimplemented in G4CoulombScattering, and G4GammaConversion.

Definition at line 138 of file G4VEmProcess.cc.

140{
141 return 0.0;
142}

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

◆ NumberOfModels()

G4int G4VEmProcess::NumberOfModels ( ) const
inlineinherited

Definition at line 798 of file G4VEmProcess.hh.

799{
800 return numberOfModels;
801}
G4int numberOfModels

References G4VEmProcess::numberOfModels.

◆ operator!=()

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

Definition at line 161 of file G4VProcess.cc.

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

◆ operator=()

G4PolarizedAnnihilation & G4PolarizedAnnihilation::operator= ( const G4PolarizedAnnihilation 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}
@ fComptonScattering
@ fAlive
@ fStopAndKill
@ fStopButAlive
#define G4UniformRand()
Definition: Randomize.hh:52
G4bool ForcedInteractionRegion(G4int coupleIdx)
G4ProcessManager * GetProcessManager() const
G4ProcessVector * GetAtRestProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const
std::size_t size() const
G4double GetSafety() const
G4StepPoint * GetPostStepPoint() const
G4TrackStatus GetTrackStatus() const
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
const G4ParticleDefinition * thePositron
const G4ParticleDefinition * theElectron
const G4ParticleDefinition * theGamma
const std::vector< G4double > * theCuts
const std::vector< G4double > * theCutsPositron
void ProposeTrackStatus(G4TrackStatus status)
void ProposeWeight(G4double finalWeight)
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 G4PolarizedAnnihilation::PostStepGetPhysicalInteractionLength ( const G4Track track,
G4double  previousStepSize,
G4ForceCondition condition 
)
overridevirtual

Reimplemented from G4VDiscreteProcess.

Definition at line 101 of file G4PolarizedAnnihilation.cc.

103{
104 // save previous values
107
108 // *** compute unpolarized step limit ***
109 // this changes theNumberOfInteractionLengthLeft and currentInteractionLength
111 track, previousStepSize, condition);
112 G4double x0 = x;
113 G4double satFact = 1.0;
114
115 // *** add corrections on polarisation ***
116 if(nullptr != fAsymmetryTable && nullptr != fTransverseAsymmetryTable && x < DBL_MAX)
117 {
118 satFact = ComputeSaturationFactor(track);
119 G4double curLength = currentInteractionLength * satFact;
120 G4double prvLength = iLength * satFact;
121 if(nLength > 0.0)
122 {
124 std::max(nLength - previousStepSize / prvLength, 0.0);
125 }
126 x = theNumberOfInteractionLengthLeft * curLength;
127 }
128 if(verboseLevel >= 2)
129 {
130 G4cout << "G4PolarizedAnnihilation::PostStepGPIL: " << std::setprecision(8)
131 << x / mm << " mm;" << G4endl
132 << " unpolarized value: "
133 << std::setprecision(8) << x0 / mm << " mm." << G4endl;
134 }
135 return x;
136}
G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition) override

References ComputeSaturationFactor(), condition(), G4VProcess::currentInteractionLength, DBL_MAX, fAsymmetryTable, fTransverseAsymmetryTable, G4cout, G4endl, G4INCL::Math::max(), mm, G4VEmProcess::PostStepGetPhysicalInteractionLength(), 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
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 G4PolarizedAnnihilation::ProcessDescription ( std::ostream &  out) const
overridevirtual

Reimplemented from G4VProcess.

Definition at line 320 of file G4PolarizedAnnihilation.cc.

321{
322 out << "Polarized model for positron annihilation into 2 photons.\n";
323}

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(), G4DNAAttachment::InitialiseProcess(), G4DNAChargeDecrease::InitialiseProcess(), G4DNAChargeIncrease::InitialiseProcess(), G4DNADissociation::InitialiseProcess(), G4DNAElastic::InitialiseProcess(), G4DNAElectronSolvation::InitialiseProcess(), G4DNAExcitation::InitialiseProcess(), G4DNAIonisation::InitialiseProcess(), G4DNAPlasmonExcitation::InitialiseProcess(), G4DNAPositronium::InitialiseProcess(), G4DNARotExcitation::InitialiseProcess(), G4DNAVibExcitation::InitialiseProcess(), G4NuclearStopping::InitialiseProcess(), G4eeToHadrons::InitialiseProcess(), G4JAEAElasticScattering::InitialiseProcess(), G4MicroElecElastic::InitialiseProcess(), G4MicroElecInelastic::InitialiseProcess(), G4MicroElecLOPhononScattering::InitialiseProcess(), G4RayleighScattering::InitialiseProcess(), G4PolarizedCompton::InitialiseProcess(), G4PolarizedGammaConversion::InitialiseProcess(), G4PolarizedPhotoElectric::InitialiseProcess(), G4ComptonScattering::InitialiseProcess(), G4CoulombScattering::InitialiseProcess(), G4eplusAnnihilation::InitialiseProcess(), G4GammaConversion::InitialiseProcess(), G4PhotoElectricEffect::InitialiseProcess(), and G4VEmProcess::PreparePhysicsTable().

◆ SetEnergyOfCrossSectionMax()

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

Definition at line 1082 of file G4VEmProcess.cc.

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

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

Referenced by G4VEmProcess::BuildPhysicsTable().

◆ SetLambdaBinning()

void G4VEmProcess::SetLambdaBinning ( G4int  nbins)
inherited

Definition at line 1174 of file G4VEmProcess.cc.

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

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

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

◆ SetMasterProcess()

void G4VProcess::SetMasterProcess ( G4VProcess masterP)
virtualinherited

◆ SetMaxKinEnergy()

void G4VEmProcess::SetMaxKinEnergy ( G4double  e)
inherited

◆ SetMinKinEnergy()

void G4VEmProcess::SetMinKinEnergy ( G4double  e)
inherited

◆ SetMinKinEnergyPrim()

void G4VEmProcess::SetMinKinEnergyPrim ( G4double  e)
inherited

◆ SetParticle()

void G4VEmProcess::SetParticle ( const G4ParticleDefinition p)
inlineprotectedinherited

◆ SetPILfactor()

void G4VProcess::SetPILfactor ( G4double  value)
inlineinherited

Definition at line 449 of file G4VProcess.hh.

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

References G4VProcess::thePILfactor.

Referenced by export_G4VProcess().

◆ SetProcessManager()

void G4VProcess::SetProcessManager ( const G4ProcessManager procMan)
inlinevirtualinherited

◆ SetProcessSubType()

void G4VProcess::SetProcessSubType ( G4int  value)
inlineinherited

Definition at line 406 of file G4VProcess.hh.

407{
408 theProcessSubType = value;
409}

References G4VProcess::theProcessSubType.

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

◆ SetProcessType()

void G4VProcess::SetProcessType ( G4ProcessType  aType)
inlineinherited

Definition at line 394 of file G4VProcess.hh.

395{
396 theProcessType = aType;
397}

References G4VProcess::theProcessType.

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

◆ SetSecondaryParticle()

void G4VEmProcess::SetSecondaryParticle ( const G4ParticleDefinition p)
inlineprotectedinherited

◆ SetSplineFlag()

void G4VEmProcess::SetSplineFlag ( G4bool  val)
inlineprotectedinherited

◆ SetStartFromNullFlag()

void G4VEmProcess::SetStartFromNullFlag ( G4bool  val)
inlineprotectedinherited

◆ SetVerboseLevel()

void G4VProcess::SetVerboseLevel ( G4int  value)
inlineinherited

◆ StartTracking()

void G4VEmProcess::StartTracking ( G4Track track)
overridevirtualinherited

Reimplemented from G4VProcess.

Definition at line 549 of file G4VEmProcess.cc.

550{
551 // reset parameters for the new track
555
557
558 // forced biasing only for primary particles
559 if(biasManager) {
560 if(0 == track->GetParentID()) {
561 // primary particle
562 biasFlag = true;
564 }
565 }
566}
const G4ParticleDefinition * GetParticleDefinition() const
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)

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

void G4eplusAnnihilation::StreamProcessInfo ( std::ostream &  outFile) const
overrideprotectedvirtualinherited

Reimplemented from G4VEmProcess.

Definition at line 119 of file G4eplusAnnihilation.cc.

120{}

◆ 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

◆ fAsymmetryTable

G4PhysicsTable* G4PolarizedAnnihilation::fAsymmetryTable
private

◆ fEmModel

G4PolarizedAnnihilationModel* G4PolarizedAnnihilation::fEmModel
private

Definition at line 82 of file G4PolarizedAnnihilation.hh.

Referenced by ComputeAsymmetry(), and G4PolarizedAnnihilation().

◆ fEntanglementModelID

G4int G4eplusAnnihilation::fEntanglementModelID
privateinherited

◆ fFactor

G4double G4VEmProcess::fFactor = 1.0
privateinherited

◆ fLambda

G4double G4VEmProcess::fLambda = 0.0
privateinherited

Definition at line 398 of file G4VEmProcess.hh.

Referenced by G4VEmProcess::GetCurrentLambda().

◆ fLambdaEnergy

G4double G4VEmProcess::fLambdaEnergy = 0.0
privateinherited

◆ fluoID

G4int G4VEmProcess::fluoID = _Fluorescence
protectedinherited

Definition at line 419 of file G4VEmProcess.hh.

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

◆ fParticleChange

G4ParticleChangeForGamma G4VEmProcess::fParticleChange
protectedinherited

◆ fProcessTable

G4ProcessTable* G4VProcess::fProcessTable = nullptr
privateinherited

Definition at line 374 of file G4VProcess.hh.

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

◆ fTransverseAsymmetryTable

G4PhysicsTable* G4PolarizedAnnihilation::fTransverseAsymmetryTable
private

◆ fXSType

G4CrossSectionType G4VEmProcess::fXSType = fEmNoIntegral
privateinherited

◆ idxLambda

size_t G4VEmProcess::idxLambda = 0
protectedinherited

◆ isInitialised

G4bool G4eplusAnnihilation::isInitialised = false
privateinherited

Definition at line 99 of file G4eplusAnnihilation.hh.

Referenced by G4eplusAnnihilation::InitialiseProcess().

◆ isIon

G4bool G4VEmProcess::isIon = false
privateinherited

◆ isTheMaster

G4bool G4VEmProcess::isTheMaster = true
protectedinherited

◆ lambdaFactor

G4double G4VEmProcess::lambdaFactor = 0.8
privateinherited

◆ lManager

G4LossTableManager* G4VEmProcess::lManager = nullptr
privateinherited

◆ logLambdaFactor

G4double G4VEmProcess::logLambdaFactor
privateinherited

◆ mainSecondaries

G4int G4VEmProcess::mainSecondaries = 1
protectedinherited

◆ massRatio

G4double G4VEmProcess::massRatio = 1.0
privateinherited

◆ masterProc

const G4VEmProcess* G4VEmProcess::masterProc = nullptr
privateinherited

◆ masterProcessShadow

G4VProcess* G4VProcess::masterProcessShadow = nullptr
privateinherited

Definition at line 370 of file G4VProcess.hh.

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

◆ maxKinEnergy

G4double G4VEmProcess::maxKinEnergy
privateinherited

◆ mfpKinEnergy

G4double G4VEmProcess::mfpKinEnergy = DBL_MAX
protectedinherited

◆ minKinEnergy

G4double G4VEmProcess::minKinEnergy
privateinherited

◆ minKinEnergyPrim

G4double G4VEmProcess::minKinEnergyPrim = DBL_MAX
privateinherited

◆ modelManager

G4EmModelManager* G4VEmProcess::modelManager = nullptr
privateinherited

◆ nLambdaBins

G4int G4VEmProcess::nLambdaBins = 84
privateinherited

◆ numberOfModels

G4int G4VEmProcess::numberOfModels = 0
privateinherited

◆ particle

const G4ParticleDefinition* G4VEmProcess::particle = nullptr
privateinherited

◆ pParticleChange

G4VParticleChange* G4VProcess::pParticleChange = nullptr
protectedinherited

Definition at line 321 of file G4VProcess.hh.

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

◆ preStepKinEnergy

G4double G4VEmProcess::preStepKinEnergy = 0.0
protectedinherited

◆ preStepLambda

G4double G4VEmProcess::preStepLambda = 0.0
protectedinherited

◆ preStepLogKinEnergy

G4double G4VEmProcess::preStepLogKinEnergy = LOG_EKIN_MIN
protectedinherited

Definition at line 405 of file G4VEmProcess.hh.

Referenced by G4VEmProcess::PostStepGetPhysicalInteractionLength().

◆ secID

G4int G4VEmProcess::secID = _EM
protectedinherited

◆ secondaryParticle

const G4ParticleDefinition* G4VEmProcess::secondaryParticle = nullptr
privateinherited

◆ secParticles

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

◆ splineFlag

G4bool G4VEmProcess::splineFlag = true
privateinherited

◆ startFromNull

G4bool G4VEmProcess::startFromNull = false
privateinherited

◆ theCuts

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

◆ theCutsElectron

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

◆ theCutsGamma

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

◆ theCutsPositron

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

◆ theData

G4EmDataHandler* G4VEmProcess::theData = nullptr
privateinherited

◆ theDensityFactor

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

Definition at line 386 of file G4VEmProcess.hh.

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

◆ theDensityIdx

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

Definition at line 387 of file G4VEmProcess.hh.

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

◆ theElectron

const G4ParticleDefinition* G4eplusAnnihilation::theElectron
privateinherited

◆ theEnergyOfCrossSectionMax

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

◆ theGamma

const G4ParticleDefinition* G4eplusAnnihilation::theGamma
privateinherited

◆ 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(), PostStepGetPhysicalInteractionLength(), G4PolarizedCompton::PostStepGetPhysicalInteractionLength(), G4PolarizedIonisation::PostStepGetPhysicalInteractionLength(), G4VEmProcess::PostStepGetPhysicalInteractionLength(), G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength(), G4VProcess::ResetNumberOfInteractionLengthLeft(), G4VProcess::StartTracking(), G4GammaGeneralProcess::StartTracking(), G4VEmProcess::StartTracking(), G4VEnergyLossProcess::StartTracking(), and G4VProcess::SubtractNumberOfInteractionLengthLeft().

◆ theParameters

G4EmParameters* G4VEmProcess::theParameters = nullptr
privateinherited

◆ thePhysicsTableFileName

G4String G4VProcess::thePhysicsTableFileName
protectedinherited

Definition at line 344 of file G4VProcess.hh.

Referenced by G4VProcess::GetPhysicsTableFileName().

◆ thePILfactor

G4double G4VProcess::thePILfactor = 1.0
protectedinherited

◆ thePositron

const G4ParticleDefinition* G4VEmProcess::thePositron = nullptr
privateinherited

Definition at line 357 of file G4VEmProcess.hh.

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

◆ theProcessName

G4String G4VProcess::theProcessName
protectedinherited

◆ theProcessSubType

G4int G4VProcess::theProcessSubType = -1
protectedinherited

◆ theProcessType

G4ProcessType G4VProcess::theProcessType = fNotDefined
protectedinherited

◆ tripletID

G4int G4VEmProcess::tripletID = _TripletElectron
protectedinherited

◆ verboseLevel

G4int G4VProcess::verboseLevel = 0
protectedinherited

Definition at line 356 of file G4VProcess.hh.

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

◆ weightFlag

G4bool G4VEmProcess::weightFlag = false
privateinherited

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