106 void InitMCDataPerElement();
108 void InitMCDataPerMaterials();
110 void LoadMCDataElement(
const G4Element*);
112 void ReadCompressedFile(
const std::string& fname, std::istringstream &iss);
117 struct DataPerDelta {
129 DataPerDelta **fDataPerDelta;
133 struct DataPerMaterial {
134 DataPerEkin **fDataPerEkin;
137 void AllocateDataPerMaterial(DataPerMaterial*);
138 void DeAllocateDataPerMaterial(DataPerMaterial*);
139 void ClearMCDataPerElement();
140 void ClearMCDataPerMaterial();
162 static constexpr G4int gNumEkin = 31;
163 static constexpr G4int gNumBeta2 = 16;
164 static constexpr G4int gNumDelta = 28;
165 static constexpr G4int gNumAngle = 32;
166 static constexpr G4int gMaxZet = 98;
167 static constexpr G4double gMinEkin = 1.*CLHEP::keV;
168 static constexpr G4double gMidEkin = 100.*CLHEP::keV;
169 static constexpr G4double gMaxBeta2 = 0.9999;
170 static constexpr G4double gMaxDelta = 0.9;
180 static const std::string gElemSymbols[];
182 std::vector<DataPerMaterial*> fMCDataPerElement;
183 std::vector<DataPerMaterial*> fMCDataPerMaterial;
G4double GetMottRejectionValue(G4double logekin, G4double G4beta2, G4double q1, G4double cost, G4int matindx, G4int &ekindx, G4int &deltindx)