73#ifndef G4GoudsmitSaundersonTable_h
74#define G4GoudsmitSaundersonTable_h 1
143 void InitMoliereMSCParams();
147 static G4bool gIsInitialised;
148 static constexpr G4int gLAMBNUM = 64;
149 static constexpr G4int gQNUM1 = 15;
150 static constexpr G4int gQNUM2 = 32;
151 static constexpr G4int gNUMSCR1 = 201;
152 static constexpr G4int gNUMSCR2 = 51;
153 static constexpr G4double gLAMBMIN = 1.0;
154 static constexpr G4double gLAMBMAX = 100000.0;
155 static constexpr G4double gQMIN1 = 0.001;
156 static constexpr G4double gQMAX1 = 0.99;
157 static constexpr G4double gQMIN2 = 0.99;
158 static constexpr G4double gQMAX2 = 7.99;
173 int fNumSPCEbinPerDec;
174 struct SCPCorrection {
180 std::vector<double> fVSCPC;
182 std::vector<SCPCorrection*> fSCPCPerMatCuts;
186 static std::vector<GSMSCAngularDtr*> gGSMSCAngularDistributions1;
187 static std::vector<GSMSCAngularDtr*> gGSMSCAngularDistributions2;
196 static std::vector<double> gMoliereBc;
197 static std::vector<double> gMoliereXc2;
G4double SampleGSSRCosTheta(const GSMSCAngularDtr *gsDrt, G4double transfpar)
G4double SampleCosTheta(G4double lambdaval, G4double qval, G4double scra, G4double lekin, G4double beta2, G4int matindx, GSMSCAngularDtr **gsDtr, G4int &mcekini, G4int &mcdelti, G4double &transfPar, G4bool isfirst)
G4double ComputeScatteringPowerCorrection(const G4MaterialCutsCouple *matcut, G4double ekin)
void GetMottCorrectionFactors(G4double logekin, G4double beta2, G4int matindx, G4double &mcToScr, G4double &mcToQ1, G4double &mcToG2PerG1)
G4double SingleScattering(G4double lambdaval, G4double scra, G4double lekin, G4double beta2, G4int matindx)
~G4GoudsmitSaundersonTable()
G4bool Sampling(G4double lambdaval, G4double qval, G4double scra, G4double &cost, G4double &sint, G4double lekin, G4double beta2, G4int matindx, GSMSCAngularDtr **gsDtr, G4int &mcekini, G4int &mcdelti, G4double &transfPar, G4bool isfirst)
void SetOptionPWACorrection(G4bool val)
GSMSCAngularDtr * GetGSAngularDtr(G4double scra, G4double &lambdaval, G4double &qval, G4double &transfpar)
G4double GetMoliereBc(G4int matindx)
void Initialise(G4double lownergylimit, G4double highenergylimit)
G4double GetMoliereXc2(G4int matindx)
void SetOptionMottCorrection(G4bool val)