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

#include <G4GammaXTRadiator.hh>

Inheritance diagram for G4GammaXTRadiator:
G4VXTRenergyLoss 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 AngleSpectralXTRdEdx (G4double energy)
 
G4double AngleXTRdEdx (G4double varAngle)
 
virtual G4VParticleChangeAtRestDoIt (const G4Track &, const G4Step &)
 
virtual G4double AtRestGetPhysicalInteractionLength (const G4Track &, G4ForceCondition *)
 
G4double AtRestGPIL (const G4Track &track, G4ForceCondition *condition)
 
void BuildAngleForEnergyBank ()
 
void BuildAngleTable ()
 
void BuildEnergyTable ()
 
void BuildGlobalAngleTable ()
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &) override
 
void BuildTable ()
 
virtual void BuildWorkerPhysicsTable (const G4ParticleDefinition &part)
 
void ComputeGasPhotoAbsCof ()
 
void ComputePlatePhotoAbsCof ()
 
void DumpInfo () const override
 
virtual void EndTracking ()
 
 G4GammaXTRadiator (G4LogicalVolume *anEnvelope, G4double, G4double, G4Material *, G4Material *, G4double, G4double, G4int, const G4String &processName="XTRgammaRadiator")
 
G4double GetAlphaGas ()
 
G4double GetAlphaPlate ()
 
G4bool GetAngleRadDistr ()
 
G4PhysicsFreeVectorGetAngleVector (G4double energy, G4int n)
 
G4double GetAngleXTR (G4int iTR, G4double position, G4int iAngle)
 
G4bool GetCompton ()
 
G4double GetComptonPerAtom (G4double, G4double)
 
G4double GetCurrentInteractionLength () const
 
G4double GetEnergy ()
 
G4bool GetFastAngle ()
 
G4double GetGamma ()
 
G4complex GetGasComplexFZ (G4double, G4double, G4double)
 
G4double GetGasCompton (G4double)
 
G4double GetGasFormationZone (G4double, G4double, G4double)
 
G4double GetGasLinearPhotoAbs (G4double)
 
void GetGasZmuProduct ()
 
G4double GetGasZmuProduct (G4double, G4double, G4double)
 
const G4VProcessGetMasterProcess () const
 
G4double GetMaxEnergyTR ()
 
G4double GetMaxThetaTR ()
 
virtual G4double GetMeanFreePath (const G4Track &aTrack, G4double previousStepSize, G4ForceCondition *condition) override
 
G4double GetMinEnergyTR ()
 
G4double GetMinThetaTR ()
 
G4double GetNumberOfInteractionLengthLeft () const
 
void GetNumberOfPhotons ()
 
const G4StringGetPhysicsTableFileName (const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false)
 
G4double GetPILfactor () const
 
G4complex GetPlateComplexFZ (G4double, G4double, G4double)
 
G4double GetPlateCompton (G4double)
 
G4double GetPlateFormationZone (G4double, G4double, G4double)
 
G4double GetPlateLinearPhotoAbs (G4double)
 
void GetPlateZmuProduct ()
 
G4double GetPlateZmuProduct (G4double, G4double, G4double)
 
virtual const G4ProcessManagerGetProcessManager ()
 
const G4StringGetProcessName () const
 
G4int GetProcessSubType () const
 
G4ProcessType GetProcessType () const
 
G4PhysicsLogVectorGetProtonVector ()
 
G4double GetRandomAngle (G4double energyXTR, G4int iTkin)
 
G4double GetStackFactor (G4double energy, G4double gamma, G4double varAngle) override
 
G4double GetTheMaxAngle ()
 
G4double GetTheMaxEnergyTR ()
 
G4double GetTheMinAngle ()
 
G4double GetTheMinEnergyTR ()
 
G4double GetTotalNumberOfInteractionLengthTraversed () const
 
G4int GetTotBin ()
 
G4double GetVarAngle ()
 
G4int GetVerboseLevel () const
 
G4double GetXTRenergy (G4int iPlace, G4double position, G4int iTransfer)
 
G4double GetXTRrandomEnergy (G4double scaledTkin, G4int iTkin)
 
G4bool isAlongStepDoItIsEnabled () const
 
virtual G4bool IsApplicable (const G4ParticleDefinition &) override
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool isPostStepDoItIsEnabled () const
 
G4double OneBoundaryXTRNdensity (G4double energy, G4double gamma, G4double varAngle) const
 
G4complex OneInterfaceXTRdEdx (G4double energy, G4double gamma, G4double varAngle)
 
G4bool operator!= (const G4VProcess &right) const
 
G4bool operator== (const G4VProcess &right) const
 
virtual 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)
 
void SetAlphaGas (G4double ag)
 
void SetAlphaPlate (G4double ap)
 
void SetAngleRadDistr (G4bool fatr)
 
void SetCompton (G4bool pC)
 
void SetEnergy (G4double energy)
 
void SetFastAngle (G4bool fatr)
 
void SetGamma (G4double gamma)
 
virtual void SetMasterProcess (G4VProcess *masterP)
 
void SetMaxEnergyTR (G4double maxetr)
 
void SetMaxThetaTR (G4double maxatr)
 
void SetMinEnergyTR (G4double minetr)
 
void SetMinThetaTR (G4double minatr)
 
void SetPILfactor (G4double value)
 
virtual void SetProcessManager (const G4ProcessManager *)
 
void SetProcessSubType (G4int)
 
void SetProcessType (G4ProcessType)
 
void SetTheMaxAngle (G4double maxang)
 
void SetTheMaxEnergyTR (G4double maxetr)
 
void SetTheMinAngle (G4double minang)
 
void SetTheMinEnergyTR (G4double minetr)
 
void SetVarAngle (G4double varAngle)
 
void SetVerboseLevel (G4int value)
 
G4double SpectralAngleXTRdEdx (G4double varAngle)
 
virtual G4double SpectralXTRdEdx (G4double energy)
 
virtual void StartTracking (G4Track *)
 
virtual G4bool StorePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool)
 
G4double XTRNAngleDensity (G4double varAngle)
 
G4double XTRNAngleSpectralDensity (G4double energy)
 
G4double XTRNSpectralAngleDensity (G4double varAngle)
 
G4double XTRNSpectralDensity (G4double energy)
 
 ~G4GammaXTRadiator ()
 

Static Public Member Functions

static const G4StringGetProcessTypeName (G4ProcessType)
 

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
 
G4double fAlphaGas
 
G4double fAlphaPlate
 
std::vector< G4PhysicsTable * > fAngleBank
 
G4PhysicsTablefAngleDistrTable
 
G4PhysicsTablefAngleForEnergyTable
 
G4bool fAngleRadDistr
 
G4int fBinTR
 
G4bool fCompton
 
G4double fEnergy
 
G4PhysicsTablefEnergyDistrTable
 
G4LogicalVolumefEnvelope
 
G4bool fExitFlux
 
G4bool fFastAngle
 
G4double fGamma
 
G4doublefGammaCutInKineticEnergy
 
G4double fGammaTkinCut
 
G4SandiaTablefGasPhotoAbsCof
 
G4double fGasThick
 
G4double fLambda
 
G4int fMatIndex1
 
G4int fMatIndex2
 
G4double fMaxEnergyTR
 
G4double fMaxThetaTR
 
G4double fMinEnergyTR
 
G4double fMinThetaTR
 
G4ParticleChange fParticleChange
 
G4int fPlateNumber
 
G4SandiaTablefPlatePhotoAbsCof
 
G4double fPlateThick
 
G4PhysicsLogVectorfProtonEnergyVector
 
G4ParticleDefinitionfPtrGamma
 
G4double fSigma1
 
G4double fSigma2
 
G4double fTheMaxAngle
 
G4double fTheMaxEnergyTR
 
G4double fTheMinAngle
 
G4double fTheMinEnergyTR
 
G4double fTotalDist
 
G4int fTotBin
 
G4double fVarAngle
 
G4PhysicsLogVectorfXTREnergyVector
 
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 G4double fCofTR = CLHEP::fine_structure_const / CLHEP::pi
 
static constexpr G4double fMaxProtonTkin = 100. * CLHEP::TeV
 
static constexpr G4double fMinProtonTkin = 100. * CLHEP::GeV
 
static constexpr G4double fPlasmaCof
 

Private Attributes

G4ProcessTablefProcessTable = nullptr
 
G4VProcessmasterProcessShadow = nullptr
 

Detailed Description

Definition at line 53 of file G4GammaXTRadiator.hh.

Constructor & Destructor Documentation

◆ G4GammaXTRadiator()

G4GammaXTRadiator::G4GammaXTRadiator ( G4LogicalVolume anEnvelope,
G4double  alphaPlate,
G4double  alphaGas,
G4Material foilMat,
G4Material gasMat,
G4double  a,
G4double  b,
G4int  n,
const G4String processName = "XTRgammaRadiator" 
)
explicit

Definition at line 33 of file G4GammaXTRadiator.cc.

38 : G4VXTRenergyLoss(anEnvelope, foilMat, gasMat, a, b, n, processName)
39{
40 G4cout << "Gamma distributed X-ray TR radiator model is called" << G4endl;
41
42 // Build energy and angular integral spectra of X-ray TR photons from
43 // a radiator
44
45 fAlphaPlate = alphaPlate;
46 fAlphaGas = alphaGas;
47 G4cout << "fAlphaPlate = " << fAlphaPlate << " ; fAlphaGas = " << fAlphaGas
48 << G4endl;
49}
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
G4VXTRenergyLoss(G4LogicalVolume *anEnvelope, G4Material *, G4Material *, G4double, G4double, G4int, const G4String &processName="XTRenergyLoss", G4ProcessType type=fElectromagnetic)

References G4VXTRenergyLoss::fAlphaGas, G4VXTRenergyLoss::fAlphaPlate, G4cout, and G4endl.

◆ ~G4GammaXTRadiator()

G4GammaXTRadiator::~G4GammaXTRadiator ( )

Definition at line 52 of file G4GammaXTRadiator.cc.

52{}

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

◆ AngleSpectralXTRdEdx()

G4double G4VXTRenergyLoss::AngleSpectralXTRdEdx ( G4double  energy)
inherited

Definition at line 905 of file G4VXTRenergyLoss.cc.

906{
908 if(result < 0)
909 result = 0.0;
910 return result;
911}
double G4double
Definition: G4Types.hh:83
virtual G4double GetStackFactor(G4double energy, G4double gamma, G4double varAngle)
G4double energy(const ThreeVector &p, const G4double m)

References G4INCL::KinematicsUtils::energy(), G4VXTRenergyLoss::fGamma, G4VXTRenergyLoss::fVarAngle, and G4VXTRenergyLoss::GetStackFactor().

◆ AngleXTRdEdx()

G4double G4VXTRenergyLoss::AngleXTRdEdx ( G4double  varAngle)
inherited

Definition at line 915 of file G4VXTRenergyLoss.cc.

