Geant4 11.2.2
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) override
 
 G4ecpssrFormFactorKxsModel (const G4ecpssrFormFactorKxsModel &)=delete
 
G4ecpssrFormFactorKxsModeloperator= (const G4ecpssrFormFactorKxsModel &right)=delete
 
- Public Member Functions inherited from G4VecpssrKModel
 G4VecpssrKModel ()
 
virtual ~G4VecpssrKModel ()
 
 G4VecpssrKModel (const G4VecpssrKModel &)=delete
 
G4VecpssrKModeloperator= (const G4VecpssrKModel &right)=delete
 

Detailed Description

Definition at line 47 of file G4ecpssrFormFactorKxsModel.hh.

Constructor & Destructor Documentation

◆ G4ecpssrFormFactorKxsModel() [1/2]

G4ecpssrFormFactorKxsModel::G4ecpssrFormFactorKxsModel ( )
explicit

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}
int G4int
Definition G4Types.hh:85

◆ ~G4ecpssrFormFactorKxsModel()

G4ecpssrFormFactorKxsModel::~G4ecpssrFormFactorKxsModel ( )
virtual

Definition at line 72 of file G4ecpssrFormFactorKxsModel.cc.

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

◆ G4ecpssrFormFactorKxsModel() [2/2]

G4ecpssrFormFactorKxsModel::G4ecpssrFormFactorKxsModel ( const G4ecpssrFormFactorKxsModel & )
delete

Member Function Documentation

◆ CalculateCrossSection()

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

Implements G4VecpssrKModel.

Definition at line 81 of file G4ecpssrFormFactorKxsModel.cc.

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

◆ operator=()

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

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