Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4ANSTOecpssrMixsModel Class Reference

#include <G4ANSTOecpssrMixsModel.hh>

+ Inheritance diagram for G4ANSTOecpssrMixsModel:

Public Member Functions

 G4ANSTOecpssrMixsModel ()
 
virtual ~G4ANSTOecpssrMixsModel ()
 
G4double CalculateM1CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
G4double CalculateM2CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
G4double CalculateM3CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
G4double CalculateM4CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
G4double CalculateM5CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
- Public Member Functions inherited from G4VecpssrMiModel
 G4VecpssrMiModel ()
 
virtual ~G4VecpssrMiModel ()
 
virtual G4double CalculateM1CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)=0
 
virtual G4double CalculateM2CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)=0
 
virtual G4double CalculateM3CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)=0
 
virtual G4double CalculateM4CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)=0
 
virtual G4double CalculateM5CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)=0
 

Detailed Description

Definition at line 48 of file G4ANSTOecpssrMixsModel.hh.

Constructor & Destructor Documentation

◆ G4ANSTOecpssrMixsModel()

G4ANSTOecpssrMixsModel::G4ANSTOecpssrMixsModel ( )

Definition at line 54 of file G4ANSTOecpssrMixsModel.cc.

55{
56 G4cout << "Using ANSTO M Cross Sections! "<< G4endl;
57
58 interpolation = new G4LinInterpolation();
59
60 for (G4int i=67; i<93; i++)
61 {
62 protonM1DataSetMap[i] = new G4EMDataSet(i,interpolation);
63 protonM1DataSetMap[i]->LoadData("pixe_ANSTO/proton/m1-");
64
65 protonM2DataSetMap[i] = new G4EMDataSet(i,interpolation);
66 protonM2DataSetMap[i]->LoadData("pixe_ANSTO/proton/m2-");
67
68 protonM3DataSetMap[i] = new G4EMDataSet(i,interpolation);
69 protonM3DataSetMap[i]->LoadData("pixe_ANSTO/proton/m3-");
70
71 protonM4DataSetMap[i] = new G4EMDataSet(i,interpolation);
72 protonM4DataSetMap[i]->LoadData("pixe_ANSTO/proton/m4-");
73
74 protonM5DataSetMap[i] = new G4EMDataSet(i,interpolation);
75 protonM5DataSetMap[i]->LoadData("pixe_ANSTO/proton/m5-");
76 }
77
78 protonMiXsVector.push_back(protonM1DataSetMap);
79 protonMiXsVector.push_back(protonM2DataSetMap);
80 protonMiXsVector.push_back(protonM3DataSetMap);
81 protonMiXsVector.push_back(protonM4DataSetMap);
82 protonMiXsVector.push_back(protonM5DataSetMap);
83
84
85 for (G4int i=67; i<93; i++)
86 {
87 alphaM1DataSetMap[i] = new G4EMDataSet(i,interpolation);
88 alphaM1DataSetMap[i]->LoadData("pixe_ANSTO/alpha/m1-");
89
90 alphaM2DataSetMap[i] = new G4EMDataSet(i,interpolation);
91 alphaM2DataSetMap[i]->LoadData("pixe_ANSTO/alpha/m2-");
92
93 alphaM3DataSetMap[i] = new G4EMDataSet(i,interpolation);
94 alphaM3DataSetMap[i]->LoadData("pixe_ANSTO/alpha/m3-");
95
96 alphaM4DataSetMap[i] = new G4EMDataSet(i,interpolation);
97 alphaM4DataSetMap[i]->LoadData("pixe_ANSTO/alpha/m4-");
98
99 alphaM5DataSetMap[i] = new G4EMDataSet(i,interpolation);
100 alphaM5DataSetMap[i]->LoadData("pixe_ANSTO/alpha/m5-");
101 }
102
103 alphaMiXsVector.push_back(alphaM1DataSetMap);
104 alphaMiXsVector.push_back(alphaM2DataSetMap);
105 alphaMiXsVector.push_back(alphaM3DataSetMap);
106 alphaMiXsVector.push_back(alphaM4DataSetMap);
107 alphaMiXsVector.push_back(alphaM5DataSetMap);
108}
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout

◆ ~G4ANSTOecpssrMixsModel()

G4ANSTOecpssrMixsModel::~G4ANSTOecpssrMixsModel ( )
virtual

Definition at line 112 of file G4ANSTOecpssrMixsModel.cc.

113{
114 protonM1DataSetMap.clear();
115 alphaM1DataSetMap.clear();
116
117 protonM2DataSetMap.clear();
118 alphaM2DataSetMap.clear();
119
120 protonM3DataSetMap.clear();
121 alphaM3DataSetMap.clear();
122
123 protonM4DataSetMap.clear();
124 alphaM4DataSetMap.clear();
125
126 protonM5DataSetMap.clear();
127 alphaM5DataSetMap.clear();
128
129 delete interpolation;
130}

Member Function Documentation

◆ CalculateM1CrossSection()

G4double G4ANSTOecpssrMixsModel::CalculateM1CrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident 
)
virtual

