Geant4  10.02.p03
G4ecpssrFormFactorMixsModel Class Reference

#include <G4ecpssrFormFactorMixsModel.hh>

Inheritance diagram for G4ecpssrFormFactorMixsModel:
Collaboration diagram for G4ecpssrFormFactorMixsModel:

Public Member Functions

 G4ecpssrFormFactorMixsModel ()
 
virtual ~G4ecpssrFormFactorMixsModel ()
 
G4double CalculateM1CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
G4double CalculateM2CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
G4double CalculateM3CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
G4double CalculateM4CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
G4double CalculateM5CrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
- Public Member Functions inherited from G4VecpssrMiModel
 G4VecpssrMiModel ()
 
virtual ~G4VecpssrMiModel ()
 

Private Member Functions

G4double CalculateMiCrossSection (G4int zTarget, G4double massIncident, G4double energyIncident, G4int mShellId)
 
 G4ecpssrFormFactorMixsModel (const G4ecpssrFormFactorMixsModel &)
 
G4ecpssrFormFactorMixsModeloperator= (const G4ecpssrFormFactorMixsModel &right)
 

Private Attributes

G4VDataSetAlgorithminterpolation
 
std::vector< std::map< G4int, G4VEMDataSet * > > protonMiXsVector
 
std::vector< std::map< G4int, G4VEMDataSet * > > alphaMiXsVector
 
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::map< G4int, G4VEMDataSet *> alphaM1DataSetMap
 
std::map< G4int, G4VEMDataSet *> alphaM2DataSetMap
 
std::map< G4int, G4VEMDataSet *> alphaM3DataSetMap
 
std::map< G4int, G4VEMDataSet *> alphaM4DataSetMap
 
std::map< G4int, G4VEMDataSet *> alphaM5DataSetMap
 

Detailed Description

Definition at line 47 of file G4ecpssrFormFactorMixsModel.hh.

Constructor & Destructor Documentation

◆ G4ecpssrFormFactorMixsModel() [1/2]

G4ecpssrFormFactorMixsModel::G4ecpssrFormFactorMixsModel ( )

Definition at line 53 of file G4ecpssrFormFactorMixsModel.cc.

54 {
56 
57  for (G4int i=62; i<93; i++)
58  {
60  protonM1DataSetMap[i]->LoadData("pixe/ecpssr/proton/m1-");
61 
63  protonM2DataSetMap[i]->LoadData("pixe/ecpssr/proton/m2-");
64 
66  protonM3DataSetMap[i]->LoadData("pixe/ecpssr/proton/m3-");
67 
69  protonM4DataSetMap[i]->LoadData("pixe/ecpssr/proton/m4-");
70 
72  protonM5DataSetMap[i]->LoadData("pixe/ecpssr/proton/m5-");
73  }
74 
80 
81 
82  for (G4int i=62; i<93; i++)
83  {
85  alphaM1DataSetMap[i]->LoadData("pixe/ecpssr/alpha/m1-");
86 
88  alphaM2DataSetMap[i]->LoadData("pixe/ecpssr/alpha/m2-");
89 
91  alphaM3DataSetMap[i]->LoadData("pixe/ecpssr/alpha/m3-");
92 
94  alphaM4DataSetMap[i]->LoadData("pixe/ecpssr/alpha/m4-");
95 
97  alphaM5DataSetMap[i]->LoadData("pixe/ecpssr/alpha/m5-");
98 
99  }
100 
106 
107 
108 
109 }
std::map< G4int, G4VEMDataSet *> protonM1DataSetMap
std::map< G4int, G4VEMDataSet *> protonM2DataSetMap
std::map< G4int, G4VEMDataSet *> protonM3DataSetMap
std::map< G4int, G4VEMDataSet *> protonM5DataSetMap
std::map< G4int, G4VEMDataSet *> alphaM1DataSetMap
int G4int
Definition: G4Types.hh:78
std::vector< std::map< G4int, G4VEMDataSet * > > protonMiXsVector
std::map< G4int, G4VEMDataSet *> alphaM3DataSetMap
std::map< G4int, G4VEMDataSet *> alphaM5DataSetMap
std::map< G4int, G4VEMDataSet *> alphaM2DataSetMap
std::vector< std::map< G4int, G4VEMDataSet * > > alphaMiXsVector
std::map< G4int, G4VEMDataSet *> alphaM4DataSetMap
std::map< G4int, G4VEMDataSet *> protonM4DataSetMap

◆ ~G4ecpssrFormFactorMixsModel()

G4ecpssrFormFactorMixsModel::~G4ecpssrFormFactorMixsModel ( )
virtual

Definition at line 113 of file G4ecpssrFormFactorMixsModel.cc.