916{
917 G4double result;
918 G4double sum = 0., tmp1, tmp2, tmp = 0., cof1, cof2, cofMin, cofPHC, energy1,
919 energy2;
920 G4int k, kMax, kMin, i;
921
922 cofPHC = twopi * hbarc;
923
924 cof1 = (fPlateThick + fGasThick) * (1. / fGamma / fGamma + varAngle);
926
927 cofMin = std::sqrt(cof1 * cof2);
928 cofMin /= cofPHC;
929
930 kMin = G4int(cofMin);
931 if(cofMin > kMin)
932 kMin++;
933
934 kMax = kMin + 9;
935
936 for(k = kMin; k <= kMax; ++k)
937 {
938 tmp1 = cofPHC * k;
939 tmp2 = std::sqrt(tmp1 * tmp1 - cof1 * cof2);
940 energy1 = (tmp1 + tmp2) / cof1;
941 energy2 = (tmp1 - tmp2) / cof1;
942
943 for(i = 0; i < 2; ++i)
944 {
945 if(i == 0)
946 {
947 if(energy1 > fTheMaxEnergyTR || energy1 < fTheMinEnergyTR)
948 continue;
949
950 tmp1 =
951 (energy1 * energy1 * (1. / fGamma / fGamma + varAngle) + fSigma1) *
952 fPlateThick / (4 * hbarc * energy1);
953 tmp2 = std::sin(tmp1);
954 tmp = energy1 * tmp2 * tmp2;
955 tmp2 = fPlateThick / (4. * tmp1);
956 tmp1 =
957 hbarc * energy1 /
958 (energy1 * energy1 * (1. / fGamma / fGamma + varAngle) + fSigma2);
959 tmp *= (tmp1 - tmp2) * (tmp1 - tmp2);
960 tmp1 = cof1 / (4. * hbarc) - cof2 / (4. * hbarc * energy1 * energy1);
961 tmp2 = std::abs(tmp1);
962
963 if(tmp2 > 0.)
964 tmp /= tmp2;
965 else
966 continue;
967 }
968 else
969 {
970 if(energy2 > fTheMaxEnergyTR || energy2 < fTheMinEnergyTR)
971 continue;
972
973 tmp1 =
974 (energy2 * energy2 * (1. / fGamma / fGamma + varAngle) + fSigma1) *
975 fPlateThick / (4. * hbarc * energy2);
976 tmp2 = std::sin(tmp1);
977 tmp = energy2 * tmp2 * tmp2;
978 tmp2 = fPlateThick / (4. * tmp1);
979 tmp1 =
980 hbarc * energy2 /
981 (energy2 * energy2 * (1. / fGamma / fGamma + varAngle) + fSigma2);
982 tmp *= (tmp1 - tmp2) * (tmp1 - tmp2);
983 tmp1 = cof1 / (4. * hbarc) - cof2 / (4. * hbarc * energy2 * energy2);
984 tmp2 = std::abs(tmp1);
985
986 if(tmp2 > 0.)
987 tmp /= tmp2;
988 else
989 continue;
990 }
991 sum += tmp;
992 }
993 }
994 result = 4. * pi * fPlateNumber * sum * varAngle;
995 result /= hbarc * hbarc;
996
997 return result;
998}
static constexpr double twopi
Definition: G4SIunits.hh:56
static constexpr double pi
Definition: G4SIunits.hh:55
int G4int
Definition: G4Types.hh:85
float hbarc
Definition: hepunit.py:264

References G4VXTRenergyLoss::fGamma, G4VXTRenergyLoss::fGasThick, G4VXTRenergyLoss::fPlateNumber, G4VXTRenergyLoss::fPlateThick, G4VXTRenergyLoss::fSigma1, G4VXTRenergyLoss::fSigma2, G4VXTRenergyLoss::fTheMaxEnergyTR, G4VXTRenergyLoss::fTheMinEnergyTR, source.hepunit::hbarc, BoundingBox::kMax, BoundingBox::kMin, pi, and twopi.

Referenced by G4VXTRenergyLoss::BuildGlobalAngleTable().

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

◆ BuildAngleForEnergyBank()

void G4VXTRenergyLoss::BuildAngleForEnergyBank ( )
inherited

Definition at line 394 of file G4VXTRenergyLoss.cc.

395{
396
397 if( ( this->GetProcessName() == "TranspRegXTRadiator" ||
398 this->GetProcessName() == "TranspRegXTRmodel" ||
399 this->GetProcessName() == "RegularXTRadiator" ||
400 this->GetProcessName() == "RegularXTRmodel" ) && fFastAngle ) // ffastAngle=true!
401 {
402 BuildAngleTable(); // by sum of delta-functions
403 return;
404 }
405 G4int i, iTkin, iTR;
406 G4double angleSum = 0.0;
407
408 fGammaTkinCut = 0.0;
409
410 // setting of min/max TR energies
413 else
415
418 else
420
421 G4PhysicsLogVector* energyVector =
423
425 integral;
426
427 G4cout.precision(4);
428 G4Timer timer;
429 timer.Start();
430
431 for(iTkin = 0; iTkin < fTotBin; ++iTkin) // Lorentz factor loop
432 {
433 fGamma =
435
438 else if(fMaxThetaTR < fTheMinAngle)
440
442
443 for(iTR = 0; iTR < fBinTR; ++iTR)
444 {
445 angleSum = 0.0;
446 fEnergy = energyVector->GetLowEdgeEnergy(iTR);
447
448 // log-vector to increase number of thin bins for small angles
450
451
452
453 angleVector->PutValue(fBinTR - 1, angleSum);
454
455 for(i = fBinTR - 2; i >= 0; --i)
456 {
457 // Legendre96 or Legendre10
458
459 angleSum +=
460 integral.Legendre10(this, &G4VXTRenergyLoss::SpectralAngleXTRdEdx,
461 angleVector->GetLowEdgeEnergy(i),
462 angleVector->GetLowEdgeEnergy(i + 1));
463
464 angleVector->PutValue(i, angleSum);
465 }
466 fAngleForEnergyTable->insertAt(iTR, angleVector);
467 }
469 }
470 timer.Stop();
471 G4cout.precision(6);
472 if(verboseLevel > 0)
473 {
474 G4cout << G4endl;
475 G4cout << "total time for build X-ray TR angle for energy loss tables = "
476 << timer.GetUserElapsed() << " s" << G4endl;
477 }
478 fGamma = 0.;
479 delete energyVector;
480}
void insertAt(std::size_t, G4PhysicsVector *)
G4double GetLowEdgeEnergy(const std::size_t index) const
void PutValue(const std::size_t index, const G4double value)
void Stop()
G4double GetUserElapsed() const
Definition: G4Timer.cc:143
void Start()
G4int verboseLevel
Definition: G4VProcess.hh:356
const G4String & GetProcessName() const
Definition: G4VProcess.hh:382
G4PhysicsTable * fAngleForEnergyTable
G4PhysicsLogVector * fProtonEnergyVector
G4double SpectralAngleXTRdEdx(G4double varAngle)
std::vector< G4PhysicsTable * > fAngleBank
float proton_mass_c2
Definition: hepunit.py:274

References G4VXTRenergyLoss::BuildAngleTable(), G4VXTRenergyLoss::fAngleBank, G4VXTRenergyLoss::fAngleForEnergyTable, G4VXTRenergyLoss::fBinTR, G4VXTRenergyLoss::fEnergy, G4VXTRenergyLoss::fFastAngle, G4VXTRenergyLoss::fGamma, G4VXTRenergyLoss::fGammaTkinCut, G4VXTRenergyLoss::fMaxEnergyTR, G4VXTRenergyLoss::fMaxThetaTR, G4VXTRenergyLoss::fMinEnergyTR, G4VXTRenergyLoss::fMinThetaTR, G4VXTRenergyLoss::fProtonEnergyVector, G4VXTRenergyLoss::fTheMaxAngle, G4VXTRenergyLoss::fTheMaxEnergyTR, G4VXTRenergyLoss::fTheMinAngle, G4VXTRenergyLoss::fTheMinEnergyTR, G4VXTRenergyLoss::fTotBin, G4cout, G4endl, G4VXTRenergyLoss::G4VXTRenergyLoss(), G4PhysicsVector::GetLowEdgeEnergy(), G4VProcess::GetProcessName(), G4Timer::GetUserElapsed(), G4PhysicsTable::insertAt(), source.hepunit::proton_mass_c2, G4PhysicsVector::PutValue(), G4VXTRenergyLoss::SpectralAngleXTRdEdx(), G4Timer::Start(), G4Timer::Stop(), and G4VProcess::verboseLevel.

Referenced by G4VXTRenergyLoss::BuildPhysicsTable().

◆ BuildAngleTable()

void G4VXTRenergyLoss::BuildAngleTable ( )
inherited

Definition at line 485 of file G4VXTRenergyLoss.cc.

486{
487 G4int iTkin, iTR;
489
490 fGammaTkinCut = 0.0;
491
492 // setting of min/max TR energies
495 else
497
500 else
502
503 G4cout.precision(4);
504 G4Timer timer;
505 timer.Start();
506 if(verboseLevel > 0)
507 {
508 G4cout << G4endl << "Lorentz Factor" << "\t"
509 << "XTR photon number" << G4endl << G4endl;
510 }
511 for(iTkin = 0; iTkin < fTotBin; ++iTkin) // Lorentz factor loop
512 {
513 fGamma =
515
516 // fMaxThetaTR = 25. * 2500.0 / (fGamma * fGamma); // theta^2
517
520 else
521 {
524 }
525
527
528 for(iTR = 0; iTR < fBinTR; ++iTR)
529 {
531
533
534 fAngleForEnergyTable->insertAt(iTR, angleVector);
535 }
537 }
538 timer.Stop();
539 G4cout.precision(6);
540 if(verboseLevel > 0)
541 {
542 G4cout << G4endl;
543 G4cout << "total time for build XTR angle for given energy tables = "
544 << timer.GetUserElapsed() << " s" << G4endl;
545 }
546 fGamma = 0.;
547
548 return;
549}
G4PhysicsLogVector * fXTREnergyVector
G4PhysicsFreeVector * GetAngleVector(G4double energy, G4int n)

References G4INCL::KinematicsUtils::energy(), G4VXTRenergyLoss::fAngleBank, G4VXTRenergyLoss::fAngleForEnergyTable, G4VXTRenergyLoss::fBinTR, G4VXTRenergyLoss::fGamma, G4VXTRenergyLoss::fGammaTkinCut, G4VXTRenergyLoss::fMaxEnergyTR, G4VXTRenergyLoss::fMaxThetaTR, G4VXTRenergyLoss::fMinEnergyTR, G4VXTRenergyLoss::fProtonEnergyVector, G4VXTRenergyLoss::fTheMaxAngle, G4VXTRenergyLoss::fTheMaxEnergyTR, G4VXTRenergyLoss::fTheMinAngle, G4VXTRenergyLoss::fTheMinEnergyTR, G4VXTRenergyLoss::fTotBin, G4VXTRenergyLoss::fXTREnergyVector, G4cout, G4endl, G4VXTRenergyLoss::GetAngleVector(), G4PhysicsVector::GetLowEdgeEnergy(), G4Timer::GetUserElapsed(), G4PhysicsTable::insertAt(), source.hepunit::proton_mass_c2, G4Timer::Start(), G4Timer::Stop(), and G4VProcess::verboseLevel.

Referenced by G4VXTRenergyLoss::BuildAngleForEnergyBank().

◆ BuildEnergyTable()

void G4VXTRenergyLoss::BuildEnergyTable ( )
inherited

Definition at line 299 of file G4VXTRenergyLoss.cc.

300{
301 G4int iTkin, iTR, iPlace;
302 G4double radiatorCof = 1.0; // for tuning of XTR yield
303 G4double energySum = 0.0;
304
308
309 fGammaTkinCut = 0.0;
310
311 // setting of min/max TR energies
314 else
316
319 else
321
323 integral;
324
325 G4cout.precision(4);
326 G4Timer timer;
327 timer.Start();
328
329 if(verboseLevel > 0)
330 {
331 G4cout << G4endl;
332 G4cout << "Lorentz Factor"
333 << "\t"
334 << "XTR photon number" << G4endl;
335 G4cout << G4endl;
336 }
337 for(iTkin = 0; iTkin < fTotBin; ++iTkin) // Lorentz factor loop
338 {
339 G4PhysicsLogVector* energyVector =
341
342 fGamma =
344
345 fMaxThetaTR = 25. * 2500.0 / (fGamma * fGamma); // theta^2
346
349 else if(fMaxThetaTR < fTheMinAngle)
351
352 energySum = 0.0;
353
354 energyVector->PutValue(fBinTR - 1, energySum);
355
356 for(iTR = fBinTR - 2; iTR >= 0; --iTR)
357 {
358 // Legendre96 or Legendre10
359
360 energySum += radiatorCof * fCofTR *
361
362 // integral.Legendre10(this, &G4VXTRenergyLoss::SpectralXTRdEdx,
363
364 integral.Legendre96(this, &G4VXTRenergyLoss::SpectralXTRdEdx,
365
366 energyVector->GetLowEdgeEnergy(iTR),
367 energyVector->GetLowEdgeEnergy(iTR + 1));
368
369 energyVector->PutValue(iTR, energySum / fTotalDist);
370 }
371 iPlace = iTkin;
372 fEnergyDistrTable->insertAt(iPlace, energyVector);
373
374 if(verboseLevel > 0)
375 {
376 G4cout << fGamma << "\t" << energySum << G4endl;
377 }
378 }
379 timer.Stop();
380 G4cout.precision(6);
381 if(verboseLevel > 0)
382 {
383 G4cout << G4endl;
384 G4cout << "total time for build X-ray TR energy loss tables = "
385 << timer.GetUserElapsed() << " s" << G4endl;
386 }
387 fGamma = 0.;
388 return;
389}
G4PhysicsTable * fEnergyDistrTable
G4PhysicsTable * fAngleDistrTable
static constexpr G4double fCofTR
virtual G4double SpectralXTRdEdx(G4double energy)

