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

#include <G4ForwardXrayTR.hh>

Inheritance diagram for G4ForwardXrayTR:
G4TransitionRadiation G4VDiscreteProcess G4VProcess

Public Member Functions

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)
 
G4double AngleDensity (G4double energy, G4double varAngle) const
 
G4double AngleIntegralDistribution (G4double varAngle1, G4double varAngle2) const
 
G4double AngleInterval (G4double energy, G4double varAngle1, G4double varAngle2) const
 
G4double AngleSum (G4double varAngle1, G4double varAngle2) const
 
virtual G4VParticleChangeAtRestDoIt (const G4Track &, const G4Step &)
 
virtual G4double AtRestGetPhysicalInteractionLength (const G4Track &, G4ForceCondition *)
 
G4double AtRestGPIL (const G4Track &track, G4ForceCondition *condition)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual void BuildWorkerPhysicsTable (const G4ParticleDefinition &part)
 
void BuildXrayTRtables ()
 
void DumpInfo () const override
 
virtual void EndTracking ()
 
G4double EnergyIntegralDistribution (G4double energy1, G4double energy2) const
 
G4double EnergyInterval (G4double energy1, G4double energy2, G4double varAngle) const
 
G4double EnergySum (G4double energy1, G4double energy2) const
 
 G4ForwardXrayTR (const G4ForwardXrayTR &right)=delete
 
 G4ForwardXrayTR (const G4String &matName1, const G4String &matName2, const G4String &processName="XrayTR")
 
 G4ForwardXrayTR (const G4String &processName="XrayTR")
 
G4PhysicsTableGetAngleDistrTable ()
 
G4double GetCurrentInteractionLength () const
 
G4PhysicsTableGetEnergyDistrTable ()
 
G4double GetEnergyTR (G4int iMat, G4int jMat, G4int iTkin) const
 
const G4VProcessGetMasterProcess () const
 
G4double GetMeanFreePath (const G4Track &, G4double, G4ForceCondition *condition) override
 
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 GetThetaTR (G4int iMat, G4int jMat, G4int iTkin) const
 
G4double GetTotalNumberOfInteractionLengthTraversed () const
 
G4int GetVerboseLevel () const
 
G4double IntegralOverAngle (G4double energy, G4double varAngle1, G4double varAngle2) const
 
G4double IntegralOverEnergy (G4double energy1, G4double energy2, G4double varAngle) const
 
G4bool isAlongStepDoItIsEnabled () const
 
G4bool IsApplicable (const G4ParticleDefinition &aParticleType) override
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool isPostStepDoItIsEnabled () const
 
G4bool operator!= (const G4VProcess &right) const
 
G4ForwardXrayTRoperator= (const G4ForwardXrayTR &right)=delete
 
G4bool operator== (const G4VProcess &right) const
 
G4VParticleChangePostStepDoIt (const G4Track &aTrack, const G4Step &aStep) override
 
virtual G4double PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
G4double PostStepGPIL (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
virtual void PreparePhysicsTable (const G4ParticleDefinition &)
 
virtual void PrepareWorkerPhysicsTable (const G4ParticleDefinition &)
 
void ProcessDescription (std::ostream &) const override
 
virtual void ResetNumberOfInteractionLengthLeft ()
 
virtual G4bool RetrievePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool)
 
virtual void SetMasterProcess (G4VProcess *masterP)
 
void SetPILfactor (G4double value)
 
virtual void SetProcessManager (const G4ProcessManager *)
 
void SetProcessSubType (G4int)
 
void SetProcessType (G4ProcessType)
 
void SetVerboseLevel (G4int value)
 
G4double SpectralAngleTRdensity (G4double energy, G4double varAngle) const override
 
G4double SpectralDensity (G4double energy, G4double x) const
 
virtual void StartTracking (G4Track *)
 
virtual G4bool StorePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool)
 
 ~G4ForwardXrayTR ()
 

Static Public Member Functions

static G4int GetBinTR ()
 
static G4double GetMaxProtonTkin ()
 
static G4double GetMinProtonTkin ()
 
static const G4StringGetProcessTypeName (G4ProcessType)
 
static G4int GetSympsonNumber ()
 
static G4int GetTotBin ()
 

Protected Member Functions

void ClearNumberOfInteractionLengthLeft ()
 
void SubtractNumberOfInteractionLengthLeft (G4double prevStepSize)
 

Protected Attributes

G4ParticleChange aParticleChange
 
const G4ProcessManageraProcessManager = nullptr
 
G4double currentInteractionLength = -1.0
 
G4bool enableAlongStepDoIt = true
 
G4bool enableAtRestDoIt = true
 
G4bool enablePostStepDoIt = true
 
G4PhysicsTablefAngleDistrTable
 
G4double fEnergy
 
G4PhysicsTablefEnergyDistrTable
 
G4double fGamma
 
const std::vector< G4double > * fGammaCutInKineticEnergy
 
G4double fGammaTkinCut
 
G4int fMatIndex1
 
G4int fMatIndex2
 
G4double fMaxEnergy
 
G4double fMaxEnergyTR
 
G4double fMaxTheta
 
G4double fMaxThetaTR
 
G4double fMinEnergy
 
G4double fMinEnergyTR
 
G4PhysicsLogVectorfProtonEnergyVector
 
G4ParticleDefinitionfPtrGamma
 
G4double fSigma1
 
G4double fSigma2
 
G4double fVarAngle
 
G4VParticleChangepParticleChange = nullptr
 
G4int secID = -1
 
G4double theInitialNumberOfInteractionLength = -1.0
 
G4double theNumberOfInteractionLengthLeft = -1.0
 
G4String thePhysicsTableFileName
 
G4double thePILfactor = 1.0
 
G4String theProcessName
 
G4int theProcessSubType = -1
 
G4ProcessType theProcessType = fNotDefined
 
G4int verboseLevel = 0
 

Static Protected Attributes

static constexpr G4int fBinTR = 50
 
static constexpr G4double fCofTR = CLHEP::fine_structure_const / CLHEP::pi
 
static constexpr G4int fGammaNumber = 15
 
static constexpr G4double fMaxProtonTkin
 
static constexpr G4double fMinProtonTkin
 
static constexpr G4double fPlasmaCof
 
static constexpr G4int fPointNumber = 100
 
static constexpr G4int fSympsonNumber
 
static constexpr G4double fTheMaxAngle = 1.0e-3
 
static constexpr G4double fTheMaxEnergyTR
 
static constexpr G4double fTheMinAngle = 5.0e-6
 
static constexpr G4double fTheMinEnergyTR
 
static constexpr G4int fTotBin = 50
 

Private Attributes

G4ProcessTablefProcessTable = nullptr
 
G4VProcessmasterProcessShadow = nullptr
 

Detailed Description

Definition at line 52 of file G4ForwardXrayTR.hh.

Constructor & Destructor Documentation

◆ G4ForwardXrayTR() [1/3]

G4ForwardXrayTR::G4ForwardXrayTR ( const G4String matName1,
const G4String matName2,
const G4String processName = "XrayTR" 
)
explicit

Definition at line 57 of file G4ForwardXrayTR.cc.

60 : G4TransitionRadiation(processName)
61{
63 fPtrGamma = nullptr;
66 fGamma = fSigma1 = fSigma2 = 0.0;
67 fAngleDistrTable = nullptr;
68 fEnergyDistrTable = nullptr;
70
71 // Proton energy vector initialization
74 G4int iMat;
75 const G4ProductionCutsTable* theCoupleTable =
77 G4int numOfCouples = theCoupleTable->GetTableSize();
78
79 G4bool build = true;
80
81 for(iMat = 0; iMat < numOfCouples; ++iMat) // check first material name
82 {
83 const G4MaterialCutsCouple* couple =
84 theCoupleTable->GetMaterialCutsCouple(iMat);
85 if(matName1 == couple->GetMaterial()->GetName())
86 {
87 fMatIndex1 = couple->GetIndex();
88 break;
89 }
90 }
91 if(iMat == numOfCouples)
92 {
93 G4Exception("G4ForwardXrayTR::G4ForwardXrayTR", "ForwardXrayTR01",
95 "Invalid first material name in G4ForwardXrayTR constructor!");
96 build = false;
97 }
98
99 if(build)
100 {
101 for(iMat = 0; iMat < numOfCouples; ++iMat) // check second material name
102 {
103 const G4MaterialCutsCouple* couple =
104 theCoupleTable->GetMaterialCutsCouple(iMat);
105 if(matName2 == couple->GetMaterial()->GetName())
106 {
107 fMatIndex2 = couple->GetIndex();
108 break;
109 }
110 }
111 if(iMat == numOfCouples)
112 {
114 "G4ForwardXrayTR::G4ForwardXrayTR", "ForwardXrayTR02", JustWarning,
115 "Invalid second material name in G4ForwardXrayTR constructor!");
116 build = false;
117 }
118 }
119 if(build)
120 {
122 }
123}
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
static constexpr G4int fTotBin
const std::vector< G4double > * fGammaCutInKineticEnergy
G4PhysicsTable * fEnergyDistrTable
G4PhysicsTable * fAngleDistrTable
static constexpr G4double fMaxProtonTkin
static constexpr G4double fMinProtonTkin
G4PhysicsLogVector * fProtonEnergyVector
G4ParticleDefinition * fPtrGamma
const G4Material * GetMaterial() const
const G4String & GetName() const
Definition: G4Material.hh:173
static G4int GetModelID(const G4int modelIndex)
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
std::size_t GetTableSize() const
static G4ProductionCutsTable * GetProductionCutsTable()
G4TransitionRadiation(const G4String &processName="TR", G4ProcessType type=fElectromagnetic)