114 {
115  protonM1DataSetMap.clear();
116  alphaM1DataSetMap.clear();
117 
118  protonM2DataSetMap.clear();
119  alphaM2DataSetMap.clear();
120 
121  protonM3DataSetMap.clear();
122  alphaM3DataSetMap.clear();
123 
124  protonM4DataSetMap.clear();
125  alphaM4DataSetMap.clear();
126 
127  protonM5DataSetMap.clear();
128  alphaM5DataSetMap.clear();
129 
130  delete interpolation;
131 }
std::map< G4int, G4VEMDataSet *> protonM1DataSetMap
std::map< G4int, G4VEMDataSet *> protonM2DataSetMap
std::map< G4int, G4VEMDataSet *> protonM3DataSetMap
std::map< G4int, G4VEMDataSet *> protonM5DataSetMap
std::map< G4int, G4VEMDataSet *> alphaM1DataSetMap
std::map< G4int, G4VEMDataSet *> alphaM3DataSetMap
std::map< G4int, G4VEMDataSet *> alphaM5DataSetMap
std::map< G4int, G4VEMDataSet *> alphaM2DataSetMap
std::map< G4int, G4VEMDataSet *> alphaM4DataSetMap
std::map< G4int, G4VEMDataSet *> protonM4DataSetMap

◆ G4ecpssrFormFactorMixsModel() [2/2]

G4ecpssrFormFactorMixsModel::G4ecpssrFormFactorMixsModel ( const G4ecpssrFormFactorMixsModel )
private

Member Function Documentation

◆ CalculateM1CrossSection()

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

Implements G4VecpssrMiModel.

Definition at line 167 of file G4ecpssrFormFactorMixsModel.cc.

168 {
169 
170  // mShellId
171  return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 1);
172 
173 }
G4double CalculateMiCrossSection(G4int zTarget, G4double massIncident, G4double energyIncident, G4int mShellId)
Here is the call graph for this function:

◆ CalculateM2CrossSection()

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

Implements G4VecpssrMiModel.

Definition at line 177 of file G4ecpssrFormFactorMixsModel.cc.

178 {
179 
180  // mShellId
181  return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 2);
182 
183  /*
184 
185  G4Proton* aProton = G4Proton::Proton();
186  G4Alpha* aAlpha = G4Alpha::Alpha();
187  G4double sigma = 0;
188 
189  if (energyIncident > 0.1*MeV && energyIncident < 10*MeV && zTarget < 93 && zTarget > 61) {
190 
191  if (massIncident == aProton->GetPDGMass())
192  {
193  sigma = protonM2DataSetMap[zTarget]->FindValue(energyIncident/MeV);
194  if (sigma !=0 && energyIncident > protonM2DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
195  }
196  else if (massIncident == aAlpha->GetPDGMass())
197  {
198  sigma = alphaM2DataSetMap[zTarget]->FindValue(energyIncident/MeV);
199  if (sigma !=0 && energyIncident > alphaM2DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
200  }
201  else
202  {
203  sigma = 0.;
204  }
205  }
206 
207  // sigma is in internal units: it has been converted from
208  // the input file in barns bt the EmDataset
209  return sigma;
210  */
211 }
G4double CalculateMiCrossSection(G4int zTarget, G4double massIncident, G4double energyIncident, G4int mShellId)
Here is the call graph for this function:

◆ CalculateM3CrossSection()

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

Implements G4VecpssrMiModel.

Definition at line 215 of file G4ecpssrFormFactorMixsModel.cc.

216 {
217 
218  return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 3);
219  /*
220 
221 
222  G4Proton* aProton = G4Proton::Proton();
223  G4Alpha* aAlpha = G4Alpha::Alpha();
224  G4double sigma = 0;
225 
226  if (energyIncident > 0.1*MeV && energyIncident < 10*MeV && zTarget < 93 && zTarget > 61) {
227 
228  if (massIncident == aProton->GetPDGMass())
229  {
230  sigma = protonM3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
231  if (sigma !=0 && energyIncident > protonM3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
232  }
233  else if (massIncident == aAlpha->GetPDGMass())
234  {
235  sigma = alphaM3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
236  if (sigma !=0 && energyIncident > alphaM3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
237  }
238  else
239  {
240  sigma = 0.;
241  }
242  }
243 
244  // sigma is in internal units: it has been converted from
245  // the input file in barns bt the EmDataset
246  return sigma;
247  */
248 }
G4double CalculateMiCrossSection(G4int zTarget, G4double massIncident, G4double energyIncident, G4int mShellId)
Here is the call graph for this function:

◆ CalculateM4CrossSection()

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

Implements G4VecpssrMiModel.

Definition at line 252 of file G4ecpssrFormFactorMixsModel.cc.

253 {
254 
255  return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 4);
256  /*
257  G4Proton* aProton = G4Proton::Proton();
258  G4Alpha* aAlpha = G4Alpha::Alpha();
259  G4double sigma = 0;
260 
261  if (energyIncident > 0.1*MeV && energyIncident < 10*MeV && zTarget < 93 && zTarget > 61) {
262 
263  if (massIncident == aProton->GetPDGMass())
264  {
265  sigma = protonM3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
266  if (sigma !=0 && energyIncident > protonM3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
267  }
268  else if (massIncident == aAlpha->GetPDGMass())
269  {
270  sigma = alphaM3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
271  if (sigma !=0 && energyIncident > alphaM3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
272  }
273  else
274  {
275  sigma = 0.;
276  }
277  }
278 
279  // sigma is in internal units: it has been converted from
280  // the input file in barns bt the EmDataset
281  return sigma;
282  */
283 }
G4double CalculateMiCrossSection(G4int zTarget, G4double massIncident, G4double energyIncident, G4int mShellId)
Here is the call graph for this function:

