54 #ifndef G4PairProductionRelModel_h
55 #define G4PairProductionRelModel_h 1
74 const G4String& nam =
"BetheHeitlerLPM");
211 phi1 = 21.0190 - 4.145*
G4Log(delta + 0.958);
214 phi1 = 20.806 - delta*(3.190 - 0.5710*delta);
215 phi2 = 20.234 - delta*(2.126 - 0.0903*delta);
223 return (delta > 1.4) ? 42.038 - 8.29*
G4Log(delta + 0.958)
224 : 42.184 - delta*(7.444 - 1.623*delta);
231 return (delta > 1.4) ? 42.038 - 8.29*
G4Log(delta + 0.958)
232 : 41.326 - delta*(5.848 - 0.902*delta);
241 f1 = 42.038 - 8.29*
G4Log(delta + 0.958);
244 f1 = 42.184 - delta*(7.444 - 1.623*delta);
245 f2 = 41.326 - delta*(5.848 - 0.902*delta);
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) override
G4ParticleDefinition * fThePositron
std::vector< G4double > fLPMFuncPhi
static LPMFuncs gLPMFuncs
void ScreenFunction12(const G4double delta, G4double &f1, G4double &f2)
static std::vector< ElementData * > gElementData
static const G4double gFinelLowZet[8]
static const G4double gXSecFactor
std::vector< G4double > fLPMFuncG
static const G4int gMaxZet
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
G4double ScreenFunction2(const G4double delta)
static const G4double gEgLPMActivation
virtual ~G4PairProductionRelModel()
void GetLPMFunctions(G4double &lpmGs, G4double &lpmPhis, const G4double sval)
G4double ComputeDXSectionPerAtom(G4double eplusEnergy, G4double gammaEnergy, G4double Z)
static const G4double emax
G4ParticleDefinition * fTheElectron
G4double G4Log(G4double x)
G4ParticleDefinition * fTheGamma
virtual void InitialiseLocal(const G4ParticleDefinition *, G4VEmModel *masterModel) override
static const G4double gLPMconstant
G4bool fIsUseLPMCorrection
void ComputeLPMGsPhis(G4double &funcGS, G4double &funcPhiS, const G4double varShat)
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0., G4double cut=0., G4double emax=DBL_MAX) override
G4ParticleChangeForGamma * fParticleChange
void ComputePhi12(const G4double delta, G4double &phi1, G4double &phi2)
double A(double temperature)
static const G4double gXGL[8]
static const G4double gWGL[8]
G4double ScreenFunction1(const G4double delta)
static const G4double gFelLowZet[8]
G4double ComputeRelDXSectionPerAtom(G4double eplusEnergy, G4double gammaEnergy, G4double Z)
G4bool fIsUseCompleteScreening
virtual void SetupForMaterial(const G4ParticleDefinition *, const G4Material *, G4double) override
G4PairProductionRelModel(const G4ParticleDefinition *p=nullptr, const G4String &nam="BetheHeitlerLPM")
void ComputeLPMfunctions(G4double &fXiS, G4double &fGS, G4double &fPhiS, const G4double eps, const G4double egamma, const G4int izet)
static const G4double eps
void SetLPMflag(G4bool val)
void InitialiseElementData()
G4double ComputeXSectionPerAtom(G4double gammaEnergy, G4double Z)