References BuildXrayTRtables(), fAngleDistrTable, fEnergyDistrTable, fGamma, fGammaCutInKineticEnergy, fGammaTkinCut, G4TransitionRadiation::fMatIndex1, G4TransitionRadiation::fMatIndex2, fMaxEnergyTR, fMaxProtonTkin, fMaxThetaTR, fMinEnergyTR, fMinProtonTkin, fProtonEnergyVector, fPtrGamma, fSigma1, fSigma2, fTotBin, G4Exception(), G4MaterialCutsCouple::GetIndex(), G4MaterialCutsCouple::GetMaterial(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4PhysicsModelCatalog::GetModelID(), G4Material::GetName(), G4ProductionCutsTable::GetProductionCutsTable(), G4ProductionCutsTable::GetTableSize(), JustWarning, and secID.

◆ G4ForwardXrayTR() [2/3]

G4ForwardXrayTR::G4ForwardXrayTR ( const G4String processName = "XrayTR")
explicit

◆ ~G4ForwardXrayTR()

G4ForwardXrayTR::~G4ForwardXrayTR ( )

Definition at line 145 of file G4ForwardXrayTR.cc.

146{
147 delete fAngleDistrTable;
148 delete fEnergyDistrTable;
149 delete fProtonEnergyVector;
150}

References fAngleDistrTable, fEnergyDistrTable, and fProtonEnergyVector.

◆ G4ForwardXrayTR() [3/3]

G4ForwardXrayTR::G4ForwardXrayTR ( const G4ForwardXrayTR right)
delete

Member Function Documentation

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

◆ AngleDensity()

G4double G4ForwardXrayTR::AngleDensity ( G4double  energy,
G4double  varAngle 
) const

Definition at line 304 of file G4ForwardXrayTR.cc.

305{
306 G4double x, x2, c, d, f, a2, b2, a4, b4;
307 G4double cof1, cof2, cof3;
308 x = 1.0 / energy;
309 x2 = x * x;
310 c = 1.0 / fSigma1;
311 d = 1.0 / fSigma2;
312 f = (varAngle + 1.0 / (fGamma * fGamma));
313 a2 = c * f;
314 b2 = d * f;
315 a4 = a2 * a2;
316 b4 = b2 * b2;
317 cof1 = c * c * (0.5 / (a2 * (x2 + a2)) + 0.5 * std::log(x2 / (x2 + a2)) / a4);
318 cof3 = d * d * (0.5 / (b2 * (x2 + b2)) + 0.5 * std::log(x2 / (x2 + b2)) / b4);
319 cof2 = -c * d *
320 (std::log(x2 / (x2 + b2)) / b2 - std::log(x2 / (x2 + a2)) / a2) /
321 (a2 - b2);
322 return -varAngle * (cof1 + cof2 + cof3);
323}
double G4double
Definition: G4Types.hh:83
G4double energy(const ThreeVector &p, const G4double m)

References G4INCL::KinematicsUtils::energy(), fGamma, fSigma1, and fSigma2.

Referenced by EnergyInterval().

◆ AngleIntegralDistribution()

G4double G4TransitionRadiation::AngleIntegralDistribution ( G4double  varAngle1,
G4double  varAngle2 
) const
inherited

Definition at line 137 of file G4TransitionRadiation.cc.

139{
140 G4int i;
141 G4double h, sumEven = 0.0, sumOdd = 0.0;
142 h = 0.5 * (varAngle2 - varAngle1) / fSympsonNumber;
143 for(i = 1; i < fSympsonNumber; ++i)
144 {
146 fMinEnergy + 0.3 * (fMaxEnergy - fMinEnergy),
147 varAngle1 + 2 * i * h) +
149 fMaxEnergy, varAngle1 + 2 * i * h);
151 fMinEnergy + 0.3 * (fMaxEnergy - fMinEnergy),
152 varAngle1 + (2 * i - 1) * h) +
154 fMaxEnergy, varAngle1 + (2 * i - 1) * h);
155 }
156 sumOdd +=
158 varAngle1 + (2 * fSympsonNumber - 1) * h) +
160 varAngle1 + (2 * fSympsonNumber - 1) * h);
161
162 return h *
164 fMinEnergy + 0.3 * (fMaxEnergy - fMinEnergy),
165 varAngle1) +
167 fMaxEnergy, varAngle1) +
169 fMinEnergy + 0.3 * (fMaxEnergy - fMinEnergy),
170 varAngle2) +
172 fMaxEnergy, varAngle2) +
173 4.0 * sumOdd + 2.0 * sumEven) /
174 3.0;
175}
static constexpr G4int fSympsonNumber
G4double IntegralOverEnergy(G4double energy1, G4double energy2, G4double varAngle) const

References G4TransitionRadiation::fMaxEnergy, G4TransitionRadiation::fMinEnergy, G4TransitionRadiation::fSympsonNumber, and G4TransitionRadiation::IntegralOverEnergy().

◆ AngleInterval()

G4double G4ForwardXrayTR::AngleInterval ( G4double  energy,
G4double  varAngle1,
G4double  varAngle2 
) const

Definition at line 375 of file G4ForwardXrayTR.cc.

377{
378 return SpectralDensity(energy, varAngle2) -
379 SpectralDensity(energy, varAngle1);
380}
G4double SpectralDensity(G4double energy, G4double x) const

References G4INCL::KinematicsUtils::energy(), and SpectralDensity().

Referenced by EnergySum().

◆ AngleSum()

G4double G4ForwardXrayTR::AngleSum ( G4double  varAngle1,
G4double  varAngle2 
) const

Definition at line 337 of file G4ForwardXrayTR.cc.

338{
339 G4int i;
340 G4double h, sumEven = 0.0, sumOdd = 0.0;
341 h = 0.5 * (varAngle2 - varAngle1) / fSympsonNumber;
342 for(i = 1; i < fSympsonNumber; ++i)
343 {
344 sumEven +=
345 EnergyInterval(fMinEnergyTR, fMaxEnergyTR, varAngle1 + 2 * i * h);
346 sumOdd +=
347 EnergyInterval(fMinEnergyTR, fMaxEnergyTR, varAngle1 + (2 * i - 1) * h);
348 }
350 varAngle1 + (2 * fSympsonNumber - 1) * h);
351
352 return h *
354 EnergyInterval(fMinEnergyTR, fMaxEnergyTR, varAngle2) + 4.0 * sumOdd +
355 2.0 * sumEven) /
356 3.0;
357}
G4double EnergyInterval(G4double energy1, G4double energy2, G4double varAngle) const
static constexpr G4int fSympsonNumber

References EnergyInterval(), fMaxEnergyTR, fMinEnergyTR, and fSympsonNumber.

Referenced by BuildXrayTRtables().

◆ AtRestDoIt()

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

Implements G4VProcess.

Reimplemented in G4HadronStoppingProcess, and G4eplusAnnihilation.

Definition at line 85 of file G4VDiscreteProcess.hh.

88 { return 0; }

◆ AtRestGetPhysicalInteractionLength()

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

Implements G4VProcess.

Reimplemented in G4HadronStoppingProcess, and G4eplusAnnihilation.

Definition at line 78 of file G4VDiscreteProcess.hh.

81 { return -1.0; }

◆ AtRestGPIL()

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

Definition at line 472 of file G4VProcess.hh.

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

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

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

