32#ifndef G4ElectroNuclearCrossSection_h
33#define G4ElectroNuclearCrossSection_h 1
96 static std::vector <G4double*> J1;
99 static std::vector <G4double*> J2;
102 static std::vector <G4double*> J3;
107G4ElectroNuclearCrossSection::DFun(
G4double x)
114 static const G4double mel=0.5109989;
115 static const G4double lmel=std::log(mel);
117 G4double flux=lastG*(2.-y*(2.-y))-1.;
118 return (poc*(x-pos)+shd*std::exp(-reg*x))*flux;
123G4ElectroNuclearCrossSection::Fun(
G4double x)
129 return dlg1*HighEnergyJ1(x)-lgoe*(HE2+HE2-HighEnergyJ3(x)/lastE);
134G4ElectroNuclearCrossSection::HighEnergyJ1(
G4double lEn)
136 static const G4double le=std::log(50000.);
143 static const G4double ele=std::exp(-d*le);
144 return ha*(lEn*lEn-le2)-ab*(lEn-le)-cd*(std::exp(-d*lEn)-ele);
149G4ElectroNuclearCrossSection::HighEnergyJ2(
G4double lEn)
152 static const G4double le=std::log(e);
153 static const G4double le1=(le-1.)*e;
158 static const G4double ele=std::exp(d*le);
160 return a*((lEn-1.)*En-le1)-ab*(En-e)+cd*(std::exp(d*lEn)-ele);
165G4ElectroNuclearCrossSection::HighEnergyJ3(
G4double lEn)
168 static const G4double le=std::log(e);
170 static const G4double leh=(le-.5)*e2;
175 static const G4double ele=std::exp(d*le);
177 return ha*((lEn-.5)*lastE2-leh)-hab*(lastE2-e2)+cd*(std::exp(d*lEn)-ele);
virtual G4bool IsIsoApplicable(const G4DynamicParticle *aParticle, G4int, G4int, const G4Element *, const G4Material *)
virtual G4double GetIsoCrossSection(const G4DynamicParticle *aParticle, G4int, G4int, const G4Isotope *, const G4Element *, const G4Material *)
virtual void CrossSectionDescription(std::ostream &) const
virtual ~G4ElectroNuclearCrossSection()
G4double GetEquivalentPhotonQ2(G4double nu)
G4double GetEquivalentPhotonEnergy()
G4double GetVirtualFactor(G4double nu, G4double Q2)