Implements G4VecpssrMiModel.

Definition at line 172 of file G4ANSTOecpssrMixsModel.cc.

173{
174
175 // mShellId
176 return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 1);
177
178}

◆ CalculateM2CrossSection()

G4double G4ANSTOecpssrMixsModel::CalculateM2CrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident 
)
virtual

Implements G4VecpssrMiModel.

Definition at line 182 of file G4ANSTOecpssrMixsModel.cc.

183{
184
185 // mShellId
186 return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 2);
187
188 /*
189
190 G4Proton* aProton = G4Proton::Proton();
191 G4Alpha* aAlpha = G4Alpha::Alpha();
192 G4double sigma = 0;
193
194 if (energyIncident > 0.1*MeV && energyIncident < 10*MeV && zTarget < 93 && zTarget > 61) {
195
196 if (massIncident == aProton->GetPDGMass())
197 {
198 sigma = protonM2DataSetMap[zTarget]->FindValue(energyIncident/MeV);
199 if (sigma !=0 && energyIncident > protonM2DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
200 }
201 else if (massIncident == aAlpha->GetPDGMass())
202 {
203 sigma = alphaM2DataSetMap[zTarget]->FindValue(energyIncident/MeV);
204 if (sigma !=0 && energyIncident > alphaM2DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
205 }
206 else
207 {
208 sigma = 0.;
209 }
210 }
211
212 // sigma is in internal units: it has been converted from
213 // the input file in barns bt the EmDataset
214 return sigma;
215 */
216}

◆ CalculateM3CrossSection()

G4double G4ANSTOecpssrMixsModel::CalculateM3CrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident 
)
virtual

Implements G4VecpssrMiModel.

Definition at line 220 of file G4ANSTOecpssrMixsModel.cc.

221{
222
223 return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 3);
224 /*
225
226
227 G4Proton* aProton = G4Proton::Proton();
228 G4Alpha* aAlpha = G4Alpha::Alpha();
229 G4double sigma = 0;
230
231 if (energyIncident > 0.1*MeV && energyIncident < 10*MeV && zTarget < 93 && zTarget > 61) {
232
233 if (massIncident == aProton->GetPDGMass())
234 {
235 sigma = protonM3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
236 if (sigma !=0 && energyIncident > protonM3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
237 }
238 else if (massIncident == aAlpha->GetPDGMass())
239 {
240 sigma = alphaM3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
241 if (sigma !=0 && energyIncident > alphaM3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
242 }
243 else
244 {
245 sigma = 0.;
246 }
247 }
248
249 // sigma is in internal units: it has been converted from
250 // the input file in barns bt the EmDataset
251 return sigma;
252 */
253}

◆ CalculateM4CrossSection()

G4double G4ANSTOecpssrMixsModel::CalculateM4CrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident 
)
virtual

Implements G4VecpssrMiModel.

Definition at line 257 of file G4ANSTOecpssrMixsModel.cc.

258{
259
260 return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 4);
261 /*
262 G4Proton* aProton = G4Proton::Proton();
263 G4Alpha* aAlpha = G4Alpha::Alpha();
264 G4double sigma = 0;
265
266 if (energyIncident > 0.1*MeV && energyIncident < 10*MeV && zTarget < 93 && zTarget > 61) {
267
268 if (massIncident == aProton->GetPDGMass())
269 {
270 sigma = protonM3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
271 if (sigma !=0 && energyIncident > protonM3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
272 }
273 else if (massIncident == aAlpha->GetPDGMass())
274 {
275 sigma = alphaM3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
276 if (sigma !=0 && energyIncident > alphaM3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
277 }
278 else
279 {
280 sigma = 0.;
281 }
282 }
283
284 // sigma is in internal units: it has been converted from
285 // the input file in barns bt the EmDataset
286 return sigma;
287 */
288}

◆ CalculateM5CrossSection()

G4double G4ANSTOecpssrMixsModel::CalculateM5CrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident 
)
virtual

Implements G4VecpssrMiModel.

Definition at line 292 of file G4ANSTOecpssrMixsModel.cc.

293{
294
295 return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 5);
296 /*
297 G4Proton* aProton = G4Proton::Proton();
298 G4Alpha* aAlpha = G4Alpha::Alpha();
299 G4double sigma = 0;
300
301 if (energyIncident > 0.1*MeV && energyIncident < 10*MeV && zTarget < 93 && zTarget > 61) {
302
303 if (massIncident == aProton->GetPDGMass())
304 {
305 sigma = protonM3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
306 if (sigma !=0 && energyIncident > protonM3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
307 }
308 else if (massIncident == aAlpha->GetPDGMass())
309 {
310 sigma = alphaM3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
311 if (sigma !=0 && energyIncident > alphaM3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
312 }
313 else
314 {
315 sigma = 0.;
316 }
317 }
318
319 // sigma is in internal units: it has been converted from
320 // the input file in barns bt the EmDataset
321 return sigma;
322 */
323}

The documentation for this class was generated from the following files: