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

#include <G4ecpssrFormFactorMixsModel.hh>

Inheritance diagram for G4ecpssrFormFactorMixsModel:
G4VecpssrMiModel

Public Member Functions

G4double CalculateM1CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident) override
 
G4double CalculateM2CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident) override
 
G4double CalculateM3CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident) override
 
G4double CalculateM4CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident) override
 
G4double CalculateM5CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident) override
 
 G4ecpssrFormFactorMixsModel ()
 
 G4ecpssrFormFactorMixsModel (const G4ecpssrFormFactorMixsModel &)=delete
 
G4ecpssrFormFactorMixsModeloperator= (const G4ecpssrFormFactorMixsModel &right)=delete
 
virtual ~G4ecpssrFormFactorMixsModel ()
 

Private Member Functions

G4double CalculateMiCrossSection (G4int zTarget, G4double massIncident, G4double energyIncident, G4int mShellId)
 

Private Attributes

std::map< G4int, G4VEMDataSet * > alphaM1DataSetMap
 
std::map< G4int, G4VEMDataSet * > alphaM2DataSetMap
 
std::map< G4int, G4VEMDataSet * > alphaM3DataSetMap
 
std::map< G4int, G4VEMDataSet * > alphaM4DataSetMap
 
std::map< G4int, G4VEMDataSet * > alphaM5DataSetMap
 
std::vector< std::map< G4int, G4VEMDataSet * > > alphaMiXsVector
 
G4VDataSetAlgorithminterpolation
 
std::map< G4int, G4VEMDataSet * > protonM1DataSetMap
 
std::map< G4int, G4VEMDataSet * > protonM2DataSetMap
 
std::map< G4int, G4VEMDataSet * > protonM3DataSetMap
 
std::map< G4int, G4VEMDataSet * > protonM4DataSetMap
 
std::map< G4int, G4VEMDataSet * > protonM5DataSetMap
 
std::vector< std::map< G4int, G4VEMDataSet * > > protonMiXsVector
 

Detailed Description

Definition at line 48 of file G4ecpssrFormFactorMixsModel.hh.

Constructor & Destructor Documentation

◆ G4ecpssrFormFactorMixsModel() [1/2]

G4ecpssrFormFactorMixsModel::G4ecpssrFormFactorMixsModel ( )
explicit

Definition at line 50 of file G4ecpssrFormFactorMixsModel.cc.

51{
53
54 for (G4int i=29; i<93; i++)
55 {
57 protonM1DataSetMap[i]->LoadData("pixe/ecpssr/proton/m1-i01m001c01-");
58
60 protonM2DataSetMap[i]->LoadData("pixe/ecpssr/proton/m2-i01m001c01-");
61
63 protonM3DataSetMap[i]->LoadData("pixe/ecpssr/proton/m3-i01m001c01-");
64
66 protonM4DataSetMap[i]->LoadData("pixe/ecpssr/proton/m4-i01m001c01-");
67
69 protonM5DataSetMap[i]->LoadData("pixe/ecpssr/proton/m5-i01m001c01-");
70 }
71
77
78 for (G4int i=29; i<93; i++)
79 {
81 alphaM1DataSetMap[i]->LoadData("pixe/ecpssr/alpha/m1-i02m004c02-");
82
84 alphaM2DataSetMap[i]->LoadData("pixe/ecpssr/alpha/m2-i02m004c02-");
85
87 alphaM3DataSetMap[i]->LoadData("pixe/ecpssr/alpha/m3-i02m004c02-");
88
90 alphaM4DataSetMap[i]->LoadData("pixe/ecpssr/alpha/m4-i02m004c02-");
91
93 alphaM5DataSetMap[i]->LoadData("pixe/ecpssr/alpha/m5-i02m004c02-");
94
95 }
96
102}
int G4int
Definition: G4Types.hh:85
std::vector< std::map< G4int, G4VEMDataSet * > > alphaMiXsVector
std::map< G4int, G4VEMDataSet * > protonM4DataSetMap
std::map< G4int, G4VEMDataSet * > protonM2DataSetMap
std::vector< std::map< G4int, G4VEMDataSet * > > protonMiXsVector
std::map< G4int, G4VEMDataSet * > alphaM1DataSetMap
std::map< G4int, G4VEMDataSet * > protonM1DataSetMap
std::map< G4int, G4VEMDataSet * > alphaM4DataSetMap
std::map< G4int, G4VEMDataSet * > alphaM5DataSetMap
std::map< G4int, G4VEMDataSet * > protonM5DataSetMap
std::map< G4int, G4VEMDataSet * > protonM3DataSetMap
std::map< G4int, G4VEMDataSet * > alphaM3DataSetMap
std::map< G4int, G4VEMDataSet * > alphaM2DataSetMap

References alphaM1DataSetMap, alphaM2DataSetMap, alphaM3DataSetMap, alphaM4DataSetMap, alphaM5DataSetMap, alphaMiXsVector, interpolation, protonM1DataSetMap, protonM2DataSetMap, protonM3DataSetMap, protonM4DataSetMap, protonM5DataSetMap, and protonMiXsVector.

◆ ~G4ecpssrFormFactorMixsModel()

G4ecpssrFormFactorMixsModel::~G4ecpssrFormFactorMixsModel ( )
virtual

◆ G4ecpssrFormFactorMixsModel() [2/2]

G4ecpssrFormFactorMixsModel::G4ecpssrFormFactorMixsModel ( const G4ecpssrFormFactorMixsModel )
delete

Member Function Documentation

◆ CalculateM1CrossSection()

G4double G4ecpssrFormFactorMixsModel::CalculateM1CrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident 
)
overridevirtual

