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

#include <G4ANSTOecpssrLixsModel.hh>

Inheritance diagram for G4ANSTOecpssrLixsModel:
G4VecpssrLiModel

Public Member Functions

G4double CalculateL1CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
G4double CalculateL2CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
G4double CalculateL3CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
 G4ANSTOecpssrLixsModel ()
 
virtual ~G4ANSTOecpssrLixsModel ()
 

Private Member Functions

 G4ANSTOecpssrLixsModel (const G4ANSTOecpssrLixsModel &)
 
G4ANSTOecpssrLixsModeloperator= (const G4ANSTOecpssrLixsModel &right)
 

Private Attributes

std::map< G4int, G4VEMDataSet * > alphaL1DataSetMap
 
std::map< G4int, G4VEMDataSet * > alphaL2DataSetMap
 
std::map< G4int, G4VEMDataSet * > alphaL3DataSetMap
 
std::map< G4int, G4VEMDataSet * > carbonL1DataSetMap
 
std::map< G4int, G4VEMDataSet * > carbonL2DataSetMap
 
std::map< G4int, G4VEMDataSet * > carbonL3DataSetMap
 
G4VDataSetAlgorithminterpolation
 
std::map< G4int, G4VEMDataSet * > protonL1DataSetMap
 
std::map< G4int, G4VEMDataSet * > protonL2DataSetMap
 
std::map< G4int, G4VEMDataSet * > protonL3DataSetMap
 

Detailed Description

Definition at line 48 of file G4ANSTOecpssrLixsModel.hh.

Constructor & Destructor Documentation

◆ G4ANSTOecpssrLixsModel() [1/2]

G4ANSTOecpssrLixsModel::G4ANSTOecpssrLixsModel ( )

Definition at line 54 of file G4ANSTOecpssrLixsModel.cc.

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

References alphaL1DataSetMap, alphaL2DataSetMap, alphaL3DataSetMap, G4cout, G4endl, interpolation, protonL1DataSetMap, protonL2DataSetMap, and protonL3DataSetMap.

◆ ~G4ANSTOecpssrLixsModel()

G4ANSTOecpssrLixsModel::~G4ANSTOecpssrLixsModel ( )
virtual

◆ G4ANSTOecpssrLixsModel() [2/2]

G4ANSTOecpssrLixsModel::G4ANSTOecpssrLixsModel ( const G4ANSTOecpssrLixsModel )
private

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}
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(), alphaL1DataSetMap, G4ParticleDefinition::GetPDGMass(), MeV, G4Proton::Proton(), and protonL1DataSetMap.

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

References G4Alpha::Alpha(), alphaL2DataSetMap, G4ParticleDefinition::GetPDGMass(), MeV, G4Proton::Proton(), and protonL2DataSetMap.

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

References G4Alpha::Alpha(), alphaL3DataSetMap, G4ParticleDefinition::GetPDGMass(), MeV, G4Proton::Proton(), and protonL3DataSetMap.

◆ operator=()

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

Field Documentation

◆ alphaL1DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrLixsModel::alphaL1DataSetMap
private

◆ alphaL2DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrLixsModel::alphaL2DataSetMap
private

◆ alphaL3DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrLixsModel::alphaL3DataSetMap
private

◆ carbonL1DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrLixsModel::carbonL1DataSetMap
private

Definition at line 73 of file G4ANSTOecpssrLixsModel.hh.

◆ carbonL2DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrLixsModel::carbonL2DataSetMap
private

Definition at line 74 of file G4ANSTOecpssrLixsModel.hh.

◆ carbonL3DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrLixsModel::carbonL3DataSetMap
private

Definition at line 75 of file G4ANSTOecpssrLixsModel.hh.

◆ interpolation

G4VDataSetAlgorithm* G4ANSTOecpssrLixsModel::interpolation
private

Definition at line 65 of file G4ANSTOecpssrLixsModel.hh.

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

◆ protonL1DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrLixsModel::protonL1DataSetMap
private

◆ protonL2DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrLixsModel::protonL2DataSetMap
private

◆ protonL3DataSetMap

std::map< G4int , G4VEMDataSet* > G4ANSTOecpssrLixsModel::protonL3DataSetMap
private

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