Geant4-11
Public Member Functions | Private Member Functions | Private Attributes
G4ANSTOecpssrMixsModel Class Reference

#include <G4ANSTOecpssrMixsModel.hh>

Inheritance diagram for G4ANSTOecpssrMixsModel:
G4VecpssrMiModel

Public Member Functions

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)
 
 G4ANSTOecpssrMixsModel ()
 
virtual ~G4ANSTOecpssrMixsModel ()
 

Private Member Functions

G4double CalculateMiCrossSection (G4int zTarget, G4double massIncident, G4double energyIncident, G4int mShellId)
 
 G4ANSTOecpssrMixsModel (const G4ANSTOecpssrMixsModel &)
 
G4ANSTOecpssrMixsModeloperator= (const G4ANSTOecpssrMixsModel &right)
 

Private Attributes

std::map< G4int, G4VEMDataSet * > alphaM1DataSetMap
 
std::map< G4int, G4VEMDataSet * > alphaM2DataSetMap
 
std::map< G4int, G4VEMDataSet * > alphaM3DataSetMap
 
std::map< G4int, G4VEMDataSet * > alphaM4DataSetMap
 
std::map< G4int, G4VEMDataSet * > alphaM5DataSetMap
 
std::vector< std::map< G4int, G4VEMDataSet * > > alphaMiXsVector
 
std::map< G4int, G4VEMDataSet * > carbonM1DataSetMap
 
std::map< G4int, G4VEMDataSet * > carbonM2DataSetMap
 
std::map< G4int, G4VEMDataSet * > carbonM3DataSetMap
 
std::map< G4int, G4VEMDataSet * > carbonM4DataSetMap
 
std::map< G4int, G4VEMDataSet * > carbonM5DataSetMap
 
std::vector< std::map< G4int, G4VEMDataSet * > > carbonMiXsVector
 
G4VDataSetAlgorithminterpolation
 
std::map< G4int, G4VEMDataSet * > protonM1DataSetMap
 
std::map< G4int, G4VEMDataSet * > protonM2DataSetMap
 
std::map< G4int, G4VEMDataSet * > protonM3DataSetMap
 
std::map< G4int, G4VEMDataSet * > protonM4DataSetMap
 
std::map< G4int, G4VEMDataSet * > protonM5DataSetMap
 
std::vector< std::map< G4int, G4VEMDataSet * > > protonMiXsVector
 

Detailed Description

Definition at line 48 of file G4ANSTOecpssrMixsModel.hh.

Constructor & Destructor Documentation

◆ G4ANSTOecpssrMixsModel() [1/2]

G4ANSTOecpssrMixsModel::G4ANSTOecpssrMixsModel ( )

Definition at line 54 of file G4ANSTOecpssrMixsModel.cc.

55{
56 G4cout << "Using ANSTO M Cross Sections! "<< G4endl;
57
59
60 for (G4int i=67; i<93; i++)
61 {
63 protonM1DataSetMap[i]->LoadData("pixe_ANSTO/proton/m1-");
64
66 protonM2DataSetMap[i]->LoadData("pixe_ANSTO/proton/m2-");
67
69 protonM3DataSetMap[i]->LoadData("pixe_ANSTO/proton/m3-");
70
72 protonM4DataSetMap[i]->LoadData("pixe_ANSTO/proton/m4-");
73
75 protonM5DataSetMap[i]->LoadData("pixe_ANSTO/proton/m5-");
76 }
77
83
84
85 for (G4int i=67; i<93; i++)
86 {
88 alphaM1DataSetMap[i]->LoadData("pixe_ANSTO/alpha/m1-");
89
91 alphaM2DataSetMap[i]->LoadData("pixe_ANSTO/alpha/m2-");
92
94 alphaM3DataSetMap[i]->LoadData("pixe_ANSTO/alpha/m3-");
95
97 alphaM4DataSetMap[i]->LoadData("pixe_ANSTO/alpha/m4-");
98
100 alphaM5DataSetMap[i]->LoadData("pixe_ANSTO/alpha/m5-");
101 }
102
108}
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
G4VDataSetAlgorithm * interpolation
std::map< G4int, G4VEMDataSet * > alphaM5DataSetMap
std::map< G4int, G4VEMDataSet * > protonM5DataSetMap
std::map< G4int, G4VEMDataSet * > protonM4DataSetMap
std::map< G4int, G4VEMDataSet * > alphaM2DataSetMap
std::map< G4int, G4VEMDataSet * > alphaM3DataSetMap
std::vector< std::map< G4int, G4VEMDataSet * > > alphaMiXsVector
std::map< G4int, G4VEMDataSet * > protonM1DataSetMap
std::map< G4int, G4VEMDataSet * > protonM2DataSetMap
std::vector< std::map< G4int, G4VEMDataSet * > > protonMiXsVector
std::map< G4int, G4VEMDataSet * > alphaM4DataSetMap
std::map< G4int, G4VEMDataSet * > alphaM1DataSetMap
std::map< G4int, G4VEMDataSet * > protonM3DataSetMap

