Geant4  10.02.p03
G4PaulKxsModel Class Reference

#include <G4PaulKxsModel.hh>

Collaboration diagram for G4PaulKxsModel:

Public Member Functions

 G4PaulKxsModel ()
 
virtual ~G4PaulKxsModel ()
 
G4double CalculateKCrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 

Private Member Functions

 G4PaulKxsModel (const G4PaulKxsModel &)
 
G4PaulKxsModeloperator= (const G4PaulKxsModel &right)
 

Private Attributes

G4VDataSetAlgorithminterpolation
 
std::map< G4int, G4VEMDataSet *> protonDataSetMap
 
std::map< G4int, G4VEMDataSet *> alphaDataSetMap
 

Detailed Description

Definition at line 51 of file G4PaulKxsModel.hh.

Constructor & Destructor Documentation

◆ G4PaulKxsModel() [1/2]

G4PaulKxsModel::G4PaulKxsModel ( )

Definition at line 56 of file G4PaulKxsModel.cc.

57 {
58 
59 
61 
62 
63  for (G4int i=4; i<93; i++) {
65  protonDataSetMap[i]->LoadData("pixe/kpcsPaul/kcs-");
66  }
67  for (G4int i=6; i<93; i++) {
69  alphaDataSetMap[i]->LoadData("pixe/kacsPaul/kacs-");
70  }
71 
72 
73 
74 
75 }
std::map< G4int, G4VEMDataSet *> protonDataSetMap
int G4int
Definition: G4Types.hh:78
G4VDataSetAlgorithm * interpolation
std::map< G4int, G4VEMDataSet *> alphaDataSetMap

◆ ~G4PaulKxsModel()

G4PaulKxsModel::~G4PaulKxsModel ( )
virtual

Definition at line 77 of file G4PaulKxsModel.cc.

78 {
79 
80  protonDataSetMap.clear();
81  alphaDataSetMap.clear();
82  delete interpolation;
83 
84 }
std::map< G4int, G4VEMDataSet *> protonDataSetMap
G4VDataSetAlgorithm * interpolation
std::map< G4int, G4VEMDataSet *> alphaDataSetMap

◆ G4PaulKxsModel() [2/2]

G4PaulKxsModel::G4PaulKxsModel ( const G4PaulKxsModel )
private

Member Function Documentation

◆ CalculateKCrossSection()

G4double G4PaulKxsModel::CalculateKCrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident 
)

Definition at line 86 of file G4PaulKxsModel.cc.

87 {
88 
89  G4Proton* aProtone = G4Proton::Proton();
90  G4Alpha* aAlpha = G4Alpha::Alpha();
91 
92  G4double sigma = 0;
93 
94  if (massIncident == aProtone->GetPDGMass() && zTarget < 93 && zTarget > 3)
95  {
96 
97  // G4EMDataSet* currentDataset = protonDataSetMap[zTarget];
98  // currentDataset->GetEnergies
99 
100  if (energyIncident > protonDataSetMap[zTarget]->GetEnergies(0).back() ||
101  energyIncident < protonDataSetMap[zTarget]->GetEnergies(0).front() )
102  {sigma = 0;}
103  else {
104  sigma = protonDataSetMap[zTarget]->FindValue(energyIncident/MeV);
105  }
106  }
107  else
108  {
109  if (massIncident == aAlpha->GetPDGMass() && zTarget < 93 && zTarget > 5)
110  {
111  if (energyIncident > alphaDataSetMap[zTarget]->GetEnergies(0).back() ||
112  energyIncident < alphaDataSetMap[zTarget]->GetEnergies(0).front() )
113  {sigma = 0;}
114  else {
115  sigma = alphaDataSetMap[zTarget]->FindValue(energyIncident/MeV);
116  }
117  }
118  else
119  {
120 
121 // G4Exception("G4PaulKxsModel::CalculateKCrossSection()","de0004",JustWarning, "Energy deposited locally");
122  sigma = 0.;
123 
124  }
125  }
126 
127 
128  // sigma is in internal units (mm^2)
129  return sigma;
130 }
static const double MeV
Definition: G4SIunits.hh:211
std::map< G4int, G4VEMDataSet *> protonDataSetMap
std::map< G4int, G4VEMDataSet *> alphaDataSetMap
static G4Proton * Proton()
Definition: G4Proton.cc:93
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=()

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

Member Data Documentation

◆ alphaDataSetMap

std::map< G4int , G4VEMDataSet* > G4PaulKxsModel::alphaDataSetMap
private

Definition at line 73 of file G4PaulKxsModel.hh.

◆ interpolation

G4VDataSetAlgorithm* G4PaulKxsModel::interpolation
private

Definition at line 69 of file G4PaulKxsModel.hh.

◆ protonDataSetMap

std::map< G4int , G4VEMDataSet* > G4PaulKxsModel::protonDataSetMap
private

Definition at line 71 of file G4PaulKxsModel.hh.


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