39#ifndef G4VXTRenergyLoss_h
40#define G4VXTRenergyLoss_h 1
63 const G4String& processName =
"XTRenergyLoss",
80 const G4Step& aStep)
override;
213 4. * CLHEP::pi * CLHEP::fine_structure_const * CLHEP::hbarc * CLHEP::hbarc *
214 CLHEP::hbarc / CLHEP::electron_mass_c2;
G4double condition(const G4ErrorSymMatrix &m)
std::complex< G4double > G4complex
G4GLOB_DLL std::ostream G4cout
G4double GetPlateLinearPhotoAbs(G4double)
G4double AngleSpectralXTRdEdx(G4double energy)
G4double GetTheMinEnergyTR()
void SetEnergy(G4double energy)
G4double XTRNAngleDensity(G4double varAngle)
G4PhysicsTable * fEnergyDistrTable
void SetAlphaPlate(G4double ap)
void SetFastAngle(G4bool fatr)
G4bool GetAngleRadDistr()
G4VXTRenergyLoss & operator=(const G4VXTRenergyLoss &right)=delete
void SetTheMinAngle(G4double minang)
void ComputeGasPhotoAbsCof()
G4double GetAngleXTR(G4int iTR, G4double position, G4int iAngle)
virtual G4bool IsApplicable(const G4ParticleDefinition &) override
G4PhysicsTable * fAngleForEnergyTable
static constexpr G4double fMaxProtonTkin
G4PhysicsLogVector * fProtonEnergyVector
G4PhysicsLogVector * fXTREnergyVector
void SetAlphaGas(G4double ag)
void SetTheMaxEnergyTR(G4double maxetr)
G4double GetGasFormationZone(G4double, G4double, G4double)
G4SandiaTable * fPlatePhotoAbsCof
G4double OneBoundaryXTRNdensity(G4double energy, G4double gamma, G4double varAngle) const
G4double GetMaxEnergyTR()
G4double GetTheMinAngle()
G4PhysicsFreeVector * GetAngleVector(G4double energy, G4int n)
void SetMinEnergyTR(G4double minetr)
G4VXTRenergyLoss(G4VXTRenergyLoss &)=delete
void SetMaxEnergyTR(G4double maxetr)
G4PhysicsTable * fAngleDistrTable
G4double GetRandomAngle(G4double energyXTR, G4int iTkin)
G4complex GetPlateComplexFZ(G4double, G4double, G4double)
virtual void BuildPhysicsTable(const G4ParticleDefinition &) override
G4complex OneInterfaceXTRdEdx(G4double energy, G4double gamma, G4double varAngle)
virtual G4double GetMeanFreePath(const G4Track &aTrack, G4double previousStepSize, G4ForceCondition *condition) override
G4double GetTheMaxAngle()
G4double GetXTRenergy(G4int iPlace, G4double position, G4int iTransfer)
void SetMinThetaTR(G4double minatr)
G4VXTRenergyLoss(G4LogicalVolume *anEnvelope, G4Material *, G4Material *, G4double, G4double, G4int, const G4String &processName="XTRenergyLoss", G4ProcessType type=fElectromagnetic)
void BuildGlobalAngleTable()
G4double XTRNAngleSpectralDensity(G4double energy)
void SetGamma(G4double gamma)
G4double SpectralAngleXTRdEdx(G4double varAngle)
G4double GetXTRrandomEnergy(G4double scaledTkin, G4int iTkin)
G4SandiaTable * fGasPhotoAbsCof
void SetCompton(G4bool pC)
static constexpr G4double fCofTR
void GetPlateZmuProduct()
G4double GetMinEnergyTR()
void BuildAngleForEnergyBank()
G4LogicalVolume * fEnvelope
std::vector< G4PhysicsTable * > fAngleBank
G4PhysicsLogVector * GetProtonVector()
void SetTheMaxAngle(G4double maxang)
void SetTheMinEnergyTR(G4double minetr)
static constexpr G4double fPlasmaCof
virtual ~G4VXTRenergyLoss()
virtual G4double SpectralXTRdEdx(G4double energy)
void SetVarAngle(G4double varAngle)
G4double GetComptonPerAtom(G4double, G4double)
void GetNumberOfPhotons()
virtual void DumpInfo() const override
void SetMaxThetaTR(G4double maxatr)
void SetAngleRadDistr(G4bool fatr)
static constexpr G4double fMinProtonTkin
G4double GetGasCompton(G4double)
G4double XTRNSpectralAngleDensity(G4double varAngle)
virtual void ProcessDescription(std::ostream &) const override
void ComputePlatePhotoAbsCof()
G4double GetPlateFormationZone(G4double, G4double, G4double)
G4double GetGasLinearPhotoAbs(G4double)
G4double XTRNSpectralDensity(G4double energy)
virtual G4double GetStackFactor(G4double energy, G4double gamma, G4double varAngle)
G4ParticleDefinition * fPtrGamma
virtual G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep) override
G4ParticleChange fParticleChange
G4double * fGammaCutInKineticEnergy
G4complex GetGasComplexFZ(G4double, G4double, G4double)
G4double GetPlateCompton(G4double)
G4double GetTheMaxEnergyTR()
G4double AngleXTRdEdx(G4double varAngle)