◆ BuildPhysicsTable()

virtual void G4VProcess::BuildPhysicsTable ( const G4ParticleDefinition )
inlinevirtualinherited

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

◆ BuildXrayTRtables()

void G4ForwardXrayTR::BuildXrayTRtables ( )

Definition at line 168 of file G4ForwardXrayTR.cc.

169{
170 G4int iMat, jMat, iTkin, iTR, iPlace;
171 const G4ProductionCutsTable* theCoupleTable =
173 G4int numOfCouples = theCoupleTable->GetTableSize();
174
176
179
180 for(iMat = 0; iMat < numOfCouples;
181 ++iMat) // loop over pairs of different materials
182 {
183 if(iMat != fMatIndex1 && iMat != fMatIndex2)
184 continue;
185
186 for(jMat = 0; jMat < numOfCouples; ++jMat) // transition iMat -> jMat !!!
187 {
188 if(iMat == jMat || (jMat != fMatIndex1 && jMat != fMatIndex2))
189 {
190 continue;
191 }
192 else
193 {
194 const G4MaterialCutsCouple* iCouple =
195 theCoupleTable->GetMaterialCutsCouple(iMat);
196 const G4MaterialCutsCouple* jCouple =
197 theCoupleTable->GetMaterialCutsCouple(jMat);
198 const G4Material* mat1 = iCouple->GetMaterial();
199 const G4Material* mat2 = jCouple->GetMaterial();
200
203
204 fGammaTkinCut = 0.0;
205
206 if(fGammaTkinCut > fTheMinEnergyTR) // setting of min/max TR energies
207 {
209 }
210 else
211 {
213 }
215 {
216 fMaxEnergyTR = 2.0 * fGammaTkinCut; // usually very low TR rate
217 }
218 else
219 {
221 }
222 for(iTkin = 0; iTkin < fTotBin; ++iTkin) // Lorentz factor loop
223 {
224 G4PhysicsLogVector* energyVector =
226
229
230 fMaxThetaTR = 10000.0 / (fGamma * fGamma);
231
233 {
235 }
236 else
237 {
239 {
241 }
242 }
243 G4PhysicsLinearVector* angleVector =
245 G4double energySum = 0.0;
246 G4double angleSum = 0.0;
247
248 energyVector->PutValue(fBinTR - 1, energySum);
249 angleVector->PutValue(fBinTR - 1, angleSum);
250
251 for(iTR = fBinTR - 2; iTR >= 0; --iTR)
252 {
253 energySum +=
254 fCofTR * EnergySum(energyVector->GetLowEdgeEnergy(iTR),
255 energyVector->GetLowEdgeEnergy(iTR + 1));
256
257 angleSum +=
258 fCofTR * AngleSum(angleVector->GetLowEdgeEnergy(iTR),
259 angleVector->GetLowEdgeEnergy(iTR + 1));
260
261 energyVector->PutValue(iTR, energySum);
262 angleVector->PutValue(iTR, angleSum);
263 }
264
265 if(jMat < iMat)
266 {
267 iPlace = fTotBin + iTkin;
268 }
269 else // jMat > iMat right part of matrices (jMat-1) !
270 {
271 iPlace = iTkin;
272 }
273 fEnergyDistrTable->insertAt(iPlace, energyVector);
274 fAngleDistrTable->insertAt(iPlace, angleVector);
275 } // iTkin
276 } // jMat != iMat
277 } // jMat
278 } // iMat
279}
@ idxG4GammaCut
static constexpr G4double fPlasmaCof
static constexpr G4double fTheMaxEnergyTR
G4double EnergySum(G4double energy1, G4double energy2) const
static constexpr G4int fBinTR
static constexpr G4double fCofTR
static constexpr G4double fTheMinAngle
static constexpr G4double fTheMinEnergyTR
static constexpr G4double fTheMaxAngle
G4double AngleSum(G4double varAngle1, G4double varAngle2) const
G4double GetElectronDensity() const
Definition: G4Material.hh:213
void insertAt(std::size_t, G4PhysicsVector *)
G4double GetLowEdgeEnergy(const std::size_t index) const
void PutValue(const std::size_t index, const G4double value)
const std::vector< G4double > * GetEnergyCutsVector(std::size_t pcIdx) const
float proton_mass_c2
Definition: hepunit.py:274