Implements G4VecpssrMiModel.

Definition at line 160 of file G4ecpssrFormFactorMixsModel.cc.

161{
162 // mShellId
163 return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 1);
164}
G4double CalculateMiCrossSection(G4int zTarget, G4double massIncident, G4double energyIncident, G4int mShellId)

References CalculateMiCrossSection().

◆ CalculateM2CrossSection()

G4double G4ecpssrFormFactorMixsModel::CalculateM2CrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident 
)
overridevirtual

Implements G4VecpssrMiModel.

Definition at line 168 of file G4ecpssrFormFactorMixsModel.cc.

169{
170 // mShellId
171 return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 2);
172}

References CalculateMiCrossSection().

◆ CalculateM3CrossSection()

G4double G4ecpssrFormFactorMixsModel::CalculateM3CrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident 
)
overridevirtual

Implements G4VecpssrMiModel.

Definition at line 176 of file G4ecpssrFormFactorMixsModel.cc.

177{
178 return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 3);
179}

References CalculateMiCrossSection().

◆ CalculateM4CrossSection()

G4double G4ecpssrFormFactorMixsModel::CalculateM4CrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident 
)
overridevirtual

Implements G4VecpssrMiModel.

Definition at line 183 of file G4ecpssrFormFactorMixsModel.cc.

184{
185 return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 4);
186}

References CalculateMiCrossSection().

◆ CalculateM5CrossSection()

G4double G4ecpssrFormFactorMixsModel::CalculateM5CrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident 
)
overridevirtual

Implements G4VecpssrMiModel.

Definition at line 190 of file G4ecpssrFormFactorMixsModel.cc.

191{
192 return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 5);
193}

References CalculateMiCrossSection().

◆ CalculateMiCrossSection()

G4double G4ecpssrFormFactorMixsModel::CalculateMiCrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident,
G4int  mShellId 
)
private

Definition at line 128 of file G4ecpssrFormFactorMixsModel.cc.

129{
130 G4Proton* aProton = G4Proton::Proton();
131 G4Alpha* aAlpha = G4Alpha::Alpha();
132 G4double sigma = 0;
133 G4int mShellIndex = mShellId -1;
134
135 if (energyIncident > 0.1*MeV && energyIncident < 100*MeV && zTarget < 93 && zTarget > 28) {
136
137 if (massIncident == aProton->GetPDGMass())
138 {
139 sigma = protonMiXsVector[mShellIndex][zTarget]->FindValue(energyIncident/MeV);
140 if (sigma !=0 && energyIncident > protonMiXsVector[mShellIndex][zTarget]->GetEnergies(0).back()*MeV) return 0.;
141 }
142 else if (massIncident == aAlpha->GetPDGMass())
143 {
144 sigma = alphaMiXsVector[mShellIndex][zTarget]->FindValue(energyIncident/MeV);
145 if (sigma !=0 && energyIncident > alphaMiXsVector[mShellIndex][zTarget]->GetEnergies(0).back()*MeV) return 0.;
146 }
147 else
148 {
149 sigma = 0.;
150 }
151 }
152
153 // sigma is in internal units: it has been converted from
154 // the input file in barns bt the EmDataset
155 return sigma;
156}
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(), alphaMiXsVector, G4ParticleDefinition::GetPDGMass(), MeV, G4Proton::Proton(), and protonMiXsVector.

Referenced by CalculateM1CrossSection(), CalculateM2CrossSection(), CalculateM3CrossSection(), CalculateM4CrossSection(), and CalculateM5CrossSection().

◆ operator=()

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

Field Documentation

◆ alphaM1DataSetMap

std::map< G4int , G4VEMDataSet* > G4ecpssrFormFactorMixsModel::alphaM1DataSetMap
private

◆ alphaM2DataSetMap

std::map< G4int , G4VEMDataSet* > G4ecpssrFormFactorMixsModel::alphaM2DataSetMap
private

◆ alphaM3DataSetMap

std::map< G4int , G4VEMDataSet* > G4ecpssrFormFactorMixsModel::alphaM3DataSetMap
private

◆ alphaM4DataSetMap

std::map< G4int , G4VEMDataSet* > G4ecpssrFormFactorMixsModel::alphaM4DataSetMap
private

◆ alphaM5DataSetMap

std::map< G4int , G4VEMDataSet* > G4ecpssrFormFactorMixsModel::alphaM5DataSetMap
private

◆ alphaMiXsVector

std::vector< std::map<G4int,G4VEMDataSet*> > G4ecpssrFormFactorMixsModel::alphaMiXsVector
private

◆ interpolation

G4VDataSetAlgorithm* G4ecpssrFormFactorMixsModel::interpolation
private

◆ protonM1DataSetMap

std::map< G4int , G4VEMDataSet* > G4ecpssrFormFactorMixsModel::protonM1DataSetMap
private

◆ protonM2DataSetMap

std::map< G4int , G4VEMDataSet* > G4ecpssrFormFactorMixsModel::protonM2DataSetMap
private

◆ protonM3DataSetMap

std::map< G4int , G4VEMDataSet* > G4ecpssrFormFactorMixsModel::protonM3DataSetMap
private

◆ protonM4DataSetMap

std::map< G4int , G4VEMDataSet* > G4ecpssrFormFactorMixsModel::protonM4DataSetMap
private

◆ protonM5DataSetMap

std::map< G4int , G4VEMDataSet* > G4ecpssrFormFactorMixsModel::protonM5DataSetMap
private

◆ protonMiXsVector

std::vector< std::map<G4int,G4VEMDataSet*> > G4ecpssrFormFactorMixsModel::protonMiXsVector
private

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