References alphaM1DataSetMap, alphaM2DataSetMap, alphaM3DataSetMap, alphaM4DataSetMap, alphaM5DataSetMap, alphaMiXsVector, G4cout, G4endl, interpolation, protonM1DataSetMap, protonM2DataSetMap, protonM3DataSetMap, protonM4DataSetMap, protonM5DataSetMap, and protonMiXsVector.

◆ ~G4ANSTOecpssrMixsModel()

G4ANSTOecpssrMixsModel::~G4ANSTOecpssrMixsModel ( )
virtual

◆ G4ANSTOecpssrMixsModel() [2/2]

G4ANSTOecpssrMixsModel::G4ANSTOecpssrMixsModel ( const G4ANSTOecpssrMixsModel )
private

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}
G4double CalculateMiCrossSection(G4int zTarget, G4double massIncident, G4double energyIncident, G4int mShellId)

References CalculateMiCrossSection().

◆ 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}

References CalculateMiCrossSection().

◆ 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}

References CalculateMiCrossSection().

◆ 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}

References CalculateMiCrossSection().

◆ 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}

References CalculateMiCrossSection().

◆ CalculateMiCrossSection()

G4double G4ANSTOecpssrMixsModel::CalculateMiCrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident,
G4int  mShellId 
)
private

Definition at line 134 of file G4ANSTOecpssrMixsModel.cc.

135{
136 G4Proton* aProton = G4Proton::Proton();
137 G4Alpha* aAlpha = G4Alpha::Alpha();
138 G4double sigma = 0;
139 G4int mShellIndex = mShellId -1;
140
141 if (massIncident == aProton->GetPDGMass())
142 {
143 if (energyIncident > 0.2*MeV && energyIncident < 5.*MeV && zTarget < 93 && zTarget > 66) {
144
145 sigma = protonMiXsVector[mShellIndex][zTarget]->FindValue(energyIncident/MeV);
146 if (sigma !=0 && energyIncident > protonMiXsVector[mShellIndex][zTarget]->GetEnergies(0).back()*MeV) return 0.;
147 }
148 }
149
150 else if (massIncident == aAlpha->GetPDGMass())
151 {
152 if (energyIncident > 0.2*MeV && energyIncident < 10.*MeV && zTarget < 93 && zTarget > 66) {
153
154 sigma = alphaMiXsVector[mShellIndex][zTarget]->FindValue(energyIncident/MeV);
155 if (sigma !=0 && energyIncident > alphaMiXsVector[mShellIndex][zTarget]->GetEnergies(0).back()*MeV) return 0.;
156 }
157 }
158
159 else
160 {
161 sigma = 0.;
162 }
163
164
165 // sigma is in internal units: it has been converted from
166 // the input file in barns bt the EmDataset
167 return sigma;
168}
static constexpr double MeV
Definition: G4SIunits.hh:200
double G4double
Definition: G4Types.hh:83
static G4Alpha * Alpha()
Definition: G4Alpha.cc:88
static G4Proton * Proton()
Definition: G4Proton.cc:92

References G4Alpha::Alpha(), alphaMiXsVector, G4ParticleDefinition::GetPDGMass(), MeV, G4Proton::Proton(), and protonMiXsVector.

Referenced by CalculateM1CrossSection(), CalculateM2CrossSection(), CalculateM3CrossSection(), CalculateM4CrossSection(), and CalculateM5CrossSection().

◆ operator=()

G4ANSTOecpssrMixsModel & G4ANSTOecpssrMixsModel::operator= ( const G4ANSTOecpssrMixsModel right)
private

Field Documentation

◆ alphaM1DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::alphaM1DataSetMap
private

