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

#include <G4ecpssrFormFactorKxsModel.hh>

+ Inheritance diagram for G4ecpssrFormFactorKxsModel:

Public Member Functions

 G4ecpssrFormFactorKxsModel ()
 
virtual ~G4ecpssrFormFactorKxsModel ()
 
G4double CalculateCrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)
 
- Public Member Functions inherited from G4VecpssrKModel
 G4VecpssrKModel ()
 
virtual ~G4VecpssrKModel ()
 
virtual G4double CalculateCrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)=0
 

Detailed Description

Definition at line 47 of file G4ecpssrFormFactorKxsModel.hh.

Constructor & Destructor Documentation

◆ G4ecpssrFormFactorKxsModel()

G4ecpssrFormFactorKxsModel::G4ecpssrFormFactorKxsModel ( )

Definition at line 53 of file G4ecpssrFormFactorKxsModel.cc.

54{
55 interpolation = new G4LogLogInterpolation();
56
57 for (G4int i=3; i<93; i++)
58 {
59 protonDataSetMap[i] = new G4EMDataSet(i,interpolation);
60 protonDataSetMap[i]->LoadData("pixe/ecpssr/proton/k-i01m001c01-");
61 }
62
63 for (G4int i=3; i<93; i++)
64 {
65 alphaDataSetMap[i] = new G4EMDataSet(i,interpolation);
66 alphaDataSetMap[i]->LoadData("pixe/ecpssr/alpha/k-i02m004c02-");
67 }
68
69}
int G4int
Definition: G4Types.hh:85

◆ ~G4ecpssrFormFactorKxsModel()

G4ecpssrFormFactorKxsModel::~G4ecpssrFormFactorKxsModel ( )
virtual

Definition at line 73 of file G4ecpssrFormFactorKxsModel.cc.

74{
75 protonDataSetMap.clear();
76 alphaDataSetMap.clear();
77 delete interpolation;
78}

Member Function Documentation

◆ CalculateCrossSection()

G4double G4ecpssrFormFactorKxsModel::CalculateCrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident 
)
virtual

Implements G4VecpssrKModel.

Definition at line 82 of file G4ecpssrFormFactorKxsModel.cc.

83{
84 G4Proton* aProton = G4Proton::Proton();
85 G4Alpha* aAlpha = G4Alpha::Alpha();
86 G4double sigma = 0;
87
88 if (energyIncident > 0.1*MeV && energyIncident < 100.*MeV && zTarget < 93 && zTarget > 2) {
89
90 if (massIncident == aProton->GetPDGMass())
91 {
92 sigma = protonDataSetMap[zTarget]->FindValue(energyIncident/MeV);
93 if (sigma !=0 && energyIncident > protonDataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
94 }
95 else if (massIncident == aAlpha->GetPDGMass())
96 {
97 sigma = alphaDataSetMap[zTarget]->FindValue(energyIncident/MeV);
98 if (sigma !=0 && energyIncident > alphaDataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
99 }
100 else
101 {
102 sigma = 0.;
103 }
104 }
105
106 // sigma is in internal units: it has been converted from
107 // the input file in barns bt the EmDataset
108 return sigma;
109}
double G4double
Definition: G4Types.hh:83
static G4Alpha * Alpha()
Definition: G4Alpha.cc:88
static G4Proton * Proton()
Definition: G4Proton.cc:92

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