References AngleSum(), EnergySum(), fAngleDistrTable, fBinTR, fCofTR, fEnergyDistrTable, fGamma, fGammaCutInKineticEnergy, fGammaTkinCut, G4TransitionRadiation::fMatIndex1, G4TransitionRadiation::fMatIndex2, fMaxEnergyTR, fMaxThetaTR, fMinEnergyTR, fPlasmaCof, fProtonEnergyVector, fSigma1, fSigma2, fTheMaxAngle, fTheMaxEnergyTR, fTheMinAngle, fTheMinEnergyTR, fTotBin, G4Material::GetElectronDensity(), G4ProductionCutsTable::GetEnergyCutsVector(), G4PhysicsVector::GetLowEdgeEnergy(), G4MaterialCutsCouple::GetMaterial(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4ProductionCutsTable::GetProductionCutsTable(), G4ProductionCutsTable::GetTableSize(), idxG4GammaCut, G4PhysicsTable::insertAt(), source.hepunit::proton_mass_c2, and G4PhysicsVector::PutValue().

Referenced by G4ForwardXrayTR().

◆ ClearNumberOfInteractionLengthLeft()

void G4VProcess::ClearNumberOfInteractionLengthLeft ( )
inlineprotectedinherited

◆ DumpInfo()

void G4ForwardXrayTR::DumpInfo ( ) const
inlineoverridevirtual

Reimplemented from G4TransitionRadiation.

Definition at line 68 of file G4ForwardXrayTR.hh.

G4GLOB_DLL std::ostream G4cout
void ProcessDescription(std::ostream &) const override

References G4cout, and ProcessDescription().

◆ EndTracking()

void G4VProcess::EndTracking ( )
virtualinherited

◆ EnergyIntegralDistribution()

G4double G4TransitionRadiation::EnergyIntegralDistribution ( G4double  energy1,
G4double  energy2 
) const
inherited

Definition at line 180 of file G4TransitionRadiation.cc.

182{
183 G4int i;
184 G4double h, sumEven = 0.0, sumOdd = 0.0;
185 h = 0.5 * (energy2 - energy1) / fSympsonNumber;
186 for(i = 1; i < fSympsonNumber; ++i)
187 {
188 sumEven +=
189 IntegralOverAngle(energy1 + 2 * i * h, 0.0, 0.01 * fMaxTheta) +
190 IntegralOverAngle(energy1 + 2 * i * h, 0.01 * fMaxTheta, fMaxTheta);
191 sumOdd +=
192 IntegralOverAngle(energy1 + (2 * i - 1) * h, 0.0, 0.01 * fMaxTheta) +
193 IntegralOverAngle(energy1 + (2 * i - 1) * h, 0.01 * fMaxTheta, fMaxTheta);
194 }
195 sumOdd += IntegralOverAngle(energy1 + (2 * fSympsonNumber - 1) * h, 0.0,
196 0.01 * fMaxTheta) +
197 IntegralOverAngle(energy1 + (2 * fSympsonNumber - 1) * h,
198 0.01 * fMaxTheta, fMaxTheta);
199
200 return h *
201 (IntegralOverAngle(energy1, 0.0, 0.01 * fMaxTheta) +
202 IntegralOverAngle(energy1, 0.01 * fMaxTheta, fMaxTheta) +
203 IntegralOverAngle(energy2, 0.0, 0.01 * fMaxTheta) +
204 IntegralOverAngle(energy2, 0.01 * fMaxTheta, fMaxTheta) +
205 4.0 * sumOdd + 2.0 * sumEven) /
206 3.0;
207}
G4double IntegralOverAngle(G4double energy, G4double varAngle1, G4double varAngle2) const

References G4TransitionRadiation::fMaxTheta, G4TransitionRadiation::fSympsonNumber, and G4TransitionRadiation::IntegralOverAngle().

◆ EnergyInterval()

G4double G4ForwardXrayTR::EnergyInterval ( G4double  energy1,
G4double  energy2,
G4double  varAngle 
) const

Definition at line 328 of file G4ForwardXrayTR.cc.

330{
331 return AngleDensity(energy2, varAngle) - AngleDensity(energy1, varAngle);
332}
G4double AngleDensity(G4double energy, G4double varAngle) const

References AngleDensity().

Referenced by AngleSum().

◆ EnergySum()

G4double G4ForwardXrayTR::EnergySum ( G4double  energy1,
G4double  energy2 
) const

Definition at line 385 of file G4ForwardXrayTR.cc.

386{
387 G4int i;
388 G4double h, sumEven = 0.0, sumOdd = 0.0;
389 h = 0.5 * (energy2 - energy1) / fSympsonNumber;
390 for(i = 1; i < fSympsonNumber; ++i)
391 {
392 sumEven += AngleInterval(energy1 + 2 * i * h, 0.0, fMaxThetaTR);
393 sumOdd += AngleInterval(energy1 + (2 * i - 1) * h, 0.0, fMaxThetaTR);
394 }
395 sumOdd +=
396 AngleInterval(energy1 + (2 * fSympsonNumber - 1) * h, 0.0, fMaxThetaTR);
397
398 return h *
399 (AngleInterval(energy1, 0.0, fMaxThetaTR) +
400 AngleInterval(energy2, 0.0, fMaxThetaTR) + 4.0 * sumOdd +
401 2.0 * sumEven) /
402 3.0;
403}
G4double AngleInterval(G4double energy, G4double varAngle1, G4double varAngle2) const

References AngleInterval(), fMaxThetaTR, and fSympsonNumber.

Referenced by BuildXrayTRtables().

◆ GetAngleDistrTable()

G4PhysicsTable * G4ForwardXrayTR::GetAngleDistrTable ( )

◆ GetBinTR()

G4int G4ForwardXrayTR::GetBinTR ( )
static

Definition at line 747 of file G4ForwardXrayTR.cc.

747{ return fBinTR; }

References fBinTR.

◆ GetCurrentInteractionLength()

G4double G4VProcess::GetCurrentInteractionLength ( ) const
inlineinherited

◆ GetEnergyDistrTable()

G4PhysicsTable * G4ForwardXrayTR::GetEnergyDistrTable ( )

◆ GetEnergyTR()

G4double G4ForwardXrayTR::GetEnergyTR ( G4int  iMat,
G4int  jMat,
G4int  iTkin 
) const

Definition at line 635 of file G4ForwardXrayTR.cc.

636{
637 G4int iPlace, numOfTR, iTR, iTransfer;
638 G4double energyTR = 0.0; // return this value for no TR photons
639 G4double energyPos;
640 G4double W1, W2;
641
642 const G4ProductionCutsTable* theCoupleTable =
644 G4int numOfCouples = theCoupleTable->GetTableSize();
645
646 // The case of equal or approximate (in terms of plasma energy) materials
647 // No TR photons ?!
648
649 const G4MaterialCutsCouple* iCouple =
650 theCoupleTable->GetMaterialCutsCouple(iMat);
651 const G4MaterialCutsCouple* jCouple =
652 theCoupleTable->GetMaterialCutsCouple(jMat);
653 const G4Material* iMaterial = iCouple->GetMaterial();
654 const G4Material* jMaterial = jCouple->GetMaterial();
655
656 if(iMat == jMat
657
658 || iMaterial->GetState() == jMaterial->GetState()
659
660 || (iMaterial->GetState() == kStateSolid &&
661 jMaterial->GetState() == kStateLiquid)
662
663 || (iMaterial->GetState() == kStateLiquid &&
664 jMaterial->GetState() == kStateSolid))
665
666 {
667 return energyTR;
668 }
669
670 if(jMat < iMat)
671 {
672 iPlace = (iMat * (numOfCouples - 1) + jMat) * fTotBin + iTkin - 1;
673 }
674 else
675 {
676 iPlace = (iMat * (numOfCouples - 1) + jMat - 1) * fTotBin + iTkin - 1;
677 }
678 G4PhysicsVector* energyVector1 = (*fEnergyDistrTable)(iPlace);
679 G4PhysicsVector* energyVector2 = (*fEnergyDistrTable)(iPlace + 1);
680
681 if(iTkin == fTotBin) // TR plato, try from left
682 {
683 numOfTR = G4Poisson((*energyVector1)(0));
684 if(numOfTR == 0)
685 {
686 return energyTR;
687 }
688 else
689 {
690 for(iTR = 0; iTR < numOfTR; ++iTR)
691 {
692 energyPos = (*energyVector1)(0) * G4UniformRand();
693 for(iTransfer = 0; iTransfer < fBinTR - 1; ++iTransfer)
694 {
695 if(energyPos >= (*energyVector1)(iTransfer))
696 break;
697 }
698 energyTR += energyVector1->GetLowEdgeEnergy(iTransfer);
699 }
700 }
701 }
702 else
703 {
704 if(iTkin == 0) // Tkin is too small, neglect of TR photon generation
705 {
706 return energyTR;
707 }
708 else // general case: Tkin between two vectors of the material
709 { // use trivial mean half/half
710 W1 = 0.5;
711 W2 = 0.5;
712 numOfTR = G4Poisson((*energyVector1)(0) * W1 + (*energyVector2)(0) * W2);
713 if(numOfTR == 0)
714 {
715 return energyTR;
716 }
717 else
718 {
719 G4cout << "It is still OK in GetEnergyTR(int,int,int)" << G4endl;
720 for(iTR = 0; iTR < numOfTR; ++iTR)
721 {
722 energyPos = ((*energyVector1)(0) * W1 + (*energyVector2)(0) * W2) *
724 for(iTransfer = 0; iTransfer < fBinTR - 1; ++iTransfer)
725 {
726 if(energyPos >= ((*energyVector1)(iTransfer) *W1 +
727 (*energyVector2)(iTransfer) *W2))
728 break;
729 }
730 energyTR += (energyVector1->GetLowEdgeEnergy(iTransfer)) * W1 +
731 (energyVector2->GetLowEdgeEnergy(iTransfer)) * W2;
732 }
733 }
734 }
735 }
736
737 return energyTR;
738}
@ kStateSolid
Definition: G4Material.hh:111
@ kStateLiquid
Definition: G4Material.hh:111
G4long G4Poisson(G4double mean)
Definition: G4Poisson.hh:50
#define G4UniformRand()
Definition: Randomize.hh:52
G4State GetState() const
Definition: G4Material.hh:177

References fBinTR, fTotBin, G4cout, G4endl, G4Poisson(), G4UniformRand, G4PhysicsVector::GetLowEdgeEnergy(), G4MaterialCutsCouple::GetMaterial(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4ProductionCutsTable::GetProductionCutsTable(), G4Material::GetState(), G4ProductionCutsTable::GetTableSize(), kStateLiquid, and kStateSolid.

◆ GetMasterProcess()

const G4VProcess * G4VProcess::GetMasterProcess ( ) const
inlineinherited

◆ GetMaxProtonTkin()

G4double G4ForwardXrayTR::GetMaxProtonTkin ( )
static

Definition at line 751 of file G4ForwardXrayTR.cc.

751{ return fMaxProtonTkin; }

References fMaxProtonTkin.

◆ GetMeanFreePath()

G4double G4ForwardXrayTR::GetMeanFreePath ( const G4Track ,
G4double  ,
G4ForceCondition condition 
)
overridevirtual

Reimplemented from G4TransitionRadiation.

Definition at line 159 of file G4ForwardXrayTR.cc.

161{
162 *condition = Forced;
163 return DBL_MAX; // so TR doesn't limit mean free path
164}
@ Forced
#define DBL_MAX
Definition: templates.hh:62

References condition(), DBL_MAX, and Forced.

◆ GetMinProtonTkin()

G4double G4ForwardXrayTR::GetMinProtonTkin ( )
static

Definition at line 749 of file G4ForwardXrayTR.cc.

749{ return fMinProtonTkin; }

References fMinProtonTkin.

◆ GetNumberOfInteractionLengthLeft()

G4double G4VProcess::GetNumberOfInteractionLengthLeft ( ) const
inlineinherited

Definition at line 431 of file G4VProcess.hh.

432{
434}

References G4VProcess::theNumberOfInteractionLengthLeft.

◆ GetPhysicsTableFileName()

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

Definition at line 181 of file G4VProcess.cc.

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

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

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

◆ GetPILfactor()

G4double G4VProcess::GetPILfactor ( ) const
inlineinherited

Definition at line 455 of file G4VProcess.hh.

456{
457 return thePILfactor;
458}

References G4VProcess::thePILfactor.

Referenced by export_G4VProcess().

◆ GetProcessManager()

const G4ProcessManager * G4VProcess::GetProcessManager ( )
inlinevirtualinherited

Reimplemented in G4BiasingProcessInterface, and G4WrapperProcess.

Definition at line 494 of file G4VProcess.hh.

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

References G4VProcess::aProcessManager.

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

◆ GetProcessName()

const G4String & G4VProcess::GetProcessName ( ) const
inlineinherited

Definition at line 382 of file G4VProcess.hh.

383{
384 return theProcessName;
385}

References G4VProcess::theProcessName.

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

◆ GetProcessSubType()

G4int G4VProcess::GetProcessSubType ( ) const
inlineinherited

◆ GetProcessType()

G4ProcessType G4VProcess::GetProcessType ( ) const
inlineinherited

◆ GetProcessTypeName()

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

Definition at line 134 of file G4VProcess.cc.

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

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

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

◆ GetSympsonNumber()

G4int G4ForwardXrayTR::GetSympsonNumber ( )
static

Definition at line 745 of file G4ForwardXrayTR.cc.

745{ return fSympsonNumber; }

References fSympsonNumber.

◆ GetThetaTR()

G4double G4ForwardXrayTR::GetThetaTR ( G4int  iMat,
G4int  jMat,
G4int  iTkin 
) const

Definition at line 743 of file G4ForwardXrayTR.cc.

743{ return 0.0; }

◆ GetTotalNumberOfInteractionLengthTraversed()

G4double G4VProcess::GetTotalNumberOfInteractionLengthTraversed ( ) const
inlineinherited

◆ GetTotBin()

G4int G4ForwardXrayTR::GetTotBin ( )
static

Definition at line 753 of file G4ForwardXrayTR.cc.

753{ return fTotBin; }

References fTotBin.

◆ GetVerboseLevel()

G4int G4VProcess::GetVerboseLevel ( ) const
inlineinherited

◆ IntegralOverAngle()

G4double G4TransitionRadiation::IntegralOverAngle ( G4double  energy,
G4double  varAngle1,
G4double  varAngle2 
) const
inherited

Definition at line 112 of file G4TransitionRadiation.cc.

115{
116 G4int i;
117 G4double h, sumEven = 0.0, sumOdd = 0.0;
118 h = 0.5 * (varAngle2 - varAngle1) / fSympsonNumber;
119 for(i = 1; i < fSympsonNumber; ++i)
120 {
121 sumEven += SpectralAngleTRdensity(energy, varAngle1 + 2 * i * h);
122 sumOdd += SpectralAngleTRdensity(energy, varAngle1 + (2 * i - 1) * h);
123 }
124 sumOdd +=
125 SpectralAngleTRdensity(energy, varAngle1 + (2 * fSympsonNumber - 1) * h);
126
127 return h *
128 (SpectralAngleTRdensity(energy, varAngle1) +
129 SpectralAngleTRdensity(energy, varAngle2) + 4.0 * sumOdd +
130 2.0 * sumEven) /
131 3.0;
132}
virtual G4double SpectralAngleTRdensity(G4double energy, G4double varAngle) const =0

References G4INCL::KinematicsUtils::energy(), G4TransitionRadiation::fSympsonNumber, and G4TransitionRadiation::SpectralAngleTRdensity().

Referenced by G4TransitionRadiation::EnergyIntegralDistribution().

◆ IntegralOverEnergy()

G4double G4TransitionRadiation::IntegralOverEnergy ( G4double  energy1,
G4double  energy2,
G4double  varAngle 
) const
inherited

Definition at line 88 of file G4TransitionRadiation.cc.

91{
92 G4int i;
93 G4double h, sumEven = 0.0, sumOdd = 0.0;
94 h = 0.5 * (energy2 - energy1) / fSympsonNumber;
95 for(i = 1; i < fSympsonNumber; i++)
96 {
97 sumEven += SpectralAngleTRdensity(energy1 + 2 * i * h, varAngle);
98 sumOdd += SpectralAngleTRdensity(energy1 + (2 * i - 1) * h, varAngle);
99 }
100 sumOdd +=
101 SpectralAngleTRdensity(energy1 + (2 * fSympsonNumber - 1) * h, varAngle);
102 return h *
103 (SpectralAngleTRdensity(energy1, varAngle) +
104 SpectralAngleTRdensity(energy2, varAngle) + 4.0 * sumOdd +
105 2.0 * sumEven) /
106 3.0;
107}

References G4TransitionRadiation::fSympsonNumber, and G4TransitionRadiation::SpectralAngleTRdensity().

Referenced by G4TransitionRadiation::AngleIntegralDistribution().

◆ 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 G4TransitionRadiation::IsApplicable ( const G4ParticleDefinition aParticleType)
overridevirtualinherited

Reimplemented from G4VProcess.

Definition at line 65 of file G4TransitionRadiation.cc.

67{
68 return (aParticleType.GetPDGCharge() != 0.0);
69}
G4double GetPDGCharge() const

References G4ParticleDefinition::GetPDGCharge().

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

◆ operator!=()

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

Definition at line 161 of file G4VProcess.cc.

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

◆ operator=()

G4ForwardXrayTR & G4ForwardXrayTR::operator= ( const G4ForwardXrayTR 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}

◆ PostStepDoIt()

G4VParticleChange * G4ForwardXrayTR::PostStepDoIt ( const G4Track aTrack,
const G4Step aStep 
)
overridevirtual

Reimplemented from G4TransitionRadiation.

Definition at line 408 of file G4ForwardXrayTR.cc.

410{
412 G4int iMat, jMat, iTkin, iPlace, numOfTR, iTR, iTransfer;
413
414 G4double energyPos, anglePos, energyTR, theta, phi, dirX, dirY, dirZ;
415 G4double W, W1, W2, E1, E2;
416
417 G4StepPoint* pPreStepPoint = aStep.GetPreStepPoint();
418 G4StepPoint* pPostStepPoint = aStep.GetPostStepPoint();
419 G4double tol =
421
422 if(pPostStepPoint->GetStepStatus() != fGeomBoundary)
423 {
424 return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep);
425 }
426 if(aTrack.GetStepLength() <= tol)
427 {
428 return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep);
429 }
430 // Arrived at boundary, so begin to try TR
431
432 const G4MaterialCutsCouple* iCouple = pPreStepPoint->GetPhysicalVolume()
435 const G4MaterialCutsCouple* jCouple = pPostStepPoint->GetPhysicalVolume()
438 const G4Material* iMaterial = iCouple->GetMaterial();
439 const G4Material* jMaterial = jCouple->GetMaterial();
440 iMat = iCouple->GetIndex();
441 jMat = jCouple->GetIndex();
442
443 // The case of equal or approximate (in terms of plasma energy) materials
444 // No TR photons ?!
445
446 if(iMat == jMat ||
447 ((fMatIndex1 >= 0 && fMatIndex2 >= 0) &&
448 (iMat != fMatIndex1 && iMat != fMatIndex2) &&
449 (jMat != fMatIndex1 && jMat != fMatIndex2))
450
451 || iMaterial->GetState() == jMaterial->GetState()
452
453 || (iMaterial->GetState() == kStateSolid &&
454 jMaterial->GetState() == kStateLiquid)
455
456 || (iMaterial->GetState() == kStateLiquid &&
457 jMaterial->GetState() == kStateSolid))
458 {
459 return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep);
460 }
461
462 const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle();
463 G4double charge = aParticle->GetDefinition()->GetPDGCharge();
464
465 if(charge == 0.0) // Uncharged particle doesn't Generate TR photons
466 {
467 return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep);
468 }
469 // Now we are ready to Generate TR photons
470
471 G4double chargeSq = charge * charge;
472 G4double kinEnergy = aParticle->GetKineticEnergy();
473 G4double massRatio =
474 proton_mass_c2 / aParticle->GetDefinition()->GetPDGMass();
475 G4double TkinScaled = kinEnergy * massRatio;
476 for(iTkin = 0; iTkin < fTotBin; ++iTkin)
477 {
478 if(TkinScaled < fProtonEnergyVector->GetLowEdgeEnergy(iTkin))
479 {
480 break;
481 }
482 }
483 if(jMat < iMat)
484 {
485 iPlace = fTotBin + iTkin - 1;
486 }
487 else
488 {
489 iPlace = iTkin - 1;
490 }
491
492 G4ParticleMomentum particleDir = aParticle->GetMomentumDirection();
493
494 if(iTkin == fTotBin) // TR plato, try from left
495 {
496 numOfTR = G4Poisson(
497 ((*(*fEnergyDistrTable)(iPlace))(0) + (*(*fAngleDistrTable)(iPlace))(0)) *
498 chargeSq * 0.5);
499 if(numOfTR == 0)
500 {
501 return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep);
502 }
503 else
504 {
506
507 for(iTR = 0; iTR < numOfTR; ++iTR)
508 {
509 energyPos = (*(*fEnergyDistrTable)(iPlace))(0) * G4UniformRand();
510 for(iTransfer = 0; iTransfer < fBinTR - 1; ++iTransfer)
511 {
512 if(energyPos >= (*(*fEnergyDistrTable)(iPlace))(iTransfer))
513 break;
514 }
515 energyTR = (*fEnergyDistrTable)(iPlace)->GetLowEdgeEnergy(iTransfer);
516
517 kinEnergy -= energyTR;
519
520 anglePos = (*(*fAngleDistrTable)(iPlace))(0) * G4UniformRand();
521 for(iTransfer = 0; iTransfer < fBinTR - 1; ++iTransfer)
522 {
523 if(anglePos > (*(*fAngleDistrTable)(iPlace))(iTransfer))
524 break;
525 }
526 theta = std::sqrt(
527 (*fAngleDistrTable)(iPlace)->GetLowEdgeEnergy(iTransfer - 1));
528
529 phi = twopi * G4UniformRand();
530 dirX = std::sin(theta) * std::cos(phi);
531 dirY = std::sin(theta) * std::sin(phi);
532 dirZ = std::cos(theta);
533 G4ThreeVector directionTR(dirX, dirY, dirZ);
534 directionTR.rotateUz(particleDir);
535 G4DynamicParticle* aPhotonTR =
536 new G4DynamicParticle(G4Gamma::Gamma(), directionTR, energyTR);
537
538 // Create the G4Track
539 G4Track* aSecondaryTrack = new G4Track(aPhotonTR, aTrack.GetGlobalTime(), aTrack.GetPosition());
540 aSecondaryTrack->SetTouchableHandle(aStep.GetPostStepPoint()->GetTouchableHandle());
541 aSecondaryTrack->SetParentID(aTrack.GetTrackID());
542 aSecondaryTrack->SetCreatorModelID(secID);
543 aParticleChange.AddSecondary(aSecondaryTrack);
544 }
545 }
546 }
547 else
548 {
549 if(iTkin == 0) // Tkin is too small, neglect of TR photon generation
550 {
551 return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep);
552 }
553 else // general case: Tkin between two vectors of the material
554 {
555 E1 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin - 1);
557 W = 1.0 / (E2 - E1);
558 W1 = (E2 - TkinScaled) * W;
559 W2 = (TkinScaled - E1) * W;
560
561 numOfTR = G4Poisson((((*(*fEnergyDistrTable)(iPlace))(0) +
562 (*(*fAngleDistrTable)(iPlace))(0)) *
563 W1 +
564 ((*(*fEnergyDistrTable)(iPlace + 1))(0) +
565 (*(*fAngleDistrTable)(iPlace + 1))(0)) *
566 W2) *
567 chargeSq * 0.5);
568 if(numOfTR == 0)
569 {
570 return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep);
571 }
572 else
573 {
575 for(iTR = 0; iTR < numOfTR; ++iTR)
576 {
577 energyPos = ((*(*fEnergyDistrTable)(iPlace))(0) * W1 +
578 (*(*fEnergyDistrTable)(iPlace + 1))(0) * W2) *
580 for(iTransfer = 0; iTransfer < fBinTR - 1; ++iTransfer)
581 {
582 if(energyPos >=
583 ((*(*fEnergyDistrTable)(iPlace))(iTransfer) *W1 +
584 (*(*fEnergyDistrTable)(iPlace + 1))(iTransfer) *W2))
585 break;
586 }
587 energyTR =
588 ((*fEnergyDistrTable)(iPlace)->GetLowEdgeEnergy(iTransfer)) * W1 +
589 ((*fEnergyDistrTable)(iPlace + 1)->GetLowEdgeEnergy(iTransfer)) *
590 W2;
591
592 kinEnergy -= energyTR;
594
595 anglePos = ((*(*fAngleDistrTable)(iPlace))(0) * W1 +
596 (*(*fAngleDistrTable)(iPlace + 1))(0) * W2) *
598 for(iTransfer = 0; iTransfer < fBinTR - 1; ++iTransfer)
599 {
600 if(anglePos > ((*(*fAngleDistrTable)(iPlace))(iTransfer) *W1 +
601 (*(*fAngleDistrTable)(iPlace + 1))(iTransfer) *W2))
602 break;
603 }
604 theta = std::sqrt(
605 ((*fAngleDistrTable)(iPlace)->GetLowEdgeEnergy(iTransfer - 1)) *
606 W1 +
607 ((*fAngleDistrTable)(iPlace + 1)->GetLowEdgeEnergy(iTransfer - 1)) *
608 W2);
609
610 phi = twopi * G4UniformRand();
611 dirX = std::sin(theta) * std::cos(phi);
612 dirY = std::sin(theta) * std::sin(phi);
613 dirZ = std::cos(theta);
614 G4ThreeVector directionTR(dirX, dirY, dirZ);
615 directionTR.rotateUz(particleDir);
616 G4DynamicParticle* aPhotonTR =
617 new G4DynamicParticle(G4Gamma::Gamma(), directionTR, energyTR);
618
619 // Create the G4Track
620 G4Track* aSecondaryTrack = new G4Track(aPhotonTR, aTrack.GetGlobalTime(), aTrack.GetPosition());
621 aSecondaryTrack->SetTouchableHandle(aStep.GetPostStepPoint()->GetTouchableHandle());
622 aSecondaryTrack->SetParentID(aTrack.GetTrackID());
623 aSecondaryTrack->SetCreatorModelID(secID);
624 aParticleChange.AddSecondary(aSecondaryTrack);
625 }
626 }
627 }
628 }
629 return &aParticleChange;
630}
static constexpr double twopi
Definition: G4SIunits.hh:56
@ fGeomBoundary
Definition: G4StepStatus.hh:43
const G4ThreeVector & GetMomentumDirection() const
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
static G4Gamma * Gamma()
Definition: G4Gamma.cc:85
G4double GetSurfaceTolerance() const
static G4GeometryTolerance * GetInstance()
const G4MaterialCutsCouple * GetMaterialCutsCouple() const
void AddSecondary(G4Track *aSecondary)
void ProposeEnergy(G4double finalEnergy)
virtual void Initialize(const G4Track &)
G4StepStatus GetStepStatus() const
const G4TouchableHandle & GetTouchableHandle() const
G4VPhysicalVolume * GetPhysicalVolume() const
G4StepPoint * GetPreStepPoint() const
G4StepPoint * GetPostStepPoint() const
G4int GetTrackID() const
const G4ThreeVector & GetPosition() const
void SetTouchableHandle(const G4TouchableHandle &apValue)
G4double GetGlobalTime() const
const G4DynamicParticle * GetDynamicParticle() const
void SetCreatorModelID(const G4int id)
G4double GetStepLength() const
void SetParentID(const G4int aValue)
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
void SetNumberOfSecondaries(G4int totSecondaries)
G4LogicalVolume * GetLogicalVolume() const
G4ParticleChange aParticleChange
Definition: G4VProcess.hh:327