References G4VXTRenergyLoss::fAngleDistrTable, G4VXTRenergyLoss::fAngleRadDistr, G4VXTRenergyLoss::fBinTR, G4VXTRenergyLoss::fCofTR, G4VXTRenergyLoss::fEnergyDistrTable, G4VXTRenergyLoss::fGamma, G4VXTRenergyLoss::fGammaTkinCut, G4VXTRenergyLoss::fMaxEnergyTR, G4VXTRenergyLoss::fMaxThetaTR, G4VXTRenergyLoss::fMinEnergyTR, G4VXTRenergyLoss::fProtonEnergyVector, G4VXTRenergyLoss::fTheMaxAngle, G4VXTRenergyLoss::fTheMaxEnergyTR, G4VXTRenergyLoss::fTheMinAngle, G4VXTRenergyLoss::fTheMinEnergyTR, G4VXTRenergyLoss::fTotalDist, G4VXTRenergyLoss::fTotBin, G4cout, G4endl, G4VXTRenergyLoss::G4VXTRenergyLoss(), G4PhysicsVector::GetLowEdgeEnergy(), G4Timer::GetUserElapsed(), G4PhysicsTable::insertAt(), source.hepunit::proton_mass_c2, G4PhysicsVector::PutValue(), G4VXTRenergyLoss::SpectralXTRdEdx(), G4Timer::Start(), G4Timer::Stop(), and G4VProcess::verboseLevel.

Referenced by G4VXTRenergyLoss::BuildPhysicsTable().

◆ BuildGlobalAngleTable()

void G4VXTRenergyLoss::BuildGlobalAngleTable ( )
inherited

Definition at line 628 of file G4VXTRenergyLoss.cc.

629{
630 G4int iTkin, iTR, iPlace;
631 G4double radiatorCof = 1.0; // for tuning of XTR yield
632 G4double angleSum;
634
635 fGammaTkinCut = 0.0;
636
637 // setting of min/max TR energies
640 else
642
645 else
647
648 G4cout.precision(4);
649 G4Timer timer;
650 timer.Start();
651 if(verboseLevel > 0)
652 {
653 G4cout << G4endl;
654 G4cout << "Lorentz Factor"
655 << "\t"
656 << "XTR photon number" << G4endl;
657 G4cout << G4endl;
658 }
659 for(iTkin = 0; iTkin < fTotBin; ++iTkin) // Lorentz factor loop
660 {
661 fGamma =
663
664 // fMaxThetaTR = 25.0 / (fGamma * fGamma); // theta^2
665 // fMaxThetaTR = 1.e-4; // theta^2
666
669 else
670 {
673 }
674 G4PhysicsLinearVector* angleVector =
675 // G4PhysicsLogVector* angleVector =
677 // new G4PhysicsLogVector(1.e-8, fMaxThetaTR, fBinTR);
678
679 angleSum = 0.0;
680
682 integral;
683
684 angleVector->PutValue(fBinTR - 1, angleSum);
685
686 for(iTR = fBinTR - 2; iTR >= 0; --iTR)
687 {
688 angleSum += radiatorCof * fCofTR *
689 integral.Legendre96(this, &G4VXTRenergyLoss::AngleXTRdEdx,
690 angleVector->GetLowEdgeEnergy(iTR),
691 angleVector->GetLowEdgeEnergy(iTR + 1));
692
693 angleVector->PutValue(iTR, angleSum);
694 }
695 if(verboseLevel > 1)
696 {
697 G4cout << fGamma << "\t" << angleSum << G4endl;
698 }
699 iPlace = iTkin;
700 fAngleDistrTable->insertAt(iPlace, angleVector);
701 }
702 timer.Stop();
703 G4cout.precision(6);
704 if(verboseLevel > 0)
705 {
706 G4cout << G4endl;
707 G4cout << "total time for build X-ray TR angle tables = "
708 << timer.GetUserElapsed() << " s" << G4endl;
709 }
710 fGamma = 0.;
711
712 return;
713}
G4double AngleXTRdEdx(G4double varAngle)

References G4VXTRenergyLoss::AngleXTRdEdx(), G4VXTRenergyLoss::fAngleDistrTable, G4VXTRenergyLoss::fBinTR, G4VXTRenergyLoss::fCofTR, G4VXTRenergyLoss::fGamma, G4VXTRenergyLoss::fGammaTkinCut, G4VXTRenergyLoss::fMaxEnergyTR, G4VXTRenergyLoss::fMaxThetaTR, G4VXTRenergyLoss::fMinEnergyTR, G4VXTRenergyLoss::fProtonEnergyVector, G4VXTRenergyLoss::fTheMaxAngle, G4VXTRenergyLoss::fTheMaxEnergyTR, G4VXTRenergyLoss::fTheMinAngle, G4VXTRenergyLoss::fTheMinEnergyTR, G4VXTRenergyLoss::fTotBin, G4cout, G4endl, G4VXTRenergyLoss::G4VXTRenergyLoss(), G4PhysicsVector::GetLowEdgeEnergy(), G4Timer::GetUserElapsed(), G4PhysicsTable::insertAt(), source.hepunit::proton_mass_c2, G4PhysicsVector::PutValue(), G4Timer::Start(), G4Timer::Stop(), and G4VProcess::verboseLevel.

◆ BuildPhysicsTable()

void G4VXTRenergyLoss::BuildPhysicsTable ( const G4ParticleDefinition pd)
overridevirtualinherited

Reimplemented from G4VProcess.

Definition at line 276 of file G4VXTRenergyLoss.cc.

277{
278 if(pd.GetPDGCharge() == 0.)
279 {
280 G4Exception("G4VXTRenergyLoss::BuildPhysicsTable", "Notification",
281 JustWarning, "XTR initialisation for neutral particle ?!");
282 }
284
286 {
287 if(verboseLevel > 0)
288 {
289 G4cout
290 << "Build angle for energy distribution according the current radiator"
291 << G4endl;
292 }
294 }
295}
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
G4double GetPDGCharge() const

References G4VXTRenergyLoss::BuildAngleForEnergyBank(), G4VXTRenergyLoss::BuildEnergyTable(), G4VXTRenergyLoss::fAngleRadDistr, G4cout, G4endl, G4Exception(), G4ParticleDefinition::GetPDGCharge(), JustWarning, and G4VProcess::verboseLevel.

◆ BuildTable()

void G4VXTRenergyLoss::BuildTable ( )
inlineinherited

Definition at line 90 of file G4VXTRenergyLoss.hh.

90{};

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

◆ ClearNumberOfInteractionLengthLeft()

void G4VProcess::ClearNumberOfInteractionLengthLeft ( )
inlineprotectedinherited

◆ ComputeGasPhotoAbsCof()

void G4VXTRenergyLoss::ComputeGasPhotoAbsCof ( )
inherited

Definition at line 1090 of file G4VXTRenergyLoss.cc.

1091{
1092 const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
1093 const G4Material* mat = (*theMaterialTable)[fMatIndex2];
1095 return;
1096}
std::vector< G4Material * > G4MaterialTable
G4SandiaTable * GetSandiaTable() const
Definition: G4Material.hh:225
static G4MaterialTable * GetMaterialTable()
Definition: G4Material.cc:672
G4SandiaTable * fGasPhotoAbsCof

References G4VXTRenergyLoss::fGasPhotoAbsCof, G4VXTRenergyLoss::fMatIndex2, G4Material::GetMaterialTable(), and G4Material::GetSandiaTable().

Referenced by G4VXTRenergyLoss::G4VXTRenergyLoss().

◆ ComputePlatePhotoAbsCof()

void G4VXTRenergyLoss::ComputePlatePhotoAbsCof ( )
inherited

Definition at line 1032 of file G4VXTRenergyLoss.cc.

1033{
1034 const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
1035 const G4Material* mat = (*theMaterialTable)[fMatIndex1];
1037
1038 return;
1039}
G4SandiaTable * fPlatePhotoAbsCof

References G4VXTRenergyLoss::fMatIndex1, G4VXTRenergyLoss::fPlatePhotoAbsCof, G4Material::GetMaterialTable(), and G4Material::GetSandiaTable().

Referenced by G4VXTRenergyLoss::G4VXTRenergyLoss().

◆ DumpInfo()

void G4GammaXTRadiator::DumpInfo ( ) const
inlineoverridevirtual

Reimplemented from G4VXTRenergyLoss.

Definition at line 63 of file G4GammaXTRadiator.hh.

void ProcessDescription(std::ostream &) const override

References G4cout, and ProcessDescription().

◆ EndTracking()

void G4VProcess::EndTracking ( )
virtualinherited

◆ GetAlphaGas()

G4double G4VXTRenergyLoss::GetAlphaGas ( )
inlineinherited

Definition at line 157 of file G4VXTRenergyLoss.hh.

157{ return fAlphaGas; };

References G4VXTRenergyLoss::fAlphaGas.

◆ GetAlphaPlate()

G4double G4VXTRenergyLoss::GetAlphaPlate ( )
inlineinherited

Definition at line 159 of file G4VXTRenergyLoss.hh.

159{ return fAlphaPlate; };

References G4VXTRenergyLoss::fAlphaPlate.

◆ GetAngleRadDistr()

G4bool G4VXTRenergyLoss::GetAngleRadDistr ( )
inlineinherited

Definition at line 186 of file G4VXTRenergyLoss.hh.

186{ return fAngleRadDistr; };

References G4VXTRenergyLoss::fAngleRadDistr.

◆ GetAngleVector()

G4PhysicsFreeVector * G4VXTRenergyLoss::GetAngleVector ( G4double  energy,
G4int  n 
)
inherited

Definition at line 553 of file G4VXTRenergyLoss.cc.

554{
555 G4double theta = 0., result, tmp = 0., cof1, cof2, cofMin, cofPHC,
556 angleSum = 0.;
557 G4int iTheta, k, kMin;
558
559 G4PhysicsFreeVector* angleVector = new G4PhysicsFreeVector(n);
560
561 cofPHC = 4. * pi * hbarc;
562 tmp = (fSigma1 - fSigma2) / cofPHC / energy;
563 cof1 = fPlateThick * tmp;
564 cof2 = fGasThick * tmp;
565
566 cofMin = energy * (fPlateThick + fGasThick) / fGamma / fGamma;
567 cofMin += (fPlateThick * fSigma1 + fGasThick * fSigma2) / energy;
568 cofMin /= cofPHC;
569
570 kMin = G4int(cofMin);
571 if(cofMin > kMin)
572 kMin++;
573
574 if(verboseLevel > 2)
575 {
576 G4cout << "n-1 = " << n - 1
577 << "; theta = " << std::sqrt(fMaxThetaTR) * fGamma
578 << "; tmp = " << 0. << "; angleSum = " << angleSum << G4endl;
579 }
580
581 for(iTheta = n - 1; iTheta >= 1; --iTheta)
582 {
583 k = iTheta - 1 + kMin;
584 tmp = pi * fPlateThick * (k + cof2) / (fPlateThick + fGasThick);
585 result = (k - cof1) * (k - cof1) * (k + cof2) * (k + cof2);
586 tmp = std::sin(tmp) * std::sin(tmp) * std::abs(k - cofMin) / result;
587
588 if(k == kMin && kMin == G4int(cofMin))
589 {
590 // angleSum += 0.5 * tmp;
591 angleSum += tmp; // ATLAS TB
592 }
593 else if(iTheta == n - 1)
594 ;
595 else
596 {
597 angleSum += tmp;
598 }
599 theta = std::abs(k - cofMin) * cofPHC / energy / (fPlateThick + fGasThick);
600
601 if(verboseLevel > 2)
602 {
603 G4cout << "iTheta = " << iTheta << "; k = " << k
604 << "; theta = " << std::sqrt(theta) * fGamma << "; tmp = " << tmp
605 << "; angleSum = " << angleSum << G4endl;
606 }
607 angleVector->PutValue(iTheta, theta, angleSum);
608 }
609 if(theta > 0.)
610 {
611 // angleSum += 0.5 * tmp;
612 angleSum += 0.; // ATLAS TB
613 theta = 0.;
614 }
615 if(verboseLevel > 2)
616 {
617 G4cout << "iTheta = " << iTheta << "; theta = " << std::sqrt(theta) * fGamma
618 << "; tmp = " << tmp << "; angleSum = " << angleSum << G4endl;
619 }
620 angleVector->PutValue(iTheta, theta, angleSum);
621
622 return angleVector;
623}
void PutValue(const std::size_t index, const G4double e, const G4double value)

