45#ifndef G4QMuonNuclearCrossSection_h
46#define G4QMuonNuclearCrossSection_h 1
106 static G4int lastPDG;
113 static std::vector <G4double*>* J1;
114 static std::vector <G4double*>* J2;
115 static std::vector <G4double*>* J3;
124 static const G4double mmu=105.65839;
125 static const G4double lmmu=std::log(mmu);
127 G4double flux=lastG*(2.-y*(2.-y))-1.;
128 return (poc*(x-pos)+shd*std::exp(-reg*x))*flux;
136 return dlg1*HighEnergyJ1(x)-lgoe*(HE2+HE2-HighEnergyJ3(x)/lastE);
141 static const G4double le=std::log(50000.);
148 static const G4double ele=std::exp(-d*le);
149 return ha*(lEn*lEn-le2)-ab*(lEn-le)-cd*(std::exp(-d*lEn)-ele);
155 static const G4double le=std::log(e);
156 static const G4double le1=(le-1.)*e;
161 static const G4double ele=std::exp(d*le);
163 return a*((lEn-1.)*En-le1)-ab*(En-e)+cd*(std::exp(d*lEn)-ele);
169 static const G4double le=std::log(e);
171 static const G4double leh=(le-.5)*e2;
176 static const G4double ele=std::exp(d*le);
178 return ha*((lEn-.5)*lastE2-leh)-hab*(lastE2-e2)+cd*(std::exp(d*lEn)-ele);
~G4QMuonNuclearCrossSection()
G4double GetExchangeEnergy()
G4double CalculateCrossSection(G4bool CS, G4int F, G4int I, G4int PDG, G4int Z, G4int N, G4double Momentum)
G4double GetExchangeQ2(G4double nu)
virtual G4double GetCrossSection(G4bool fCS, G4double pMom, G4int tgZ, G4int tgN, G4int pPDG=0)
static G4VQCrossSection * GetPointer()
G4QMuonNuclearCrossSection()
G4int GetExchangePDGCode()
G4double ThresholdEnergy(G4int Z, G4int N, G4int PDG=13)
G4double GetVirtualFactor(G4double nu, G4double Q2)