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;
107 G4ElectroNuclearCrossSection::DFun(
G4double x)
114 static const G4double mel=0.5109989;
115 static const G4double lmel=std::log(mel);
118 return (poc*(
x-pos)+shd*std::exp(-reg*
x))*flux;
123 G4ElectroNuclearCrossSection::Fun(
G4double x)
129 return dlg1*HighEnergyJ1(x)-lgoe*(HE2+HE2-HighEnergyJ3(x)/lastE);
134 G4ElectroNuclearCrossSection::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);
149 G4ElectroNuclearCrossSection::HighEnergyJ2(
G4double lEn)
152 static const G4double le=std::log(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);
165 G4ElectroNuclearCrossSection::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);