Geant4 11.1.1
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) override
 
G4double CalculateL2CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident) override
 
G4double CalculateL3CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident) override
 
 G4ecpssrFormFactorLixsModel (const G4ecpssrFormFactorLixsModel &)=delete
 
G4ecpssrFormFactorLixsModeloperator= (const G4ecpssrFormFactorLixsModel &right)=delete
 
- 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
 
 G4VecpssrLiModel (const G4VecpssrLiModel &)=delete
 
G4VecpssrLiModeloperator= (const G4VecpssrLiModel &right)=delete
 

Detailed Description

Definition at line 47 of file G4ecpssrFormFactorLixsModel.hh.

Constructor & Destructor Documentation

◆ G4ecpssrFormFactorLixsModel() [1/2]

G4ecpssrFormFactorLixsModel::G4ecpssrFormFactorLixsModel ( )
explicit

Definition at line 51 of file G4ecpssrFormFactorLixsModel.cc.

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

◆ ~G4ecpssrFormFactorLixsModel()

G4ecpssrFormFactorLixsModel::~G4ecpssrFormFactorLixsModel ( )
virtual

Definition at line 83 of file G4ecpssrFormFactorLixsModel.cc.

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

◆ G4ecpssrFormFactorLixsModel() [2/2]

G4ecpssrFormFactorLixsModel::G4ecpssrFormFactorLixsModel ( const G4ecpssrFormFactorLixsModel )
delete

Member Function Documentation

◆ CalculateL1CrossSection()

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

Implements G4VecpssrLiModel.

Definition at line 99 of file G4ecpssrFormFactorLixsModel.cc.

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

Implements G4VecpssrLiModel.

Definition at line 130 of file G4ecpssrFormFactorLixsModel.cc.

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

◆ CalculateL3CrossSection()

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

Implements G4VecpssrLiModel.

Definition at line 161 of file G4ecpssrFormFactorLixsModel.cc.

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

◆ operator=()

G4ecpssrFormFactorLixsModel & G4ecpssrFormFactorLixsModel::operator= ( const G4ecpssrFormFactorLixsModel right)
delete

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