39#ifndef G4QElectronNuclearCrossSection_h
40#define G4QElectronNuclearCrossSection_h 1
103 static std::vector <G4double*>* J1;
104 static std::vector <G4double*>* J2;
105 static std::vector <G4double*>* J3;
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;
126 return dlg1*HighEnergyJ1(x)-lgoe*(HE2+HE2-HighEnergyJ3(x)/lastE);
131 static const G4double le=std::log(50000.);
138 static const G4double ele=std::exp(-d*le);
139 return ha*(lEn*lEn-le2)-ab*(lEn-le)-cd*(std::exp(-d*lEn)-ele);
145 static const G4double le=std::log(e);
146 static const G4double le1=(le-1.)*e;
151 static const G4double ele=std::exp(d*le);
153 return a*((lEn-1.)*En-le1)-ab*(En-e)+cd*(std::exp(d*lEn)-ele);
159 static const G4double le=std::log(e);
161 static const G4double leh=(le-.5)*e2;
166 static const G4double ele=std::exp(d*le);
168 return ha*((lEn-.5)*lastE2-leh)-hab*(lastE2-e2)+cd*(std::exp(d*lEn)-ele);
G4double CalculateCrossSection(G4bool CS, G4int F, G4int I, G4int PDG, G4int Z, G4int N, G4double Momentum)
G4int GetExchangePDGCode()
virtual G4double GetCrossSection(G4bool fCS, G4double pMom, G4int tgZ, G4int tgN, G4int pPDG=0)
G4double GetVirtualFactor(G4double nu, G4double Q2)
static G4VQCrossSection * GetPointer()
G4QElectronNuclearCrossSection()
~G4QElectronNuclearCrossSection()
G4double ThresholdEnergy(G4int Z, G4int N, G4int PDG=11)
G4double GetExchangeQ2(G4double nu)
G4double GetExchangeEnergy()