Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ecpssrFormFactorLixsModel Class Reference

#include <G4ecpssrFormFactorLixsModel.hh>

Inheritance diagram for G4ecpssrFormFactorLixsModel:
Collaboration 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 ()
 

Detailed Description

Definition at line 47 of file G4ecpssrFormFactorLixsModel.hh.

Constructor & Destructor Documentation

G4ecpssrFormFactorLixsModel::G4ecpssrFormFactorLixsModel ( )

Definition at line 53 of file G4ecpssrFormFactorLixsModel.cc.

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

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 > 5) {
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 }
static G4Proton * Proton()
Definition: G4Proton.cc:93
G4double GetPDGMass() const
static constexpr double MeV
Definition: G4SIunits.hh:214
static G4Alpha * Alpha()
Definition: G4Alpha.cc:89
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

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 > 5) {
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 }
static G4Proton * Proton()
Definition: G4Proton.cc:93
G4double GetPDGMass() const
static constexpr double MeV
Definition: G4SIunits.hh:214
static G4Alpha * Alpha()
Definition: G4Alpha.cc:89
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

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 > 5) {
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 }
static G4Proton * Proton()
Definition: G4Proton.cc:93
G4double GetPDGMass() const
static constexpr double MeV
Definition: G4SIunits.hh:214
static G4Alpha * Alpha()
Definition: G4Alpha.cc:89
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:


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