References G4INCL::KinematicsUtils::energy(), G4VXTRenergyLoss::fGamma, G4VXTRenergyLoss::fGasThick, G4VXTRenergyLoss::fMaxThetaTR, G4VXTRenergyLoss::fPlateThick, G4VXTRenergyLoss::fSigma1, G4VXTRenergyLoss::fSigma2, G4cout, G4endl, source.hepunit::hbarc, BoundingBox::kMin, CLHEP::detail::n, pi, G4PhysicsFreeVector::PutValue(), and G4VProcess::verboseLevel.

Referenced by G4VXTRenergyLoss::BuildAngleTable().

◆ GetAngleXTR()

G4double G4VXTRenergyLoss::GetAngleXTR ( G4int  iTR,
G4double  position,
G4int  iAngle 
)
inherited

Definition at line 1496 of file G4VXTRenergyLoss.cc.

1498{
1499 G4double x1, x2, y1, y2, result;
1500
1501 if( iTransfer == 0 )
1502 // if( iTransfer == 1 ) // ATLAS TB
1503 {
1504 result = (*fAngleForEnergyTable)(iPlace)->GetLowEdgeEnergy(iTransfer);
1505 }
1506 else
1507 {
1508 y1 = (*(*fAngleForEnergyTable)(iPlace))(iTransfer - 1);
1509 y2 = (*(*fAngleForEnergyTable)(iPlace))(iTransfer);
1510
1511 x1 = (*fAngleForEnergyTable)(iPlace)->GetLowEdgeEnergy(iTransfer - 1);
1512 x2 = (*fAngleForEnergyTable)(iPlace)->GetLowEdgeEnergy(iTransfer);
1513
1514 if(x1 == x2) result = x2;
1515 else
1516 {
1517 if( y1 == y2 ) result = x1 + (x2 - x1) * G4UniformRand();
1518 else
1519 {
1520 result = x1 + (position - y1) * (x2 - x1) / (y2 - y1);
1521 // result = x1 + 0.1*(position - y1) * (x2 - x1) / (y2 - y1); // ATLAS TB
1522 // result = x1 + 0.05*(position - y1) * (x2 - x1) / (y2 - y1); // ATLAS TB
1523 }
1524 }
1525 }
1526 return result;
1527}
#define G4UniformRand()
Definition: Randomize.hh:52

References G4UniformRand.

Referenced by G4VXTRenergyLoss::GetRandomAngle().

◆ GetCompton()

G4bool G4VXTRenergyLoss::GetCompton ( )
inlineinherited

Definition at line 152 of file G4VXTRenergyLoss.hh.

152{ return fCompton; };

References G4VXTRenergyLoss::fCompton.

◆ GetComptonPerAtom()

G4double G4VXTRenergyLoss::GetComptonPerAtom ( G4double  GammaEnergy,
G4double  Z 
)
inherited

Definition at line 1232 of file G4VXTRenergyLoss.cc.

1233{
1234 G4double CrossSection = 0.0;
1235 if(Z < 0.9999)
1236 return CrossSection;
1237 if(GammaEnergy < 0.1 * keV)
1238 return CrossSection;
1239 if(GammaEnergy > (100. * GeV / Z))
1240 return CrossSection;
1241
1242 static constexpr G4double a = 20.0;
1243 static constexpr G4double b = 230.0;
1244 static constexpr G4double c = 440.0;
1245
1246 static constexpr G4double d1 = 2.7965e-1 * barn, d2 = -1.8300e-1 * barn,
1247 d3 = 6.7527 * barn, d4 = -1.9798e+1 * barn,
1248 e1 = 1.9756e-5 * barn, e2 = -1.0205e-2 * barn,
1249 e3 = -7.3913e-2 * barn, e4 = 2.7079e-2 * barn,
1250 f1 = -3.9178e-7 * barn, f2 = 6.8241e-5 * barn,
1251 f3 = 6.0480e-5 * barn, f4 = 3.0274e-4 * barn;
1252
1253 G4double p1Z = Z * (d1 + e1 * Z + f1 * Z * Z);
1254 G4double p2Z = Z * (d2 + e2 * Z + f2 * Z * Z);
1255 G4double p3Z = Z * (d3 + e3 * Z + f3 * Z * Z);
1256 G4double p4Z = Z * (d4 + e4 * Z + f4 * Z * Z);
1257
1258 G4double T0 = 15.0 * keV;
1259 if(Z < 1.5)
1260 T0 = 40.0 * keV;
1261
1262 G4double X = std::max(GammaEnergy, T0) / electron_mass_c2;
1263 CrossSection =
1264 p1Z * std::log(1. + 2. * X) / X +
1265 (p2Z + p3Z * X + p4Z * X * X) / (1. + a * X + b * X * X + c * X * X * X);
1266
1267 // modification for low energy. (special case for Hydrogen)
1268 if(GammaEnergy < T0)
1269 {
1270 G4double dT0 = 1. * keV;
1271 X = (T0 + dT0) / electron_mass_c2;
1272 G4double sigma =
1273 p1Z * std::log(1. + 2. * X) / X +
1274 (p2Z + p3Z * X + p4Z * X * X) / (1. + a * X + b * X * X + c * X * X * X);
1275 G4double c1 = -T0 * (sigma - CrossSection) / (CrossSection * dT0);
1276 G4double c2 = 0.150;
1277 if(Z > 1.5)
1278 c2 = 0.375 - 0.0556 * std::log(Z);
1279 G4double y = std::log(GammaEnergy / T0);
1280 CrossSection *= std::exp(-y * (c1 + c2 * y));
1281 }
1282 return CrossSection;
1283}
static const G4double e4[47]
static const G4double e1[44]
static const G4double e2[44]
static const G4double e3[45]
static const G4double d1
static const G4double d2
static const G4double T0[78]
static constexpr double barn
Definition: G4SIunits.hh:85
static constexpr double keV
Definition: G4SIunits.hh:202
static constexpr double GeV
Definition: G4SIunits.hh:203
const G4int Z[17]
T max(const T t1, const T t2)
brief Return the largest of the two arguments
float electron_mass_c2
Definition: hepunit.py:273

References barn, d1, d2, e1, e2, e3, e4, source.hepunit::electron_mass_c2, GeV, keV, G4INCL::Math::max(), T0, and Z.

Referenced by G4VXTRenergyLoss::GetGasCompton(), and G4VXTRenergyLoss::GetPlateCompton().

◆ GetCurrentInteractionLength()

G4double G4VProcess::GetCurrentInteractionLength ( ) const
inlineinherited

◆ GetEnergy()

G4double G4VXTRenergyLoss::GetEnergy ( )
inlineinherited

Definition at line 148 of file G4VXTRenergyLoss.hh.

148{ return fEnergy; };

References G4VXTRenergyLoss::fEnergy.

◆ GetFastAngle()

G4bool G4VXTRenergyLoss::GetFastAngle ( )
inlineinherited

Definition at line 184 of file G4VXTRenergyLoss.hh.

184{ return fFastAngle; };

References G4VXTRenergyLoss::fFastAngle.

◆ GetGamma()

G4double G4VXTRenergyLoss::GetGamma ( )
inlineinherited

Definition at line 146 of file G4VXTRenergyLoss.hh.

146{ return fGamma; };

References G4VXTRenergyLoss::fGamma.

◆ GetGasComplexFZ()

G4complex G4VXTRenergyLoss::GetGasComplexFZ ( G4double  omega,
G4double  gamma,
G4double  varAngle 
)
inherited

Definition at line 1071 of file G4VXTRenergyLoss.cc.

1073{
1074 G4double cof, length, delta, real_v, image_v;
1075
1076 length = 0.5 * GetGasFormationZone(omega, gamma, varAngle);
1077 delta = length * GetGasLinearPhotoAbs(omega);
1078 cof = 1.0 / (1.0 + delta * delta);
1079
1080 real_v = length * cof;
1081 image_v = real_v * delta;
1082
1083 G4complex zone(real_v, image_v);
1084 return zone;
1085}
std::complex< G4double > G4complex
Definition: G4Types.hh:88
G4double GetGasFormationZone(G4double, G4double, G4double)
G4double GetGasLinearPhotoAbs(G4double)

References G4VXTRenergyLoss::GetGasFormationZone(), and G4VXTRenergyLoss::GetGasLinearPhotoAbs().

Referenced by G4StrawTubeXTRadiator::GetStackFactor(), and G4VXTRenergyLoss::OneInterfaceXTRdEdx().

◆ GetGasCompton()

G4double G4VXTRenergyLoss::GetGasCompton ( G4double  omega)
inherited

Definition at line 1210 of file G4VXTRenergyLoss.cc.

1211{
1212 G4int i, numberOfElements;
1213 G4double xSection = 0., nowZ, sumZ = 0.;
1214
1215 const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
1216 numberOfElements = (*theMaterialTable)[fMatIndex2]->GetNumberOfElements();
1217
1218 for(i = 0; i < numberOfElements; ++i)
1219 {
1220 nowZ = (*theMaterialTable)[fMatIndex2]->GetElement(i)->GetZ();
1221 sumZ += nowZ;
1222 xSection += GetComptonPerAtom(omega, nowZ);
1223 }
1224 xSection /= sumZ;
1225 xSection *= (*theMaterialTable)[fMatIndex2]->GetElectronDensity();
1226 return xSection;
1227}
G4double GetComptonPerAtom(G4double, G4double)

References G4VXTRenergyLoss::fMatIndex2, G4VXTRenergyLoss::GetComptonPerAtom(), and G4Material::GetMaterialTable().

Referenced by G4XTRTransparentRegRadModel::SpectralXTRdEdx().

◆ GetGasFormationZone()

G4double G4VXTRenergyLoss::GetGasFormationZone ( G4double  omega,
G4double  gamma,
G4double  varAngle 
)
inherited

◆ GetGasLinearPhotoAbs()

G4double G4VXTRenergyLoss::GetGasLinearPhotoAbs ( G4double  omega)
inherited

Definition at line 1101 of file G4VXTRenergyLoss.cc.

1102{
1103 G4double omega2, omega3, omega4;
1104
1105 omega2 = omega * omega;
1106 omega3 = omega2 * omega;
1107 omega4 = omega2 * omega2;
1108
1109 const G4double* SandiaCof = fGasPhotoAbsCof->GetSandiaCofForMaterial(omega);
1110 G4double cross = SandiaCof[0] / omega + SandiaCof[1] / omega2 +
1111 SandiaCof[2] / omega3 + SandiaCof[3] / omega4;
1112 return cross;
1113}
G4double GetSandiaCofForMaterial(G4int, G4int) const

References G4VXTRenergyLoss::fGasPhotoAbsCof, and G4SandiaTable::GetSandiaCofForMaterial().