Definition at line 81 of file G4ANSTOecpssrMixsModel.hh.

Referenced by G4ANSTOecpssrMixsModel(), and ~G4ANSTOecpssrMixsModel().

◆ alphaM2DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::alphaM2DataSetMap
private

Definition at line 82 of file G4ANSTOecpssrMixsModel.hh.

Referenced by G4ANSTOecpssrMixsModel(), and ~G4ANSTOecpssrMixsModel().

◆ alphaM3DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::alphaM3DataSetMap
private

Definition at line 83 of file G4ANSTOecpssrMixsModel.hh.

Referenced by G4ANSTOecpssrMixsModel(), and ~G4ANSTOecpssrMixsModel().

◆ alphaM4DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::alphaM4DataSetMap
private

Definition at line 84 of file G4ANSTOecpssrMixsModel.hh.

Referenced by G4ANSTOecpssrMixsModel(), and ~G4ANSTOecpssrMixsModel().

◆ alphaM5DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::alphaM5DataSetMap
private

Definition at line 85 of file G4ANSTOecpssrMixsModel.hh.

Referenced by G4ANSTOecpssrMixsModel(), and ~G4ANSTOecpssrMixsModel().

◆ alphaMiXsVector

std::vector< std::map<G4int,G4VEMDataSet*> > G4ANSTOecpssrMixsModel::alphaMiXsVector
private

Definition at line 72 of file G4ANSTOecpssrMixsModel.hh.

Referenced by CalculateMiCrossSection(), and G4ANSTOecpssrMixsModel().

◆ carbonM1DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::carbonM1DataSetMap
private

Definition at line 87 of file G4ANSTOecpssrMixsModel.hh.

◆ carbonM2DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::carbonM2DataSetMap
private

Definition at line 88 of file G4ANSTOecpssrMixsModel.hh.

◆ carbonM3DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::carbonM3DataSetMap
private

Definition at line 89 of file G4ANSTOecpssrMixsModel.hh.

◆ carbonM4DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::carbonM4DataSetMap
private

Definition at line 90 of file G4ANSTOecpssrMixsModel.hh.

◆ carbonM5DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::carbonM5DataSetMap
private

Definition at line 91 of file G4ANSTOecpssrMixsModel.hh.

◆ carbonMiXsVector

std::vector< std::map<G4int,G4VEMDataSet*> > G4ANSTOecpssrMixsModel::carbonMiXsVector
private

Definition at line 73 of file G4ANSTOecpssrMixsModel.hh.

◆ interpolation

G4VDataSetAlgorithm* G4ANSTOecpssrMixsModel::interpolation
private

Definition at line 69 of file G4ANSTOecpssrMixsModel.hh.

Referenced by G4ANSTOecpssrMixsModel(), and ~G4ANSTOecpssrMixsModel().

◆ protonM1DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::protonM1DataSetMap
private

Definition at line 75 of file G4ANSTOecpssrMixsModel.hh.

Referenced by G4ANSTOecpssrMixsModel(), and ~G4ANSTOecpssrMixsModel().

◆ protonM2DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::protonM2DataSetMap
private

Definition at line 76 of file G4ANSTOecpssrMixsModel.hh.

Referenced by G4ANSTOecpssrMixsModel(), and ~G4ANSTOecpssrMixsModel().

◆ protonM3DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::protonM3DataSetMap
private

Definition at line 77 of file G4ANSTOecpssrMixsModel.hh.

Referenced by G4ANSTOecpssrMixsModel(), and ~G4ANSTOecpssrMixsModel().

◆ protonM4DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::protonM4DataSetMap
private

Definition at line 78 of file G4ANSTOecpssrMixsModel.hh.

Referenced by G4ANSTOecpssrMixsModel(), and ~G4ANSTOecpssrMixsModel().

◆ protonM5DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrMixsModel::protonM5DataSetMap
private

Definition at line 79 of file G4ANSTOecpssrMixsModel.hh.

Referenced by G4ANSTOecpssrMixsModel(), and ~G4ANSTOecpssrMixsModel().

◆ protonMiXsVector

std::vector< std::map<G4int,G4VEMDataSet*> > G4ANSTOecpssrMixsModel::protonMiXsVector
private

Definition at line 71 of file G4ANSTOecpssrMixsModel.hh.

Referenced by CalculateMiCrossSection(), and G4ANSTOecpssrMixsModel().


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