75#ifndef G4GoudsmitSaundersonTable_h
76#define G4GoudsmitSaundersonTable_h 1
145 void InitMoliereMSCParams();
149 static G4bool gIsInitialised;
150 static constexpr G4int gLAMBNUM = 64;
151 static constexpr G4int gQNUM1 = 15;
152 static constexpr G4int gQNUM2 = 32;
153 static constexpr G4int gNUMSCR1 = 201;
154 static constexpr G4int gNUMSCR2 = 51;
155 static constexpr G4double gLAMBMIN = 1.0;
156 static constexpr G4double gLAMBMAX = 100000.0;
157 static constexpr G4double gQMIN1 = 0.001;
158 static constexpr G4double gQMAX1 = 0.99;
159 static constexpr G4double gQMIN2 = 0.99;
160 static constexpr G4double gQMAX2 = 7.99;
175 int fNumSPCEbinPerDec;
176 struct SCPCorrection {
182 std::vector<double> fVSCPC;
184 std::vector<SCPCorrection*> fSCPCPerMatCuts;
188 static std::vector<GSMSCAngularDtr*> gGSMSCAngularDistributions1;
189 static std::vector<GSMSCAngularDtr*> gGSMSCAngularDistributions2;
198 static std::vector<double> gMoliereBc;
199 static std::vector<double> gMoliereXc2;
202 G4GSMottCorrection *fMottCorrection;
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)
G4GoudsmitSaundersonTable(G4bool iselectron)
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)