Referenced by G4VXTRenergyLoss::GetGasComplexFZ(), G4VXTRenergyLoss::GetGasZmuProduct(), GetStackFactor(), G4GaussXTRadiator::GetStackFactor(), G4RegularXTRadiator::GetStackFactor(), G4StrawTubeXTRadiator::GetStackFactor(), G4TransparentRegXTRadiator::GetStackFactor(), G4XTRGammaRadModel::GetStackFactor(), G4XTRRegularRadModel::GetStackFactor(), G4XTRTransparentRegRadModel::GetStackFactor(), G4RegularXTRadiator::SpectralXTRdEdx(), G4XTRRegularRadModel::SpectralXTRdEdx(), and G4XTRTransparentRegRadModel::SpectralXTRdEdx().

◆ GetGasZmuProduct() [1/2]

void G4VXTRenergyLoss::GetGasZmuProduct ( )
inherited

Definition at line 1164 of file G4VXTRenergyLoss.cc.

1165{
1166 std::ofstream outGas("gasZmu.dat", std::ios::out);
1167 outGas.setf(std::ios::scientific, std::ios::floatfield);
1168 G4int i;
1169 G4double omega, varAngle, gamma;
1170 gamma = 10000.;
1171 varAngle = 1 / gamma / gamma;
1172 if(verboseLevel > 0)
1173 G4cout << "energy, keV" << "\t" << "Zmu for gas" << G4endl;
1174 for(i = 0; i < 100; ++i)
1175 {
1176 omega = (1.0 + i) * keV;
1177 if(verboseLevel > 1)
1178 G4cout << omega / keV << "\t" << GetGasZmuProduct(omega, gamma, varAngle)
1179 << "\t";
1180 if(verboseLevel > 0)
1181 outGas << omega / keV << "\t\t"
1182 << GetGasZmuProduct(omega, gamma, varAngle) << G4endl;
1183 }
1184 return;
1185}

References G4cout, G4endl, G4VXTRenergyLoss::GetGasZmuProduct(), keV, and G4VProcess::verboseLevel.

Referenced by G4VXTRenergyLoss::GetGasZmuProduct().

◆ GetGasZmuProduct() [2/2]

G4double G4VXTRenergyLoss::GetGasZmuProduct ( G4double  omega,
G4double  gamma,
G4double  varAngle 
)
inherited

Definition at line 1154 of file G4VXTRenergyLoss.cc.

1156{
1157 return GetGasFormationZone(omega, gamma, varAngle) *
1158 GetGasLinearPhotoAbs(omega);
1159}

References G4VXTRenergyLoss::GetGasFormationZone(), and G4VXTRenergyLoss::GetGasLinearPhotoAbs().

◆ GetMasterProcess()

const G4VProcess * G4VProcess::GetMasterProcess ( ) const
inlineinherited

◆ GetMaxEnergyTR()

G4double G4VXTRenergyLoss::GetMaxEnergyTR ( )
inlineinherited

Definition at line 169 of file G4VXTRenergyLoss.hh.

169{ return fMaxEnergyTR; };

References G4VXTRenergyLoss::fMaxEnergyTR.

◆ GetMaxThetaTR()

G4double G4VXTRenergyLoss::GetMaxThetaTR ( )
inlineinherited

Definition at line 179 of file G4VXTRenergyLoss.hh.

179{ return fMaxThetaTR; };

References G4VXTRenergyLoss::fMaxThetaTR.

◆ GetMeanFreePath()

G4double G4VXTRenergyLoss::GetMeanFreePath ( const G4Track aTrack,
G4double  previousStepSize,
G4ForceCondition condition 
)
overridevirtualinherited

Implements G4VDiscreteProcess.

Definition at line 200 of file G4VXTRenergyLoss.cc.

202{
203 G4int iTkin, iPlace;
204 G4double lambda, sigma, kinEnergy, mass, gamma;
205 G4double charge, chargeSq, massRatio, TkinScaled;
206 G4double E1, E2, W, W1, W2;
207
209
210 if(aTrack.GetVolume()->GetLogicalVolume() != fEnvelope)
211 lambda = DBL_MAX;
212 else
213 {
214 const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle();
215 kinEnergy = aParticle->GetKineticEnergy();
216 mass = aParticle->GetDefinition()->GetPDGMass();
217 gamma = 1.0 + kinEnergy / mass;
218 if(verboseLevel > 1)
219 {
220 G4cout << " gamma = " << gamma << "; fGamma = " << fGamma << G4endl;
221 }
222
223 if(std::fabs(gamma - fGamma) < 0.05 * gamma)
224 lambda = fLambda;
225 else
226 {
227 charge = aParticle->GetDefinition()->GetPDGCharge();
228 chargeSq = charge * charge;
229 massRatio = proton_mass_c2 / mass;
230 TkinScaled = kinEnergy * massRatio;
231
232 for(iTkin = 0; iTkin < fTotBin; ++iTkin)
233 {
234 if(TkinScaled < fProtonEnergyVector->GetLowEdgeEnergy(iTkin))
235 break;
236 }
237 iPlace = iTkin - 1;
238
239 if(iTkin == 0)
240 lambda = DBL_MAX; // Tkin is too small, neglect of TR photon generation
241 else // general case: Tkin between two vectors of the material
242 {
243 if(iTkin == fTotBin)
244 {
245 sigma = (*(*fEnergyDistrTable)(iPlace))(0) * chargeSq;
246 }
247 else
248 {
249 E1 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin - 1);
251 W = 1.0 / (E2 - E1);
252 W1 = (E2 - TkinScaled) * W;
253 W2 = (TkinScaled - E1) * W;
254 sigma = ((*(*fEnergyDistrTable)(iPlace))(0) * W1 +
255 (*(*fEnergyDistrTable)(iPlace + 1))(0) * W2) *
256 chargeSq;
257 }
258 if(sigma < DBL_MIN)
259 lambda = DBL_MAX;
260 else
261 lambda = 1. / sigma;
262 fLambda = lambda;
263 fGamma = gamma;
264 if(verboseLevel > 1)
265 {
266 G4cout << " lambda = " << lambda / mm << " mm" << G4endl;
267 }
268 }
269 }
270 }
271 return lambda;
272}
@ NotForced
static constexpr double mm
Definition: G4SIunits.hh:95
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
G4VPhysicalVolume * GetVolume() const
const G4DynamicParticle * GetDynamicParticle() const
G4LogicalVolume * GetLogicalVolume() const
G4LogicalVolume * fEnvelope
#define DBL_MIN
Definition: templates.hh:54
#define DBL_MAX
Definition: templates.hh:62

