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

#include <G4PaulKxsModel.hh>

Public Member Functions

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

Private Attributes

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

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{
60
61 for (G4int i=4; i<93; i++) {
63 protonDataSetMap[i]->LoadData("pixe/kpcsPaul/kcs-");
64 }
65 for (G4int i=6; i<93; i++) {
67 alphaDataSetMap[i]->LoadData("pixe/kacsPaul/kacs-");
68 }
69}
int G4int
Definition: G4Types.hh:85
std::map< G4int, G4VEMDataSet * > alphaDataSetMap
std::map< G4int, G4VEMDataSet * > protonDataSetMap
G4VDataSetAlgorithm * interpolation

References alphaDataSetMap, interpolation, and protonDataSetMap.

◆ ~G4PaulKxsModel()

G4PaulKxsModel::~G4PaulKxsModel ( )
virtual

Definition at line 71 of file G4PaulKxsModel.cc.

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

References alphaDataSetMap, interpolation, and protonDataSetMap.

◆ 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}
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(), alphaDataSetMap, G4ParticleDefinition::GetPDGMass(), MeV, G4Proton::Proton(), and protonDataSetMap.

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

◆ operator=()

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

Field Documentation

◆ alphaDataSetMap

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

Definition at line 64 of file G4PaulKxsModel.hh.

Referenced by CalculateKCrossSection(), G4PaulKxsModel(), and ~G4PaulKxsModel().

◆ interpolation

G4VDataSetAlgorithm* G4PaulKxsModel::interpolation
private

Definition at line 62 of file G4PaulKxsModel.hh.

Referenced by G4PaulKxsModel(), and ~G4PaulKxsModel().

◆ protonDataSetMap

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

Definition at line 63 of file G4PaulKxsModel.hh.

Referenced by CalculateKCrossSection(), G4PaulKxsModel(), and ~G4PaulKxsModel().


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