◆ CalculateM5CrossSection()

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

Implements G4VecpssrMiModel.

Definition at line 287 of file G4ecpssrFormFactorMixsModel.cc.

288 {
289 
290  return CalculateMiCrossSection (zTarget, massIncident, energyIncident, 5);
291  /*
292  G4Proton* aProton = G4Proton::Proton();
293  G4Alpha* aAlpha = G4Alpha::Alpha();
294  G4double sigma = 0;
295 
296  if (energyIncident > 0.1*MeV && energyIncident < 10*MeV && zTarget < 93 && zTarget > 61) {
297 
298  if (massIncident == aProton->GetPDGMass())
299  {
300  sigma = protonM3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
301  if (sigma !=0 && energyIncident > protonM3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
302  }
303  else if (massIncident == aAlpha->GetPDGMass())
304  {
305  sigma = alphaM3DataSetMap[zTarget]->FindValue(energyIncident/MeV);
306  if (sigma !=0 && energyIncident > alphaM3DataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
307  }
308  else
309  {
310  sigma = 0.;
311  }
312  }
313 
314  // sigma is in internal units: it has been converted from
315  // the input file in barns bt the EmDataset
316  return sigma;
317  */
318 }
G4double CalculateMiCrossSection(G4int zTarget, G4double massIncident, G4double energyIncident, G4int mShellId)
Here is the call graph for this function:

◆ CalculateMiCrossSection()

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

Definition at line 135 of file G4ecpssrFormFactorMixsModel.cc.

136 {
137  G4Proton* aProton = G4Proton::Proton();
138  G4Alpha* aAlpha = G4Alpha::Alpha();
139  G4double sigma = 0;
140  G4int mShellIndex = mShellId -1;
141 
142  if (energyIncident > 0.1*MeV && energyIncident < 10*MeV && zTarget < 93 && zTarget > 61) {
143 
144  if (massIncident == aProton->GetPDGMass())
145  {
146  sigma = protonMiXsVector[mShellIndex][zTarget]->FindValue(energyIncident/MeV);
147  if (sigma !=0 && energyIncident > protonMiXsVector[mShellIndex][zTarget]->GetEnergies(0).back()*MeV) return 0.;
148  }
149  else if (massIncident == aAlpha->GetPDGMass())
150  {
151  sigma = alphaMiXsVector[mShellIndex][zTarget]->FindValue(energyIncident/MeV);
152  if (sigma !=0 && energyIncident > alphaMiXsVector[mShellIndex][zTarget]->GetEnergies(0).back()*MeV) return 0.;
153  }
154  else
155  {
156  sigma = 0.;
157  }
158  }
159 
160  // sigma is in internal units: it has been converted from
161  // the input file in barns bt the EmDataset
162  return sigma;
163 }
static const double MeV
Definition: G4SIunits.hh:211
int G4int
Definition: G4Types.hh:78
std::vector< std::map< G4int, G4VEMDataSet * > > protonMiXsVector
static G4Proton * Proton()
Definition: G4Proton.cc:93
std::vector< std::map< G4int, G4VEMDataSet * > > alphaMiXsVector
static G4Alpha * Alpha()
Definition: G4Alpha.cc:89
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

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

Member Data Documentation

◆ alphaM1DataSetMap

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

Definition at line 79 of file G4ecpssrFormFactorMixsModel.hh.

◆ alphaM2DataSetMap

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

Definition at line 80 of file G4ecpssrFormFactorMixsModel.hh.

◆ alphaM3DataSetMap

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

Definition at line 81 of file G4ecpssrFormFactorMixsModel.hh.

◆ alphaM4DataSetMap

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

Definition at line 82 of file G4ecpssrFormFactorMixsModel.hh.

◆ alphaM5DataSetMap

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

Definition at line 83 of file G4ecpssrFormFactorMixsModel.hh.

◆ alphaMiXsVector

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

Definition at line 71 of file G4ecpssrFormFactorMixsModel.hh.

◆ interpolation

G4VDataSetAlgorithm* G4ecpssrFormFactorMixsModel::interpolation
private

Definition at line 68 of file G4ecpssrFormFactorMixsModel.hh.

◆ protonM1DataSetMap

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

Definition at line 73 of file G4ecpssrFormFactorMixsModel.hh.

◆ protonM2DataSetMap

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

Definition at line 74 of file G4ecpssrFormFactorMixsModel.hh.

◆ protonM3DataSetMap

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

Definition at line 75 of file G4ecpssrFormFactorMixsModel.hh.

◆ protonM4DataSetMap

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

Definition at line 76 of file G4ecpssrFormFactorMixsModel.hh.

◆ protonM5DataSetMap

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

Definition at line 77 of file G4ecpssrFormFactorMixsModel.hh.

◆ protonMiXsVector

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

Definition at line 70 of file G4ecpssrFormFactorMixsModel.hh.


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