References condition(), DBL_MAX, DBL_MIN, G4VXTRenergyLoss::fEnergyDistrTable, G4VXTRenergyLoss::fEnvelope, G4VXTRenergyLoss::fGamma, G4VXTRenergyLoss::fLambda, G4VXTRenergyLoss::fProtonEnergyVector, G4VXTRenergyLoss::fTotBin, G4cout, G4endl, G4DynamicParticle::GetDefinition(), G4Track::GetDynamicParticle(), G4DynamicParticle::GetKineticEnergy(), G4VPhysicalVolume::GetLogicalVolume(), G4PhysicsVector::GetLowEdgeEnergy(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetPDGMass(), G4Track::GetVolume(), G4InuclParticleNames::lambda, mm, NotForced, source.hepunit::proton_mass_c2, and G4VProcess::verboseLevel.

◆ GetMinEnergyTR()

G4double G4VXTRenergyLoss::GetMinEnergyTR ( )
inlineinherited

Definition at line 167 of file G4VXTRenergyLoss.hh.

167{ return fMinEnergyTR; };

References G4VXTRenergyLoss::fMinEnergyTR.

◆ GetMinThetaTR()

G4double G4VXTRenergyLoss::GetMinThetaTR ( )
inlineinherited

Definition at line 177 of file G4VXTRenergyLoss.hh.

177{ return fMinThetaTR; };

References G4VXTRenergyLoss::fMinThetaTR.

◆ GetNumberOfInteractionLengthLeft()

G4double G4VProcess::GetNumberOfInteractionLengthLeft ( ) const
inlineinherited

Definition at line 431 of file G4VProcess.hh.

432{
434}

References G4VProcess::theNumberOfInteractionLengthLeft.

◆ GetNumberOfPhotons()

void G4VXTRenergyLoss::GetNumberOfPhotons ( )
inherited

Definition at line 1354 of file G4VXTRenergyLoss.cc.

1355{
1356 G4int iTkin;
1357 G4double gamma, numberE;
1358
1359 std::ofstream outEn("numberE.dat", std::ios::out);
1360 outEn.setf(std::ios::scientific, std::ios::floatfield);
1361
1362 std::ofstream outAng("numberAng.dat", std::ios::out);
1363 outAng.setf(std::ios::scientific, std::ios::floatfield);
1364
1365 for(iTkin = 0; iTkin < fTotBin; ++iTkin) // Lorentz factor loop
1366 {
1367 gamma =
1369 numberE = (*(*fEnergyDistrTable)(iTkin))(0);
1370 if(verboseLevel > 1)
1371 G4cout << gamma << "\t\t" << numberE << "\t" << G4endl;
1372 if(verboseLevel > 0)
1373 outEn << gamma << "\t\t" << numberE << G4endl;
1374 }
1375 return;
1376}

References G4VXTRenergyLoss::fProtonEnergyVector, G4VXTRenergyLoss::fTotBin, G4cout, G4endl, G4PhysicsVector::GetLowEdgeEnergy(), source.hepunit::proton_mass_c2, and G4VProcess::verboseLevel.

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

◆ GetPlateComplexFZ()

G4complex G4VXTRenergyLoss::GetPlateComplexFZ ( G4double  omega,
G4double  gamma,
G4double  varAngle 
)
inherited

Definition at line 1013 of file G4VXTRenergyLoss.cc.

1015{
1016 G4double cof, length, delta, real_v, image_v;
1017
1018 length = 0.5 * GetPlateFormationZone(omega, gamma, varAngle);
1019 delta = length * GetPlateLinearPhotoAbs(omega);
1020 cof = 1.0 / (1.0 + delta * delta);
1021
1022 real_v = length * cof;
1023 image_v = real_v * delta;
1024
1025 G4complex zone(real_v, image_v);
1026 return zone;
1027}
G4double GetPlateLinearPhotoAbs(G4double)
G4double GetPlateFormationZone(G4double, G4double, G4double)

References G4VXTRenergyLoss::GetPlateFormationZone(), and G4VXTRenergyLoss::GetPlateLinearPhotoAbs().

Referenced by G4StrawTubeXTRadiator::GetStackFactor(), and G4VXTRenergyLoss::OneInterfaceXTRdEdx().

◆ GetPlateCompton()

G4double G4VXTRenergyLoss::GetPlateCompton ( G4double  omega)
inherited

Definition at line 1189 of file G4VXTRenergyLoss.cc.

1190{
1191 G4int i, numberOfElements;
1192 G4double xSection = 0., nowZ, sumZ = 0.;
1193
1194 const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
1195 numberOfElements = (*theMaterialTable)[fMatIndex1]->GetNumberOfElements();
1196
1197 for(i = 0; i < numberOfElements; ++i)
1198 {
1199 nowZ = (*theMaterialTable)[fMatIndex1]->GetElement(i)->GetZ();
1200 sumZ += nowZ;
1201 xSection += GetComptonPerAtom(omega, nowZ);
1202 }
1203 xSection /= sumZ;
1204 xSection *= (*theMaterialTable)[fMatIndex1]->GetElectronDensity();
1205 return xSection;
1206}

References G4VXTRenergyLoss::fMatIndex1, G4VXTRenergyLoss::GetComptonPerAtom(), and G4Material::GetMaterialTable().

Referenced by G4XTRTransparentRegRadModel::SpectralXTRdEdx().

◆ GetPlateFormationZone()

G4double G4VXTRenergyLoss::GetPlateFormationZone ( G4double  omega,
G4double  gamma,
G4double  varAngle 
)
inherited

◆ GetPlateLinearPhotoAbs()

G4double G4VXTRenergyLoss::GetPlateLinearPhotoAbs ( G4double  omega)
inherited

◆ GetPlateZmuProduct() [1/2]

void G4VXTRenergyLoss::GetPlateZmuProduct ( )
inherited

Definition at line 1127 of file G4VXTRenergyLoss.cc.

1128{
1129 std::ofstream outPlate("plateZmu.dat", std::ios::out);
1130 outPlate.setf(std::ios::scientific, std::ios::floatfield);
1131
1132 G4int i;
1133 G4double omega, varAngle, gamma;
1134 gamma = 10000.;
1135 varAngle = 1 / gamma / gamma;
1136 if(verboseLevel > 0)
1137 G4cout << "energy, keV" << "\t" << "Zmu for plate" << G4endl;
1138 for(i = 0; i < 100; ++i)
1139 {
1140 omega = (1.0 + i) * keV;
1141 if(verboseLevel > 1)
1142 G4cout << omega / keV << "\t"
1143 << GetPlateZmuProduct(omega, gamma, varAngle) << "\t";
1144 if(verboseLevel > 0)
1145 outPlate << omega / keV << "\t\t"
1146 << GetPlateZmuProduct(omega, gamma, varAngle) << G4endl;
1147 }
1148 return;
1149}

References G4cout, G4endl, G4VXTRenergyLoss::GetPlateZmuProduct(), keV, and G4VProcess::verboseLevel.

Referenced by G4VXTRenergyLoss::GetPlateZmuProduct().

◆ GetPlateZmuProduct() [2/2]

G4double G4VXTRenergyLoss::GetPlateZmuProduct ( G4double  omega,
G4double  gamma,
G4double  varAngle 
)
inherited

Definition at line 1118 of file G4VXTRenergyLoss.cc.

1120{
1121 return GetPlateFormationZone(omega, gamma, varAngle) *
1123}

References G4VXTRenergyLoss::GetPlateFormationZone(), and G4VXTRenergyLoss::GetPlateLinearPhotoAbs().

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

◆ GetProtonVector()

G4PhysicsLogVector * G4VXTRenergyLoss::GetProtonVector ( )
inlineinherited

Definition at line 191 of file G4VXTRenergyLoss.hh.

191{ return fProtonEnergyVector; };

References G4VXTRenergyLoss::fProtonEnergyVector.

◆ GetRandomAngle()

G4double G4VXTRenergyLoss::GetRandomAngle ( G4double  energyXTR,
G4int  iTkin 
)
inherited

Definition at line 1461 of file G4VXTRenergyLoss.cc.

1462{
1463 G4int iTR, iAngle;
1465
1466 if(iTkin == fTotBin)
1467 --iTkin;
1468
1470
1471 for(iTR = 0; iTR < fBinTR; ++iTR)
1472 {
1473 if(energyXTR < fXTREnergyVector->GetLowEdgeEnergy(iTR))
1474 break;
1475 }
1476 if(iTR == fBinTR)
1477 --iTR;
1478
1479 position = (*(*fAngleForEnergyTable)(iTR))(0) * G4UniformRand();
1480 // position = (*(*fAngleForEnergyTable)(iTR))(1) * G4UniformRand(); // ATLAS TB
1481
1482 for(iAngle = 0;; ++iAngle)
1483 // for(iAngle = 1;; ++iAngle) // ATLAS TB
1484 {
1485 if(position >= (*(*fAngleForEnergyTable)(iTR))(iAngle))
1486 break;
1487 }
1488 angle = GetAngleXTR(iTR, position, iAngle);
1489 return angle;
1490}
static const G4double angle[DIMMOTT]
G4double GetAngleXTR(G4int iTR, G4double position, G4int iAngle)
#define position
Definition: xmlparse.cc:622

References angle, G4VXTRenergyLoss::fAngleBank, G4VXTRenergyLoss::fAngleForEnergyTable, G4VXTRenergyLoss::fBinTR, G4VXTRenergyLoss::fTotBin, G4UniformRand, G4VXTRenergyLoss::GetAngleXTR(), and position.

Referenced by G4VXTRenergyLoss::PostStepDoIt().

◆ GetStackFactor()

G4double G4GammaXTRadiator::GetStackFactor ( G4double  energy,
G4double  gamma,
G4double  varAngle 
)
overridevirtual

Reimplemented from G4VXTRenergyLoss.

Definition at line 69 of file G4GammaXTRadiator.cc.

71{
72 G4double result, Za, Zb, Ma, Mb;
73
74 Za = GetPlateFormationZone(energy, gamma, varAngle);
75 Zb = GetGasFormationZone(energy, gamma, varAngle);
76
79
80 G4complex Ca(1.0 + 0.5 * fPlateThick * Ma / fAlphaPlate,
82 G4complex Cb(1.0 + 0.5 * fGasThick * Mb / fAlphaGas,
83 fGasThick / Zb / fAlphaGas);
84
85 G4complex Ha = std::pow(Ca, -fAlphaPlate);
86 G4complex Hb = std::pow(Cb, -fAlphaGas);
87 G4complex H = Ha * Hb;
88
89 G4complex F1 = (1.0 - Ha) * (1.0 - Hb) / (1.0 - H) * G4double(fPlateNumber);
90
91 G4complex F2 = (1.0 - Ha) * (1.0 - Ha) * Hb / (1.0 - H) / (1.0 - H) *
92 (1.0 - std::pow(H, fPlateNumber));
93
94 G4complex R = (F1 + F2) * OneInterfaceXTRdEdx(energy, gamma, varAngle);
95
96 result = 2.0 * std::real(R);
97
98 return result;
99}
G4complex OneInterfaceXTRdEdx(G4double energy, G4double gamma, G4double varAngle)

References G4INCL::KinematicsUtils::energy(), G4VXTRenergyLoss::fAlphaGas, G4VXTRenergyLoss::fAlphaPlate, G4VXTRenergyLoss::fGasThick, G4VXTRenergyLoss::fPlateNumber, G4VXTRenergyLoss::fPlateThick, G4VXTRenergyLoss::GetGasFormationZone(), G4VXTRenergyLoss::GetGasLinearPhotoAbs(), G4VXTRenergyLoss::GetPlateFormationZone(), G4VXTRenergyLoss::GetPlateLinearPhotoAbs(), and G4VXTRenergyLoss::OneInterfaceXTRdEdx().

◆ GetTheMaxAngle()

G4double G4VXTRenergyLoss::GetTheMaxAngle ( )
inlineinherited

Definition at line 174 of file G4VXTRenergyLoss.hh.

174{ return fTheMaxAngle; };

References G4VXTRenergyLoss::fTheMaxAngle.

◆ GetTheMaxEnergyTR()

G4double G4VXTRenergyLoss::GetTheMaxEnergyTR ( )
inlineinherited

Definition at line 164 of file G4VXTRenergyLoss.hh.

164{ return fTheMaxEnergyTR; };

References G4VXTRenergyLoss::fTheMaxEnergyTR.

◆ GetTheMinAngle()

G4double G4VXTRenergyLoss::GetTheMinAngle ( )
inlineinherited

Definition at line 172 of file G4VXTRenergyLoss.hh.

172{ return fTheMinAngle; };

References G4VXTRenergyLoss::fTheMinAngle.

◆ GetTheMinEnergyTR()

G4double G4VXTRenergyLoss::GetTheMinEnergyTR ( )
inlineinherited

Definition at line 162 of file G4VXTRenergyLoss.hh.

162{ return fTheMinEnergyTR; };

References G4VXTRenergyLoss::fTheMinEnergyTR.

◆ GetTotalNumberOfInteractionLengthTraversed()

G4double G4VProcess::GetTotalNumberOfInteractionLengthTraversed ( ) const
inlineinherited

◆ GetTotBin()

G4int G4VXTRenergyLoss::GetTotBin ( )
inlineinherited

Definition at line 192 of file G4VXTRenergyLoss.hh.

192{ return fTotBin; };

References G4VXTRenergyLoss::fTotBin.

◆ GetVarAngle()

G4double G4VXTRenergyLoss::GetVarAngle ( )
inlineinherited

Definition at line 150 of file G4VXTRenergyLoss.hh.

150{ return fVarAngle; };

References G4VXTRenergyLoss::fVarAngle.

◆ GetVerboseLevel()

G4int G4VProcess::GetVerboseLevel ( ) const
inlineinherited

◆ GetXTRenergy()

G4double G4VXTRenergyLoss::GetXTRenergy ( G4int  iPlace,
G4double  position,
G4int  iTransfer 
)
inherited

Definition at line 1427 of file G4VXTRenergyLoss.cc.

1428{
1429 G4double x1, x2, y1, y2, result;
1430
1431 if(iTransfer == 0)
1432 {
1433 result = (*fEnergyDistrTable)(iPlace)->GetLowEdgeEnergy(iTransfer);
1434 }
1435 else
1436 {
1437 y1 = (*(*fEnergyDistrTable)(iPlace))(iTransfer - 1);
1438 y2 = (*(*fEnergyDistrTable)(iPlace))(iTransfer);
1439
1440 x1 = (*fEnergyDistrTable)(iPlace)->GetLowEdgeEnergy(iTransfer - 1);
1441 x2 = (*fEnergyDistrTable)(iPlace)->GetLowEdgeEnergy(iTransfer);
1442
1443 if(x1 == x2)
1444 result = x2;
1445 else
1446 {
1447 if(y1 == y2)
1448 result = x1 + (x2 - x1) * G4UniformRand();
1449 else
1450 {
1451 result = x1 + (x2 - x1) * G4UniformRand();
1452 }
1453 }
1454 }
1455 return result;
1456}

References G4UniformRand.

Referenced by G4VXTRenergyLoss::GetXTRrandomEnergy().

◆ GetXTRrandomEnergy()

G4double G4VXTRenergyLoss::GetXTRrandomEnergy ( G4double  scaledTkin,
G4int  iTkin 
)
inherited

Definition at line 1381 of file G4VXTRenergyLoss.cc.

1382{
1383 G4int iTransfer, iPlace;
1384 G4double transfer = 0.0, position, E1, E2, W1, W2, W;
1385
1386 iPlace = iTkin - 1;
1387
1388 if(iTkin == fTotBin) // relativistic plato, try from left
1389 {
1390 position = (*(*fEnergyDistrTable)(iPlace))(0) * G4UniformRand();
1391
1392 for(iTransfer = 0;; ++iTransfer)
1393 {
1394 if(position >= (*(*fEnergyDistrTable)(iPlace))(iTransfer))
1395 break;
1396 }
1397 transfer = GetXTRenergy(iPlace, position, iTransfer);
1398 }
1399 else
1400 {
1401 E1 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin - 1);
1403 W = 1.0 / (E2 - E1);
1404 W1 = (E2 - scaledTkin) * W;
1405 W2 = (scaledTkin - E1) * W;
1406
1407 position = ((*(*fEnergyDistrTable)(iPlace))(0) * W1 +
1408 (*(*fEnergyDistrTable)(iPlace + 1))(0) * W2) *
1409 G4UniformRand();
1410
1411 for(iTransfer = 0;; ++iTransfer)
1412 {
1413 if(position >= ((*(*fEnergyDistrTable)(iPlace))(iTransfer) *W1 +
1414 (*(*fEnergyDistrTable)(iPlace + 1))(iTransfer) *W2))
1415 break;
1416 }
1417 transfer = GetXTRenergy(iPlace, position, iTransfer);
1418 }
1419 if(transfer < 0.0)
1420 transfer = 0.0;
1421 return transfer;
1422}
G4double GetXTRenergy(G4int iPlace, G4double position, G4int iTransfer)

References G4VXTRenergyLoss::fEnergyDistrTable, G4VXTRenergyLoss::fProtonEnergyVector, G4VXTRenergyLoss::fTotBin, G4UniformRand, G4PhysicsVector::GetLowEdgeEnergy(), G4VXTRenergyLoss::GetXTRenergy(), and position.

Referenced by G4VXTRenergyLoss::PostStepDoIt().

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

Reimplemented from G4VProcess.

Definition at line 193 of file G4VXTRenergyLoss.cc.

194{
195 return (particle.GetPDGCharge() != 0.0);
196}

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

◆ OneBoundaryXTRNdensity()

G4double G4VXTRenergyLoss::OneBoundaryXTRNdensity ( G4double  energy,
G4double  gamma,
G4double  varAngle 
) const
inherited

Definition at line 1292 of file G4VXTRenergyLoss.cc.

1295{
1296 G4double formationLength1, formationLength2;
1297 formationLength1 =
1298 1.0 / (1.0 / (gamma * gamma) + fSigma1 / (energy * energy) + varAngle);
1299 formationLength2 =
1300 1.0 / (1.0 / (gamma * gamma) + fSigma2 / (energy * energy) + varAngle);
1301 return (varAngle / energy) * (formationLength1 - formationLength2) *
1302 (formationLength1 - formationLength2);
1303}

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

Referenced by G4VXTRenergyLoss::XTRNAngleSpectralDensity(), and G4VXTRenergyLoss::XTRNSpectralAngleDensity().

◆ OneInterfaceXTRdEdx()

G4complex G4VXTRenergyLoss::OneInterfaceXTRdEdx ( G4double  energy,
G4double  gamma,
G4double  varAngle 
)
inherited

◆ operator!=()

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

Definition at line 161 of file G4VProcess.cc.

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

◆ operator==()

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

Definition at line 155 of file G4VProcess.cc.

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

◆ PostStepDoIt()

G4VParticleChange * G4VXTRenergyLoss::PostStepDoIt ( const G4Track aTrack,
const G4Step aStep 
)
overridevirtualinherited

Reimplemented from G4VDiscreteProcess.

Definition at line 718 of file G4VXTRenergyLoss.cc.

720{
721 G4int iTkin;
722 G4double energyTR, theta, theta2, phi, dirX, dirY, dirZ;
723
725
726 if(verboseLevel > 1)
727 {
728 G4cout << "Start of G4VXTRenergyLoss::PostStepDoIt " << G4endl;
729 G4cout << "name of current material = "
730 << aTrack.GetVolume()->GetLogicalVolume()->GetMaterial()->GetName()
731 << G4endl;
732 }
733 if(aTrack.GetVolume()->GetLogicalVolume() != fEnvelope)
734 {
735 if(verboseLevel > 0)
736 {
737 G4cout << "Go out from G4VXTRenergyLoss::PostStepDoIt: wrong volume "
738 << G4endl;
739 }
740 return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep);
741 }
742 else
743 {
744 G4StepPoint* pPostStepPoint = aStep.GetPostStepPoint();
745 const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle();
746
747 // Now we are ready to Generate one TR photon
748 G4double kinEnergy = aParticle->GetKineticEnergy();
749 G4double mass = aParticle->GetDefinition()->GetPDGMass();
750 G4double gamma = 1.0 + kinEnergy / mass;
751
752 if(verboseLevel > 1)
753 {
754 G4cout << "gamma = " << gamma << G4endl;
755 }
756 G4double massRatio = proton_mass_c2 / mass;
757 G4double TkinScaled = kinEnergy * massRatio;
758 G4ThreeVector position = pPostStepPoint->GetPosition();
759 G4ParticleMomentum direction = aParticle->GetMomentumDirection();
760 G4double startTime = pPostStepPoint->GetGlobalTime();
761
762 for(iTkin = 0; iTkin < fTotBin; ++iTkin)
763 {
764 if(TkinScaled < fProtonEnergyVector->GetLowEdgeEnergy(iTkin))
765 break;
766 }
767
768 if(iTkin == 0) // Tkin is too small, neglect of TR photon generation
769 {
770 if(verboseLevel > 0)
771 {
772 G4cout << "Go out from G4VXTRenergyLoss::PostStepDoIt:iTkin = " << iTkin
773 << G4endl;
774 }
775 return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep);
776 }
777 else // general case: Tkin between two vectors of the material
778 {
780
781 energyTR = GetXTRrandomEnergy(TkinScaled, iTkin);
782
783 if(verboseLevel > 1)
784 {
785 G4cout << "energyTR = " << energyTR / keV << " keV" << G4endl;
786 }
788 {
789 theta2 = GetRandomAngle(energyTR, iTkin);
790 if(theta2 > 0.)
791 theta = std::sqrt(theta2);
792 else
793 theta = 0.;
794 }
795 else
796 theta = std::fabs(G4RandGauss::shoot(0.0, pi / gamma));
797
798 if(theta >= 0.1)
799 theta = 0.1;
800
801 phi = twopi * G4UniformRand();
802
803 dirX = std::sin(theta) * std::cos(phi);
804 dirY = std::sin(theta) * std::sin(phi);
805 dirZ = std::cos(theta);
806
807 G4ThreeVector directionTR(dirX, dirY, dirZ);
808 directionTR.rotateUz(direction);
809 directionTR.unit();
810
811 G4DynamicParticle* aPhotonTR =
812 new G4DynamicParticle(G4Gamma::Gamma(), directionTR, energyTR);
813
814 // A XTR photon is set on the particle track inside the radiator
815 // and is moved to the G4Envelope surface for standard X-ray TR models
816 // only. The case of fExitFlux=true
817
818 if(fExitFlux)
819 {
820 const G4RotationMatrix* rotM =
821 pPostStepPoint->GetTouchable()->GetRotation();
822 G4ThreeVector transl = pPostStepPoint->GetTouchable()->GetTranslation();
824 transform.Invert();
825 G4ThreeVector localP = transform.TransformPoint(position);
826 G4ThreeVector localV = transform.TransformAxis(directionTR);
827
828 G4double distance =
829 fEnvelope->GetSolid()->DistanceToOut(localP, localV);
830 if(verboseLevel > 1)
831 {
832 G4cout << "distance to exit = " << distance / mm << " mm" << G4endl;
833 }
834 position += distance * directionTR;
835 startTime += distance / c_light;
836 }
837 G4Track* aSecondaryTrack = new G4Track(aPhotonTR, startTime, position);
838 aSecondaryTrack->SetTouchableHandle(
840 aSecondaryTrack->SetParentID(aTrack.GetTrackID());
841
842 fParticleChange.AddSecondary(aSecondaryTrack);
844 }
845 }
846 return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep);
847}
const G4ThreeVector & GetMomentumDirection() const
static G4Gamma * Gamma()
Definition: G4Gamma.cc:85
G4VSolid * GetSolid() const
G4Material * GetMaterial() const
const G4String & GetName() const
Definition: G4Material.hh:173
void AddSecondary(G4Track *aSecondary)
void ProposeEnergy(G4double finalEnergy)
virtual void Initialize(const G4Track &)
const G4VTouchable * GetTouchable() const
G4double GetGlobalTime() const
const G4ThreeVector & GetPosition() const
const G4TouchableHandle & GetTouchableHandle() const
G4StepPoint * GetPostStepPoint() const
G4int GetTrackID() const
void SetTouchableHandle(const G4TouchableHandle &apValue)
void SetParentID(const G4int aValue)
virtual G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
void SetNumberOfSecondaries(G4int totSecondaries)
virtual G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=nullptr, G4ThreeVector *n=nullptr) const =0
virtual const G4ThreeVector & GetTranslation(G4int depth=0) const =0
virtual const G4RotationMatrix * GetRotation(G4int depth=0) const =0
G4double GetRandomAngle(G4double energyXTR, G4int iTkin)
G4double GetXTRrandomEnergy(G4double scaledTkin, G4int iTkin)
G4ParticleChange fParticleChange
ThreeVector shoot(const G4int Ap, const G4int Af)
G4bool transform(G4String &input, const G4String &type)
float c_light
Definition: hepunit.py:256

