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

#include <G4ANSTOecpssrLixsModel.hh>

Inheritance diagram for G4ANSTOecpssrLixsModel:

Public Member Functions

 G4ANSTOecpssrLixsModel ()
virtual ~G4ANSTOecpssrLixsModel ()
G4double CalculateL1CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
G4double CalculateL2CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
G4double CalculateL3CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
Public Member Functions inherited from G4VecpssrLiModel
 G4VecpssrLiModel ()
virtual ~G4VecpssrLiModel ()
 G4VecpssrLiModel (const G4VecpssrLiModel &)=delete
G4VecpssrLiModeloperator= (const G4VecpssrLiModel &right)=delete

Detailed Description

Definition at line 48 of file G4ANSTOecpssrLixsModel.hh.

Constructor & Destructor Documentation

◆ G4ANSTOecpssrLixsModel()

G4ANSTOecpssrLixsModel::G4ANSTOecpssrLixsModel ( )

Definition at line 54 of file G4ANSTOecpssrLixsModel.cc.

55{
56 G4cout << "Using ANSTO L Cross Sections! "<< G4endl;
57
58 interpolation = new G4LinInterpolation();
59
60 for (G4int i=26; i<93; i++)
61 {
62 protonL1DataSetMap[i] = new G4EMDataSet(i,interpolation);
63 protonL1DataSetMap[i]->LoadData("pixe_ANSTO/proton/l1-");
64
65 protonL2DataSetMap[i] = new G4EMDataSet(i,interpolation);
66 protonL2DataSetMap[i]->LoadData("pixe_ANSTO/proton/l2-");
67
68 protonL3DataSetMap[i] = new G4EMDataSet(i,interpolation);
69 protonL3DataSetMap[i]->LoadData("pixe_ANSTO/proton/l3-");
70 }
71
72 for (G4int i=26; i<93; i++)
73 {
74 alphaL1DataSetMap[i] = new G4EMDataSet(i,interpolation);
75 alphaL1DataSetMap[i]->LoadData("pixe_ANSTO/alpha/l1-");
76
77 alphaL2DataSetMap[i] = new G4EMDataSet(i,interpolation);
78 alphaL2DataSetMap[i]->LoadData("pixe_ANSTO/alpha/l2-");
79
80 alphaL3DataSetMap[i] = new G4EMDataSet(i,interpolation);
81 alphaL3DataSetMap[i]->LoadData("pixe_ANSTO/alpha/l3-");
82 }
83
84}
int G4int
Definition G4Types.hh:85
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout

◆ ~G4ANSTOecpssrLixsModel()

G4ANSTOecpssrLixsModel::~G4ANSTOecpssrLixsModel ( )
virtual

Definition at line 88 of file G4ANSTOecpssrLixsModel.cc.

89{
90 protonL1DataSetMap.clear();
91 alphaL1DataSetMap.clear();
92
93 protonL2DataSetMap.clear();
94 alphaL2DataSetMap.clear();
95
96 protonL3DataSetMap.clear();
97 alphaL3DataSetMap.clear();
98
99 delete interpolation;
100}

Member Function Documentation

◆ CalculateL1CrossSection()

G4double G4ANSTOecpssrLixsModel::CalculateL1CrossSection ( G4int zTarget,
G4double massIncident,
G4double energyIncident )
virtual

Implements G4VecpssrLiModel.

Definition at line 104 of file G4ANSTOecpssrLixsModel.cc.

105{
106 G4Proton* aProton = G4Proton::Proton();
107 G4Alpha* aAlpha = G4Alpha::Alpha();
108 G4double sigma = 0;
109
110 if (massIncident == aProton->GetPDGMass())
111 {
112
113 if (energyIncident > 0.2*MeV && energyIncident < 5.*MeV && zTarget < 93 && zTarget > 25) {
114
115 sigma = protonL1DataSetMap[zTarget]->FindValue(energyIncident/MeV);
116 if (sigma !=0 && energyIncident > protonL1DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
117 }
118
119 else if (massIncident == aAlpha->GetPDGMass())
120 {
121
122 if (energyIncident > 0.2*MeV && energyIncident < 40.*MeV && zTarget < 93 && zTarget > 25) {
123
124 sigma = alphaL1DataSetMap[zTarget]->FindValue(energyIncident/MeV);
125 if (sigma !=0 && energyIncident > alphaL1DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
126 }
127 else
128 {
129 sigma = 0.;
130 }
131 }
132}
133 // sigma is in internal units: it has been converted from
134 // the input file in barns bt the EmDataset
135 return sigma;
136}
double G4double
Definition G4Types.hh:83
static G4Alpha * Alpha()
Definition G4Alpha.cc:83
static G4Proton * Proton()
Definition G4Proton.cc:90

◆ CalculateL2CrossSection()

G4double G4ANSTOecpssrLixsModel::CalculateL2CrossSection ( G4int zTarget,
G4double massIncident,
G4double energyIncident )
virtual

Implements G4VecpssrLiModel.

Definition at line 140 of file G4ANSTOecpssrLixsModel.cc.

141{
142 G4Proton* aProton = G4Proton::Proton();
143 G4Alpha* aAlpha = G4Alpha::Alpha();
144 G4double sigma = 0;
145
146 if (massIncident == aProton->GetPDGMass())
147 {
148 if (energyIncident > 0.2*MeV && energyIncident < 5.*MeV && zTarget < 93 && zTarget > 25) {
149
150 sigma = protonL2DataSetMap[zTarget]->FindValue(energyIncident/MeV);
151 if (sigma !=0 && energyIncident > protonL2DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
152 }
153
154 else if (massIncident == aAlpha->GetPDGMass())
155 {
156 if (energyIncident > 0.2*MeV && energyIncident < 40.*MeV && zTarget < 93 && zTarget > 25) {
157
158 sigma = alphaL2DataSetMap[zTarget]->FindValue(energyIncident/MeV);
159 if (sigma !=0 && energyIncident > alphaL2DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
160 }
161 else
162 {
163 sigma = 0.;
164 }
165 }
166}
167 // sigma is in internal units: it has been converted from
168 // the input file in barns bt the EmDataset
169 return sigma;
170}

◆ CalculateL3CrossSection()

G4double G4ANSTOecpssrLixsModel::CalculateL3CrossSection ( G4int zTarget,
G4double massIncident,
G4double energyIncident )
virtual

Implements G4VecpssrLiModel.

Definition at line 174 of file G4ANSTOecpssrLixsModel.cc.

175{
176 G4Proton* aProton = G4Proton::Proton();
177 G4Alpha* aAlpha = G4Alpha::Alpha();
178 G4double sigma = 0;
179
180 if (massIncident == aProton->GetPDGMass())
181 {
182 if (energyIncident > 0.2*MeV && energyIncident < 5.*MeV && zTarget < 93 && zTarget > 25) {
183
184 sigma = protonL3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
185 if (sigma !=0 && energyIncident > protonL3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
186 }
187 }
188
189 else if (massIncident == aAlpha->GetPDGMass())
190 {
191 if (energyIncident > 0.2*MeV && energyIncident < 40.*MeV && zTarget < 93 && zTarget > 25) {
192
193 sigma = alphaL3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
194 if (sigma !=0 && energyIncident > alphaL3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
195 }
196 }
197
198 else
199 {
200 sigma = 0.;
201 }
202
203
204 // sigma is in internal units: it has been converted from
205 // the input file in barns bt the EmDataset
206 return sigma;
207}

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