72#ifndef G4GSMottCorrection_h
73#define G4GSMottCorrection_h 1
104 void InitMCDataPerElement();
106 void InitMCDataPerMaterials();
108 void LoadMCDataElement(
const G4Element*);
110 void ReadCompressedFile(std::string fname, std::istringstream &iss);
115 struct DataPerDelta {
127 DataPerDelta **fDataPerDelta;
131 struct DataPerMaterial {
132 DataPerEkin **fDataPerEkin;
135 void AllocateDataPerMaterial(DataPerMaterial*);
136 void DeAllocateDataPerMaterial(DataPerMaterial*);
137 void ClearMCDataPerElement();
138 void ClearMCDataPerMaterial();
160 static constexpr G4int gNumEkin = 31;
161 static constexpr G4int gNumBeta2 = 16;
162 static constexpr G4int gNumDelta = 28;
163 static constexpr G4int gNumAngle = 32;
164 static constexpr G4int gMaxZet = 98;
165 static constexpr G4double gMinEkin = 1.*CLHEP::keV;
166 static constexpr G4double gMidEkin = 100.*CLHEP::keV;
167 static constexpr G4double gMaxBeta2 = 0.9999;
168 static constexpr G4double gMaxDelta = 0.9;
178 static const std::string gElemSymbols[];
180 std::vector<DataPerMaterial*> fMCDataPerElement;
181 std::vector<DataPerMaterial*> fMCDataPerMaterial;
void GetMottCorrectionFactors(G4double logekin, G4double beta2, G4int matindx, G4double &mcToScr, G4double &mcToQ1, G4double &mcToG2PerG1)
G4double GetMottRejectionValue(G4double logekin, G4double G4beta2, G4double q1, G4double cost, G4int matindx, G4int &ekindx, G4int &deltindx)