References G4ParticleChange::AddSecondary(), source.hepunit::c_light, G4VSolid::DistanceToOut(), G4VXTRenergyLoss::fAngleRadDistr, G4VXTRenergyLoss::fEnvelope, G4VXTRenergyLoss::fExitFlux, G4VXTRenergyLoss::fParticleChange, G4VXTRenergyLoss::fTotBin, G4cout, G4endl, G4UniformRand, G4Gamma::Gamma(), G4DynamicParticle::GetDefinition(), G4Track::GetDynamicParticle(), G4StepPoint::GetGlobalTime(), G4DynamicParticle::GetKineticEnergy(), G4VPhysicalVolume::GetLogicalVolume(), G4LogicalVolume::GetMaterial(), G4DynamicParticle::GetMomentumDirection(), G4Material::GetName(), G4ParticleDefinition::GetPDGMass(), G4StepPoint::GetPosition(), G4Step::GetPostStepPoint(), G4VXTRenergyLoss::GetRandomAngle(), G4VTouchable::GetRotation(), G4LogicalVolume::GetSolid(), G4StepPoint::GetTouchable(), G4StepPoint::GetTouchableHandle(), G4Track::GetTrackID(), G4VTouchable::GetTranslation(), G4Track::GetVolume(), G4VXTRenergyLoss::GetXTRrandomEnergy(), G4ParticleChange::Initialize(), keV, mm, pi, G4VDiscreteProcess::PostStepDoIt(), G4ParticleChange::ProposeEnergy(), source.hepunit::proton_mass_c2, CLHEP::Hep3Vector::rotateUz(), G4VParticleChange::SetNumberOfSecondaries(), G4Track::SetParentID(), G4Track::SetTouchableHandle(), G4INCL::DeJongSpin::shoot(), G4coutFormatters::anonymous_namespace{G4coutFormatters.cc}::transform(), twopi, CLHEP::Hep3Vector::unit(), and G4VProcess::verboseLevel.

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

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

Reimplemented from G4VXTRenergyLoss.

Definition at line 54 of file G4GammaXTRadiator.cc.

55{
56 out
57 << "Rough approximation describing a radiator of X-ray transition "
58 "radiation.\n"
59 "Thicknesses of plates and gas gaps are distributed according to gamma\n"
60 "description.\n";
61}

Referenced by DumpInfo().

◆ ResetNumberOfInteractionLengthLeft()

void G4VProcess::ResetNumberOfInteractionLengthLeft ( )
virtualinherited

◆ RetrievePhysicsTable()

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

◆ SetAlphaGas()

void G4VXTRenergyLoss::SetAlphaGas ( G4double  ag)
inlineinherited

Definition at line 156 of file G4VXTRenergyLoss.hh.

156{ fAlphaGas = ag;};

References G4VXTRenergyLoss::fAlphaGas.

◆ SetAlphaPlate()

void G4VXTRenergyLoss::SetAlphaPlate ( G4double  ap)
inlineinherited

◆ SetAngleRadDistr()

void G4VXTRenergyLoss::SetAngleRadDistr ( G4bool  fatr)
inlineinherited

Definition at line 185 of file G4VXTRenergyLoss.hh.

185{ fAngleRadDistr = fatr;};

References G4VXTRenergyLoss::fAngleRadDistr.

◆ SetCompton()

void G4VXTRenergyLoss::SetCompton ( G4bool  pC)
inlineinherited

Definition at line 151 of file G4VXTRenergyLoss.hh.

151{ fCompton = pC; };

References G4VXTRenergyLoss::fCompton.

◆ SetEnergy()

void G4VXTRenergyLoss::SetEnergy ( G4double  energy)
inlineinherited

Definition at line 147 of file G4VXTRenergyLoss.hh.

147{ fEnergy = energy; };

References G4INCL::KinematicsUtils::energy(), and G4VXTRenergyLoss::fEnergy.

◆ SetFastAngle()

void G4VXTRenergyLoss::SetFastAngle ( G4bool  fatr)
inlineinherited

Definition at line 183 of file G4VXTRenergyLoss.hh.

183{ fFastAngle = fatr;};

References G4VXTRenergyLoss::fFastAngle.

◆ SetGamma()

void G4VXTRenergyLoss::SetGamma ( G4double  gamma)
inlineinherited

Definition at line 145 of file G4VXTRenergyLoss.hh.

145{ fGamma = gamma; };

References G4VXTRenergyLoss::fGamma.

◆ SetMasterProcess()

void G4VProcess::SetMasterProcess ( G4VProcess masterP)
virtualinherited

