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

#include <G4ecpssrFormFactorLixsModel.hh>

Inheritance diagram for G4ecpssrFormFactorLixsModel:
G4VecpssrLiModel

Public Member Functions

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 ()
 
 G4ecpssrFormFactorLixsModel (const G4ecpssrFormFactorLixsModel &)=delete
 
G4ecpssrFormFactorLixsModeloperator= (const G4ecpssrFormFactorLixsModel &right)=delete
 
virtual ~G4ecpssrFormFactorLixsModel ()
 

Private Attributes

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

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{
54
55 for (G4int i=11; i<93; i++)
56 {
58 protonL1DataSetMap[i]->LoadData("pixe/ecpssr/proton/l1-i01m001c01-");
59
61 protonL2DataSetMap[i]->LoadData("pixe/ecpssr/proton/l2-i01m001c01-");
62
64 protonL3DataSetMap[i]->LoadData("pixe/ecpssr/proton/l3-i01m001c01-");
65 }
66
67 for (G4int i=11; i<93; i++)
68 {
70 alphaL1DataSetMap[i]->LoadData("pixe/ecpssr/alpha/l1-i02m004c02-");
71
73 alphaL2DataSetMap[i]->LoadData("pixe/ecpssr/alpha/l2-i02m004c02-");
74
76 alphaL3DataSetMap[i]->LoadData("pixe/ecpssr/alpha/l3-i02m004c02-");
77 }
78
79}
int G4int
Definition: G4Types.hh:85
std::map< G4int, G4VEMDataSet * > protonL1DataSetMap
std::map< G4int, G4VEMDataSet * > alphaL3DataSetMap
std::map< G4int, G4VEMDataSet * > protonL2DataSetMap
std::map< G4int, G4VEMDataSet * > alphaL1DataSetMap
std::map< G4int, G4VEMDataSet * > alphaL2DataSetMap
std::map< G4int, G4VEMDataSet * > protonL3DataSetMap

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

◆ ~G4ecpssrFormFactorLixsModel()

G4ecpssrFormFactorLixsModel::~G4ecpssrFormFactorLixsModel ( )
virtual

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

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

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

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

◆ operator=()

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

Field Documentation

◆ alphaL1DataSetMap

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

◆ alphaL2DataSetMap

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

◆ alphaL3DataSetMap

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

◆ interpolation

G4VDataSetAlgorithm* G4ecpssrFormFactorLixsModel::interpolation
private

◆ protonL1DataSetMap

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

◆ protonL2DataSetMap

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

◆ protonL3DataSetMap

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

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