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

#include <G4ecpssrFormFactorLixsModel.hh>

+ Inheritance diagram for G4ecpssrFormFactorLixsModel:

Public Member Functions

 G4ecpssrFormFactorLixsModel ()
 
virtual ~G4ecpssrFormFactorLixsModel ()
 
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 ()
 
virtual G4double CalculateL1CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)=0
 
virtual G4double CalculateL2CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)=0
 
virtual G4double CalculateL3CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)=0
 

Detailed Description

Definition at line 47 of file G4ecpssrFormFactorLixsModel.hh.

Constructor & Destructor Documentation

◆ G4ecpssrFormFactorLixsModel()

G4ecpssrFormFactorLixsModel::G4ecpssrFormFactorLixsModel ( )

Definition at line 53 of file G4ecpssrFormFactorLixsModel.cc.

54{
55 interpolation = new G4LinInterpolation();
56
57 for (G4int i=11; i<93; i++)
58 {
59 protonL1DataSetMap[i] = new G4EMDataSet(i,interpolation);
60 protonL1DataSetMap[i]->LoadData("pixe/ecpssr/proton/l1-i01m001c01-");
61
62 protonL2DataSetMap[i] = new G4EMDataSet(i,interpolation);
63 protonL2DataSetMap[i]->LoadData("pixe/ecpssr/proton/l2-i01m001c01-");
64
65 protonL3DataSetMap[i] = new G4EMDataSet(i,interpolation);
66 protonL3DataSetMap[i]->LoadData("pixe/ecpssr/proton/l3-i01m001c01-");
67 }
68
69 for (G4int i=11; i<93; i++)
70 {
71 alphaL1DataSetMap[i] = new G4EMDataSet(i,interpolation);
72 alphaL1DataSetMap[i]->LoadData("pixe/ecpssr/alpha/l1-i02m004c02-");
73
74 alphaL2DataSetMap[i] = new G4EMDataSet(i,interpolation);
75 alphaL2DataSetMap[i]->LoadData("pixe/ecpssr/alpha/l2-i02m004c02-");
76
77 alphaL3DataSetMap[i] = new G4EMDataSet(i,interpolation);
78 alphaL3DataSetMap[i]->LoadData("pixe/ecpssr/alpha/l3-i02m004c02-");
79 }
80
81}
int G4int
Definition: G4Types.hh:85

◆ ~G4ecpssrFormFactorLixsModel()

G4ecpssrFormFactorLixsModel::~G4ecpssrFormFactorLixsModel ( )
virtual

Definition at line 85 of file G4ecpssrFormFactorLixsModel.cc.

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

Member Function Documentation

◆ CalculateL1CrossSection()

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

Implements G4VecpssrLiModel.

Definition at line 101 of file G4ecpssrFormFactorLixsModel.cc.

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

◆ CalculateL2CrossSection()

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

Implements G4VecpssrLiModel.

Definition at line 132 of file G4ecpssrFormFactorLixsModel.cc.

133{
134 G4Proton* aProton = G4Proton::Proton();
135 G4Alpha* aAlpha = G4Alpha::Alpha();
136 G4double sigma = 0;
137
138 if (energyIncident > 0.1*MeV && energyIncident < 100.*MeV && zTarget < 93 && zTarget > 10) {
139
140 if (massIncident == aProton->GetPDGMass())
141 {
142 sigma = protonL2DataSetMap[zTarget]->FindValue(energyIncident/MeV);
143 if (sigma !=0 && energyIncident > protonL2DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
144 }
145 else if (massIncident == aAlpha->GetPDGMass())
146 {
147 sigma = alphaL2DataSetMap[zTarget]->FindValue(energyIncident/MeV);
148 if (sigma !=0 && energyIncident > alphaL2DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
149 }
150 else
151 {
152 sigma = 0.;
153 }
154 }
155
156 // sigma is in internal units: it has been converted from
157 // the input file in barns bt the EmDataset
158 return sigma;
159}

◆ CalculateL3CrossSection()

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

Implements G4VecpssrLiModel.

Definition at line 163 of file G4ecpssrFormFactorLixsModel.cc.

164{
165 G4Proton* aProton = G4Proton::Proton();
166 G4Alpha* aAlpha = G4Alpha::Alpha();
167 G4double sigma = 0;
168
169 if (energyIncident > 0.1*MeV && energyIncident < 100.*MeV && zTarget < 93 && zTarget > 10) {
170
171 if (massIncident == aProton->GetPDGMass())
172 {
173 sigma = protonL3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
174 if (sigma !=0 && energyIncident > protonL3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
175 }
176 else if (massIncident == aAlpha->GetPDGMass())
177 {
178 sigma = alphaL3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
179 if (sigma !=0 && energyIncident > alphaL3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
180 }
181 else
182 {
183 sigma = 0.;
184 }
185 }
186
187 // sigma is in internal units: it has been converted from
188 // the input file in barns bt the EmDataset
189 return sigma;
190}

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