Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4PaulKxsModel Class Reference

#include <G4PaulKxsModel.hh>

Public Member Functions

 G4PaulKxsModel ()
 
virtual ~G4PaulKxsModel ()
 
G4double CalculateKCrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
 G4PaulKxsModel (const G4PaulKxsModel &)=delete
 
G4PaulKxsModeloperator= (const G4PaulKxsModel &right)=delete
 

Detailed Description

Definition at line 50 of file G4PaulKxsModel.hh.

Constructor & Destructor Documentation

◆ G4PaulKxsModel() [1/2]

G4PaulKxsModel::G4PaulKxsModel ( )
explicit

Definition at line 57 of file G4PaulKxsModel.cc.

58{
59 interpolation = new G4LogLogInterpolation();
60
61 for (G4int i=4; i<93; i++) {
62 protonDataSetMap[i] = new G4EMDataSet(i,interpolation);
63 protonDataSetMap[i]->LoadData("pixe/kpcsPaul/kcs-");
64 }
65 for (G4int i=6; i<93; i++) {
66 alphaDataSetMap[i] = new G4EMDataSet(i,interpolation);
67 alphaDataSetMap[i]->LoadData("pixe/kacsPaul/kacs-");
68 }
69}
int G4int
Definition G4Types.hh:85

◆ ~G4PaulKxsModel()

G4PaulKxsModel::~G4PaulKxsModel ( )
virtual

Definition at line 71 of file G4PaulKxsModel.cc.

72{
73 protonDataSetMap.clear();
74 alphaDataSetMap.clear();
75 delete interpolation;
76}

◆ G4PaulKxsModel() [2/2]

G4PaulKxsModel::G4PaulKxsModel ( const G4PaulKxsModel & )
delete

Member Function Documentation

◆ CalculateKCrossSection()

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

Definition at line 79 of file G4PaulKxsModel.cc.

81{
82
83 G4Proton* aProtone = G4Proton::Proton();
84 G4Alpha* aAlpha = G4Alpha::Alpha();
85 G4double sigma = 0;
86
87 if (massIncident == aProtone->GetPDGMass() && zTarget < 93 && zTarget > 3)
88 {
89 if (energyIncident > protonDataSetMap[zTarget]->GetEnergies(0).back() ||
90 energyIncident < protonDataSetMap[zTarget]->GetEnergies(0).front() )
91 {sigma = 0;}
92 else {
93 sigma = protonDataSetMap[zTarget]->FindValue(energyIncident/MeV);
94 }
95 }
96 else
97 {
98 if (massIncident == aAlpha->GetPDGMass() && zTarget < 93 && zTarget > 5)
99 {
100 if (energyIncident > alphaDataSetMap[zTarget]->GetEnergies(0).back() ||
101 energyIncident < alphaDataSetMap[zTarget]->GetEnergies(0).front() )
102 {sigma = 0;}
103 else {
104 sigma = alphaDataSetMap[zTarget]->FindValue(energyIncident/MeV);
105 }
106 }
107 else
108 {
109 sigma = 0.;
110 }
111 }
112
113 // sigma is in internal units (mm^2)
114 return sigma;
115}
double G4double
Definition G4Types.hh:83
static G4Alpha * Alpha()
Definition G4Alpha.cc:83
static G4Proton * Proton()
Definition G4Proton.cc:90

Referenced by G4empCrossSection::CrossSection(), and G4empCrossSection::GetCrossSection().

◆ operator=()

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

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