References G4ParticleChange::AddSecondary(), G4VProcess::aParticleChange, fAngleDistrTable, fBinTR, fEnergyDistrTable, fGeomBoundary, G4TransitionRadiation::fMatIndex1, G4TransitionRadiation::fMatIndex2, fProtonEnergyVector, fTotBin, G4Poisson(), G4UniformRand, G4Gamma::Gamma(), G4DynamicParticle::GetDefinition(), G4Track::GetDynamicParticle(), G4Track::GetGlobalTime(), G4MaterialCutsCouple::GetIndex(), G4GeometryTolerance::GetInstance(), G4DynamicParticle::GetKineticEnergy(), G4VPhysicalVolume::GetLogicalVolume(), G4PhysicsVector::GetLowEdgeEnergy(), G4MaterialCutsCouple::GetMaterial(), G4LogicalVolume::GetMaterialCutsCouple(), G4DynamicParticle::GetMomentumDirection(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetPDGMass(), G4StepPoint::GetPhysicalVolume(), G4Track::GetPosition(), G4Step::GetPostStepPoint(), G4Step::GetPreStepPoint(), G4Material::GetState(), G4Track::GetStepLength(), G4StepPoint::GetStepStatus(), G4GeometryTolerance::GetSurfaceTolerance(), G4StepPoint::GetTouchableHandle(), G4Track::GetTrackID(), G4ParticleChange::Initialize(), kStateLiquid, kStateSolid, G4VDiscreteProcess::PostStepDoIt(), G4ParticleChange::ProposeEnergy(), source.hepunit::proton_mass_c2, CLHEP::Hep3Vector::rotateUz(), secID, G4Track::SetCreatorModelID(), G4VParticleChange::SetNumberOfSecondaries(), G4Track::SetParentID(), G4Track::SetTouchableHandle(), and twopi.

◆ PostStepGetPhysicalInteractionLength()

G4double G4VDiscreteProcess::PostStepGetPhysicalInteractionLength ( const G4Track track,
G4double  previousStepSize,
G4ForceCondition condition 
)
virtualinherited

Implements G4VProcess.

Reimplemented in G4ErrorMagFieldLimitProcess, G4ErrorStepLengthLimitProcess, G4ErrorTrackLengthTarget, G4HadronStoppingProcess, G4NeutronKiller, G4GammaGeneralProcess, G4UnknownDecay, G4PolarizedAnnihilation, G4PolarizedCompton, G4VEmProcess, G4VErrorLimitProcess, and G4LowECapture.

Definition at line 70 of file G4VDiscreteProcess.cc.

74{
75 if ( (previousStepSize < 0.0) || (theNumberOfInteractionLengthLeft<=0.0))
76 {
77 // beginning of tracking (or just after DoIt() of this process)
79 }
80 else if ( previousStepSize > 0.0)
81 {
82 // subtract NumberOfInteractionLengthLeft
84 }
85 else
86 {
87 // zero step
88 // DO NOTHING
89 }
90
91 // condition is set to "Not Forced"
93
94 // get mean free path
95 currentInteractionLength = GetMeanFreePath(track, previousStepSize, condition);
96
97 G4double value;
99 {
101 }
102 else
103 {
104 value = DBL_MAX;
105 }
106#ifdef G4VERBOSE
107 if (verboseLevel>1)
108 {
109 G4cout << "G4VDiscreteProcess::PostStepGetPhysicalInteractionLength() - ";
110 G4cout << "[ " << GetProcessName() << "]" <<G4endl;
111 track.GetDynamicParticle()->DumpInfo();
112 G4cout << " in Material " << track.GetMaterial()->GetName() <<G4endl;
113 G4cout << "InteractionLength= " << value/cm <<"[cm] " <<G4endl;
114 }
115#endif
116 return value;
117}
@ NotForced
static constexpr double cm
Definition: G4SIunits.hh:99
void DumpInfo(G4int mode=0) const
G4Material * GetMaterial() const
virtual G4double GetMeanFreePath(const G4Track &aTrack, G4double previousStepSize, G4ForceCondition *condition)=0
void SubtractNumberOfInteractionLengthLeft(G4double prevStepSize)
Definition: G4VProcess.hh:524
virtual void ResetNumberOfInteractionLengthLeft()
Definition: G4VProcess.cc:80
const G4String & GetProcessName() const
Definition: G4VProcess.hh:382

References cm, condition(), G4VProcess::currentInteractionLength, DBL_MAX, G4DynamicParticle::DumpInfo(), G4cout, G4endl, G4Track::GetDynamicParticle(), G4Track::GetMaterial(), G4VDiscreteProcess::GetMeanFreePath(), G4Material::GetName(), G4VProcess::GetProcessName(), NotForced, G4VProcess::ResetNumberOfInteractionLengthLeft(), G4VProcess::SubtractNumberOfInteractionLengthLeft(), 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()

virtual void G4VProcess::PreparePhysicsTable ( const G4ParticleDefinition )
inlinevirtualinherited

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

◆ ProcessDescription()

void G4ForwardXrayTR::ProcessDescription ( std::ostream &  out) const
overridevirtual

Reimplemented from G4TransitionRadiation.

Definition at line 152 of file G4ForwardXrayTR.cc.

153{
154 out << "Simulation of forward X-ray transition radiation generated by\n"
155 "relativistic charged particles crossing the interface between\n"
156 "two materials.\n";
157}

Referenced by DumpInfo().

◆ ResetNumberOfInteractionLengthLeft()

void G4VProcess::ResetNumberOfInteractionLengthLeft ( )
virtualinherited

◆ RetrievePhysicsTable()

virtual G4bool G4VProcess::RetrievePhysicsTable ( const G4ParticleDefinition ,
const G4String ,
G4bool   
)
inlinevirtualinherited

◆ SetMasterProcess()

void G4VProcess::SetMasterProcess ( G4VProcess masterP)
virtualinherited

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

◆ SetVerboseLevel()

void G4VProcess::SetVerboseLevel ( G4int  value)
inlineinherited

◆ SpectralAngleTRdensity()

G4double G4ForwardXrayTR::SpectralAngleTRdensity ( G4double  energy,
G4double  varAngle 
) const
overridevirtual

Implements G4TransitionRadiation.

Definition at line 290 of file G4ForwardXrayTR.cc.

292{
293 G4double formationLength1, formationLength2;
294 formationLength1 =
295 1.0 / (1.0 / (fGamma * fGamma) + fSigma1 / (energy * energy) + varAngle);
296 formationLength2 =
297 1.0 / (1.0 / (fGamma * fGamma) + fSigma2 / (energy * energy) + varAngle);
298 return (varAngle / energy) * (formationLength1 - formationLength2) *
299 (formationLength1 - formationLength2);
300}

References G4INCL::KinematicsUtils::energy(), fGamma, fSigma1, and fSigma2.

◆ SpectralDensity()

G4double G4ForwardXrayTR::SpectralDensity ( G4double  energy,
G4double  x 
) const

Definition at line 362 of file G4ForwardXrayTR.cc.

363{
364 G4double a, b;
365 a = 1.0 / (fGamma * fGamma) + fSigma1 / (energy * energy);
366 b = 1.0 / (fGamma * fGamma) + fSigma2 / (energy * energy);
367 return ((a + b) * std::log((x + b) / (x + a)) / (a - b) + a / (x + a) +
368 b / (x + b)) /
369 energy;
370}

References G4INCL::KinematicsUtils::energy(), fGamma, fSigma1, and fSigma2.

Referenced by AngleInterval().

◆ StartTracking()

void G4VProcess::StartTracking ( G4Track )
virtualinherited

Reimplemented in G4ParallelGeometriesLimiterProcess, G4ImportanceProcess, G4WeightCutOffProcess, G4WeightWindowProcess, G4VITProcess, G4DNASecondOrderReaction, G4WrapperProcess, G4FastSimulationManagerProcess, G4ParallelWorldProcess, G4ParallelWorldScoringProcess, G4ScoreSplittingProcess, G4GammaGeneralProcess, G4Decay, G4AdjointProcessEquivalentToDirectProcess, G4eAdjointMultipleScattering, G4DNAElectronHoleRecombination, G4DNAScavengerProcess, G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering, G4ITTransportation, G4DNABrownianTransportation, G4CoupledTransportation, G4Transportation, G4BiasingProcessInterface, and G4VPhononProcess.

Definition at line 87 of file G4VProcess.cc.

88{
92#ifdef G4VERBOSE
93 if (verboseLevel>2)
94 {
95 G4cout << "G4VProcess::StartTracking() - [" << theProcessName << "]"
96 << G4endl;
97 }
98#endif
99}

References G4VProcess::currentInteractionLength, G4cout, G4endl, G4VProcess::theInitialNumberOfInteractionLength, G4VProcess::theNumberOfInteractionLengthLeft, G4VProcess::theProcessName, and G4VProcess::verboseLevel.

Referenced by G4DNASecondOrderReaction::StartTracking(), G4WrapperProcess::StartTracking(), G4AdjointProcessEquivalentToDirectProcess::StartTracking(), G4DNAElectronHoleRecombination::StartTracking(), G4DNAScavengerProcess::StartTracking(), G4ITTransportation::StartTracking(), G4Transportation::StartTracking(), G4BiasingProcessInterface::StartTracking(), and G4VPhononProcess::StartTracking().

◆ StorePhysicsTable()

virtual G4bool G4VProcess::StorePhysicsTable ( const G4ParticleDefinition ,
const G4String ,
G4bool   
)
inlinevirtualinherited

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

Field Documentation

◆ aParticleChange

G4ParticleChange G4VProcess::aParticleChange
protectedinherited

◆ aProcessManager

const G4ProcessManager* G4VProcess::aProcessManager = nullptr
protectedinherited

Definition at line 319 of file G4VProcess.hh.

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

◆ currentInteractionLength

G4double G4VProcess::currentInteractionLength = -1.0
protectedinherited

◆ enableAlongStepDoIt

G4bool G4VProcess::enableAlongStepDoIt = true
protectedinherited

◆ enableAtRestDoIt

G4bool G4VProcess::enableAtRestDoIt = true
protectedinherited

◆ enablePostStepDoIt

G4bool G4VProcess::enablePostStepDoIt = true
protectedinherited

◆ fAngleDistrTable

G4PhysicsTable* G4ForwardXrayTR::fAngleDistrTable
protected

◆ fBinTR

constexpr G4int G4ForwardXrayTR::fBinTR = 50
staticconstexprprotected

Definition at line 134 of file G4ForwardXrayTR.hh.

Referenced by BuildXrayTRtables(), GetBinTR(), GetEnergyTR(), and PostStepDoIt().

◆ fCofTR

constexpr G4double G4ForwardXrayTR::fCofTR = CLHEP::fine_structure_const / CLHEP::pi
staticconstexprprotected

Definition at line 130 of file G4ForwardXrayTR.hh.

Referenced by BuildXrayTRtables().

◆ fEnergy

G4double G4TransitionRadiation::fEnergy
protectedinherited

◆ fEnergyDistrTable

G4PhysicsTable* G4ForwardXrayTR::fEnergyDistrTable
protected

◆ fGamma

G4double G4ForwardXrayTR::fGamma
protected

◆ fGammaCutInKineticEnergy

const std::vector<G4double>* G4ForwardXrayTR::fGammaCutInKineticEnergy
protected

Definition at line 137 of file G4ForwardXrayTR.hh.

Referenced by BuildXrayTRtables(), and G4ForwardXrayTR().

◆ fGammaNumber

constexpr G4int G4TransitionRadiation::fGammaNumber = 15
staticconstexprprotectedinherited

Definition at line 94 of file G4TransitionRadiation.hh.

◆ fGammaTkinCut

G4double G4ForwardXrayTR::fGammaTkinCut
protected

Definition at line 151 of file G4ForwardXrayTR.hh.

Referenced by BuildXrayTRtables(), and G4ForwardXrayTR().

◆ fMatIndex1

G4int G4TransitionRadiation::fMatIndex1
protectedinherited

◆ fMatIndex2

G4int G4TransitionRadiation::fMatIndex2
protectedinherited

◆ fMaxEnergy

G4double G4TransitionRadiation::fMaxEnergy
protectedinherited

◆ fMaxEnergyTR

G4double G4ForwardXrayTR::fMaxEnergyTR
protected

Definition at line 148 of file G4ForwardXrayTR.hh.

Referenced by AngleSum(), BuildXrayTRtables(), and G4ForwardXrayTR().

◆ fMaxProtonTkin

constexpr G4double G4ForwardXrayTR::fMaxProtonTkin
staticconstexprprotected
Initial value:
=
100. * CLHEP::TeV
static constexpr double TeV

Definition at line 124 of file G4ForwardXrayTR.hh.

Referenced by G4ForwardXrayTR(), and GetMaxProtonTkin().

◆ fMaxTheta

G4double G4TransitionRadiation::fMaxTheta
protectedinherited

◆ fMaxThetaTR

G4double G4ForwardXrayTR::fMaxThetaTR
protected

Definition at line 149 of file G4ForwardXrayTR.hh.

Referenced by BuildXrayTRtables(), EnergySum(), and G4ForwardXrayTR().

◆ fMinEnergy

G4double G4TransitionRadiation::fMinEnergy
protectedinherited

◆ fMinEnergyTR

G4double G4ForwardXrayTR::fMinEnergyTR
protected

Definition at line 147 of file G4ForwardXrayTR.hh.

Referenced by AngleSum(), BuildXrayTRtables(), and G4ForwardXrayTR().

◆ fMinProtonTkin

constexpr G4double G4ForwardXrayTR::fMinProtonTkin
staticconstexprprotected
Initial value:
=
100. * CLHEP::GeV
static constexpr double GeV

Definition at line 122 of file G4ForwardXrayTR.hh.

Referenced by G4ForwardXrayTR(), and GetMinProtonTkin().

◆ fPlasmaCof

constexpr G4double G4ForwardXrayTR::fPlasmaCof
staticconstexprprotected
Initial value:
=
static constexpr double electron_mass_c2
static constexpr double fine_structure_const
static constexpr double hbarc
static constexpr double pi
Definition: SystemOfUnits.h:55

Definition at line 126 of file G4ForwardXrayTR.hh.

Referenced by BuildXrayTRtables().

◆ fPointNumber

constexpr G4int G4TransitionRadiation::fPointNumber = 100
staticconstexprprotectedinherited

Definition at line 95 of file G4TransitionRadiation.hh.

◆ fProcessTable

G4ProcessTable* G4VProcess::fProcessTable = nullptr
privateinherited

Definition at line 374 of file G4VProcess.hh.

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

◆ fProtonEnergyVector

G4PhysicsLogVector* G4ForwardXrayTR::fProtonEnergyVector
protected

◆ fPtrGamma

G4ParticleDefinition* G4ForwardXrayTR::fPtrGamma
protected

Definition at line 140 of file G4ForwardXrayTR.hh.

Referenced by G4ForwardXrayTR().

◆ fSigma1

G4double G4ForwardXrayTR::fSigma1
protected

◆ fSigma2

G4double G4ForwardXrayTR::fSigma2
protected

◆ fSympsonNumber

constexpr G4int G4ForwardXrayTR::fSympsonNumber
staticconstexprprotected
Initial value:
=
100

Definition at line 132 of file G4ForwardXrayTR.hh.

Referenced by AngleSum(), EnergySum(), and GetSympsonNumber().

◆ fTheMaxAngle

constexpr G4double G4ForwardXrayTR::fTheMaxAngle = 1.0e-3
staticconstexprprotected

Definition at line 120 of file G4ForwardXrayTR.hh.

Referenced by BuildXrayTRtables().

◆ fTheMaxEnergyTR

constexpr G4double G4ForwardXrayTR::fTheMaxEnergyTR
staticconstexprprotected
Initial value:
=
100. * CLHEP::keV
static constexpr double keV

Definition at line 118 of file G4ForwardXrayTR.hh.

Referenced by BuildXrayTRtables().

◆ fTheMinAngle

constexpr G4double G4ForwardXrayTR::fTheMinAngle = 5.0e-6
staticconstexprprotected

Definition at line 121 of file G4ForwardXrayTR.hh.

Referenced by BuildXrayTRtables().

◆ fTheMinEnergyTR

constexpr G4double G4ForwardXrayTR::fTheMinEnergyTR
staticconstexprprotected
Initial value:
=

Definition at line 116 of file G4ForwardXrayTR.hh.

Referenced by BuildXrayTRtables().

◆ fTotBin

constexpr G4int G4ForwardXrayTR::fTotBin = 50
staticconstexprprotected

◆ fVarAngle

G4double G4TransitionRadiation::fVarAngle
protectedinherited

◆ masterProcessShadow

G4VProcess* G4VProcess::masterProcessShadow = nullptr
privateinherited

Definition at line 370 of file G4VProcess.hh.

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

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

◆ secID

G4int G4ForwardXrayTR::secID = -1
protected

Definition at line 155 of file G4ForwardXrayTR.hh.

Referenced by G4ForwardXrayTR(), and PostStepDoIt().

◆ theInitialNumberOfInteractionLength

G4double G4VProcess::theInitialNumberOfInteractionLength = -1.0
protectedinherited

◆ theNumberOfInteractionLengthLeft

G4double G4VProcess::theNumberOfInteractionLengthLeft = -1.0
protectedinherited

Definition at line 331 of file G4VProcess.hh.

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

◆ thePhysicsTableFileName

G4String G4VProcess::thePhysicsTableFileName
protectedinherited

Definition at line 344 of file G4VProcess.hh.

Referenced by G4VProcess::GetPhysicsTableFileName().

◆ thePILfactor

G4double G4VProcess::thePILfactor = 1.0
protectedinherited

◆ theProcessName

G4String G4VProcess::theProcessName
protectedinherited

◆ theProcessSubType

G4int G4VProcess::theProcessSubType = -1
protectedinherited

◆ theProcessType

G4ProcessType G4VProcess::theProcessType = fNotDefined
protectedinherited

◆ verboseLevel

G4int G4VProcess::verboseLevel = 0
protectedinherited

Definition at line 356 of file G4VProcess.hh.

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


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