◆ SetMaxEnergyTR()

void G4VXTRenergyLoss::SetMaxEnergyTR ( G4double  maxetr)
inlineinherited

Definition at line 168 of file G4VXTRenergyLoss.hh.

168{ fMaxEnergyTR = maxetr;};

References G4VXTRenergyLoss::fMaxEnergyTR.

◆ SetMaxThetaTR()

void G4VXTRenergyLoss::SetMaxThetaTR ( G4double  maxatr)
inlineinherited

Definition at line 178 of file G4VXTRenergyLoss.hh.

178{ fMaxThetaTR = maxatr;};

References G4VXTRenergyLoss::fMaxThetaTR.

◆ SetMinEnergyTR()

void G4VXTRenergyLoss::SetMinEnergyTR ( G4double  minetr)
inlineinherited

Definition at line 166 of file G4VXTRenergyLoss.hh.

166{ fMinEnergyTR = minetr;};

References G4VXTRenergyLoss::fMinEnergyTR.

◆ SetMinThetaTR()

void G4VXTRenergyLoss::SetMinThetaTR ( G4double  minatr)
inlineinherited

Definition at line 176 of file G4VXTRenergyLoss.hh.

176{ fMinThetaTR = minatr;};

References G4VXTRenergyLoss::fMinThetaTR.

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

◆ SetTheMaxAngle()

void G4VXTRenergyLoss::SetTheMaxAngle ( G4double  maxang)
inlineinherited

Definition at line 173 of file G4VXTRenergyLoss.hh.

173{ fTheMaxAngle = maxang;};

References G4VXTRenergyLoss::fTheMaxAngle.

◆ SetTheMaxEnergyTR()

void G4VXTRenergyLoss::SetTheMaxEnergyTR ( G4double  maxetr)
inlineinherited

Definition at line 163 of file G4VXTRenergyLoss.hh.

163{ fTheMaxEnergyTR = maxetr;};

References G4VXTRenergyLoss::fTheMaxEnergyTR.

◆ SetTheMinAngle()

void G4VXTRenergyLoss::SetTheMinAngle ( G4double  minang)
inlineinherited

Definition at line 171 of file G4VXTRenergyLoss.hh.

171{ fTheMinAngle = minang;};

References G4VXTRenergyLoss::fTheMinAngle.

◆ SetTheMinEnergyTR()

void G4VXTRenergyLoss::SetTheMinEnergyTR ( G4double  minetr)
inlineinherited

Definition at line 161 of file G4VXTRenergyLoss.hh.

161{ fTheMinEnergyTR = minetr;};

References G4VXTRenergyLoss::fTheMinEnergyTR.

◆ SetVarAngle()

void G4VXTRenergyLoss::SetVarAngle ( G4double  varAngle)
inlineinherited

Definition at line 149 of file G4VXTRenergyLoss.hh.

149{ fVarAngle = varAngle; };

References G4VXTRenergyLoss::fVarAngle.

◆ SetVerboseLevel()

void G4VProcess::SetVerboseLevel ( G4int  value)
inlineinherited

◆ SpectralAngleXTRdEdx()

G4double G4VXTRenergyLoss::SpectralAngleXTRdEdx ( G4double  varAngle)
inherited

Definition at line 868 of file G4VXTRenergyLoss.cc.

869{
870 G4double result = GetStackFactor(fEnergy, fGamma, varAngle);
871 if(result < 0.0)
872 result = 0.0;
873 return result;
874}

References G4VXTRenergyLoss::fEnergy, G4VXTRenergyLoss::fGamma, and G4VXTRenergyLoss::GetStackFactor().

Referenced by G4VXTRenergyLoss::BuildAngleForEnergyBank(), and G4VXTRenergyLoss::SpectralXTRdEdx().

◆ SpectralXTRdEdx()

G4double G4VXTRenergyLoss::SpectralXTRdEdx ( G4double  energy)
virtualinherited

Reimplemented in G4GaussXTRadiator, G4RegularXTRadiator, G4TransparentRegXTRadiator, G4XTRRegularRadModel, and G4XTRTransparentRegRadModel.

Definition at line 878 of file G4VXTRenergyLoss.cc.

879{
880 G4int i;
881 static constexpr G4int iMax = 8;
882 G4double angleSum = 0.0;
883
884 G4double lim[iMax] = { 0.0, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1.0 };
885
886 for(i = 0; i < iMax; ++i)
887 lim[i] *= fMaxThetaTR;
888
890 integral;
891
892 fEnergy = energy;
893 {
894 for(i = 0; i < iMax - 1; ++i)
895 {
896 angleSum += integral.Legendre96(
897 this, &G4VXTRenergyLoss::SpectralAngleXTRdEdx, lim[i], lim[i + 1]);
898 }
899 }
900 return angleSum;
901}

References G4INCL::KinematicsUtils::energy(), G4VXTRenergyLoss::fEnergy, G4VXTRenergyLoss::fMaxThetaTR, G4VXTRenergyLoss::G4VXTRenergyLoss(), and G4VXTRenergyLoss::SpectralAngleXTRdEdx().

Referenced by G4VXTRenergyLoss::BuildEnergyTable().

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

◆ XTRNAngleDensity()

G4double G4VXTRenergyLoss::XTRNAngleDensity ( G4double  varAngle)
inherited

◆ XTRNAngleSpectralDensity()

G4double G4VXTRenergyLoss::XTRNAngleSpectralDensity ( G4double  energy)
inherited

◆ XTRNSpectralAngleDensity()

G4double G4VXTRenergyLoss::XTRNSpectralAngleDensity ( G4double  varAngle)
inherited

◆ XTRNSpectralDensity()

G4double G4VXTRenergyLoss::XTRNSpectralDensity ( G4double  energy)
inherited

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

◆ fAlphaGas

G4double G4VXTRenergyLoss::fAlphaGas
protectedinherited

◆ fAlphaPlate

G4double G4VXTRenergyLoss::fAlphaPlate
protectedinherited

◆ fAngleBank

std::vector<G4PhysicsTable*> G4VXTRenergyLoss::fAngleBank
protectedinherited

◆ fAngleDistrTable

G4PhysicsTable* G4VXTRenergyLoss::fAngleDistrTable
protectedinherited

◆ fAngleForEnergyTable

G4PhysicsTable* G4VXTRenergyLoss::fAngleForEnergyTable
protectedinherited

◆ fAngleRadDistr

G4bool G4VXTRenergyLoss::fAngleRadDistr
protectedinherited

◆ fBinTR

G4int G4VXTRenergyLoss::fBinTR
protectedinherited

◆ fCofTR

constexpr G4double G4VXTRenergyLoss::fCofTR = CLHEP::fine_structure_const / CLHEP::pi
staticconstexprprotectedinherited

◆ fCompton

G4bool G4VXTRenergyLoss::fCompton
protectedinherited

◆ fEnergy

G4double G4VXTRenergyLoss::fEnergy
protectedinherited

◆ fEnergyDistrTable

G4PhysicsTable* G4VXTRenergyLoss::fEnergyDistrTable
protectedinherited

◆ fEnvelope

G4LogicalVolume* G4VXTRenergyLoss::fEnvelope
protectedinherited

◆ fExitFlux

G4bool G4VXTRenergyLoss::fExitFlux
protectedinherited

◆ fFastAngle

G4bool G4VXTRenergyLoss::fFastAngle
protectedinherited

◆ fGamma

G4double G4VXTRenergyLoss::fGamma
protectedinherited

◆ fGammaCutInKineticEnergy

G4double* G4VXTRenergyLoss::fGammaCutInKineticEnergy
protectedinherited

Definition at line 220 of file G4VXTRenergyLoss.hh.

◆ fGammaTkinCut

G4double G4VXTRenergyLoss::fGammaTkinCut
protectedinherited

◆ fGasPhotoAbsCof

G4SandiaTable* G4VXTRenergyLoss::fGasPhotoAbsCof
protectedinherited

◆ fGasThick

G4double G4VXTRenergyLoss::fGasThick
protectedinherited

◆ fLambda

G4double G4VXTRenergyLoss::fLambda
protectedinherited

◆ fMatIndex1

G4int G4VXTRenergyLoss::fMatIndex1
protectedinherited

◆ fMatIndex2

G4int G4VXTRenergyLoss::fMatIndex2
protectedinherited

◆ fMaxEnergyTR

G4double G4VXTRenergyLoss::fMaxEnergyTR
protectedinherited

◆ fMaxProtonTkin

constexpr G4double G4VXTRenergyLoss::fMaxProtonTkin = 100. * CLHEP::TeV
staticconstexprprotectedinherited

Definition at line 208 of file G4VXTRenergyLoss.hh.

Referenced by G4VXTRenergyLoss::G4VXTRenergyLoss().

◆ fMaxThetaTR

G4double G4VXTRenergyLoss::fMaxThetaTR
protectedinherited

◆ fMinEnergyTR

G4double G4VXTRenergyLoss::fMinEnergyTR
protectedinherited

◆ fMinProtonTkin

constexpr G4double G4VXTRenergyLoss::fMinProtonTkin = 100. * CLHEP::GeV
staticconstexprprotectedinherited

Definition at line 206 of file G4VXTRenergyLoss.hh.

Referenced by G4VXTRenergyLoss::G4VXTRenergyLoss().

◆ fMinThetaTR

G4double G4VXTRenergyLoss::fMinThetaTR
protectedinherited

◆ fParticleChange

G4ParticleChange G4VXTRenergyLoss::fParticleChange
protectedinherited

◆ fPlasmaCof

constexpr G4double G4VXTRenergyLoss::fPlasmaCof
staticconstexprprotectedinherited
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 210 of file G4VXTRenergyLoss.hh.

Referenced by G4StrawTubeXTRadiator::G4StrawTubeXTRadiator(), and G4VXTRenergyLoss::G4VXTRenergyLoss().

◆ fPlateNumber

G4int G4VXTRenergyLoss::fPlateNumber
protectedinherited

◆ fPlatePhotoAbsCof

G4SandiaTable* G4VXTRenergyLoss::fPlatePhotoAbsCof
protectedinherited

◆ fPlateThick

G4double G4VXTRenergyLoss::fPlateThick
protectedinherited

◆ fProcessTable

G4ProcessTable* G4VProcess::fProcessTable = nullptr
privateinherited

Definition at line 374 of file G4VProcess.hh.

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

◆ fProtonEnergyVector

G4PhysicsLogVector* G4VXTRenergyLoss::fProtonEnergyVector
protectedinherited

◆ fPtrGamma

G4ParticleDefinition* G4VXTRenergyLoss::fPtrGamma
protectedinherited

Definition at line 218 of file G4VXTRenergyLoss.hh.

Referenced by G4VXTRenergyLoss::G4VXTRenergyLoss().

◆ fSigma1

G4double G4VXTRenergyLoss::fSigma1
protectedinherited

◆ fSigma2

G4double G4VXTRenergyLoss::fSigma2
protectedinherited

◆ fTheMaxAngle

G4double G4VXTRenergyLoss::fTheMaxAngle
protectedinherited

◆ fTheMaxEnergyTR

G4double G4VXTRenergyLoss::fTheMaxEnergyTR
protectedinherited

◆ fTheMinAngle

G4double G4VXTRenergyLoss::fTheMinAngle
protectedinherited

◆ fTheMinEnergyTR

G4double G4VXTRenergyLoss::fTheMinEnergyTR
protectedinherited

◆ fTotalDist

G4double G4VXTRenergyLoss::fTotalDist
protectedinherited

◆ fTotBin

G4int G4VXTRenergyLoss::fTotBin
protectedinherited

◆ fVarAngle

G4double G4VXTRenergyLoss::fVarAngle
protectedinherited

◆ fXTREnergyVector

G4PhysicsLogVector* G4VXTRenergyLoss::fXTREnergyVector
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 G4VXTRenergyLoss::secID = -1
protectedinherited

Definition at line 257 of file G4VXTRenergyLoss.hh.

Referenced by G4VXTRenergyLoss::G4VXTRenergyLoss().

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