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

#include <G4ecpssrFormFactorKxsModel.hh>

Inheritance diagram for G4ecpssrFormFactorKxsModel:
G4VecpssrKModel

Public Member Functions

G4double CalculateCrossSection (G4int zTarget, G4double massIncident, G4double energyIncident) override
 
 G4ecpssrFormFactorKxsModel ()
 
 G4ecpssrFormFactorKxsModel (const G4ecpssrFormFactorKxsModel &)=delete
 
G4ecpssrFormFactorKxsModeloperator= (const G4ecpssrFormFactorKxsModel &right)=delete
 
virtual ~G4ecpssrFormFactorKxsModel ()
 

Private Attributes

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

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{
56
57 for (G4int i=3; i<93; i++)
58 {
60 protonDataSetMap[i]->LoadData("pixe/ecpssr/proton/k-i01m001c01-");
61 }
62
63 for (G4int i=3; i<93; i++)
64 {
66 alphaDataSetMap[i]->LoadData("pixe/ecpssr/alpha/k-i02m004c02-");
67 }
68}
int G4int
Definition: G4Types.hh:85
std::map< G4int, G4VEMDataSet * > protonDataSetMap
std::map< G4int, G4VEMDataSet * > alphaDataSetMap

References alphaDataSetMap, interpolation, and protonDataSetMap.

◆ ~G4ecpssrFormFactorKxsModel()

G4ecpssrFormFactorKxsModel::~G4ecpssrFormFactorKxsModel ( )
virtual

Definition at line 72 of file G4ecpssrFormFactorKxsModel.cc.

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

References alphaDataSetMap, interpolation, and protonDataSetMap.

◆ 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}
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.

◆ operator=()

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

Field Documentation

◆ alphaDataSetMap

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

◆ interpolation

G4VDataSetAlgorithm* G4ecpssrFormFactorKxsModel::interpolation
private

◆ protonDataSetMap

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

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