Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4ecpssrFormFactorKxsModel Class Reference

#include <G4ecpssrFormFactorKxsModel.hh>

Inheritance diagram for G4ecpssrFormFactorKxsModel:
G4VecpssrKModel

Public Member Functions

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

Detailed Description

Definition at line 47 of file G4ecpssrFormFactorKxsModel.hh.

Constructor & Destructor Documentation

G4ecpssrFormFactorKxsModel::G4ecpssrFormFactorKxsModel ( )

Definition at line 53 of file G4ecpssrFormFactorKxsModel.cc.

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

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

Implements G4VecpssrKModel.

Definition at line 82 of file G4ecpssrFormFactorKxsModel.cc.

References G4Alpha::Alpha(), G4ParticleDefinition::GetPDGMass(), python.hepunit::MeV, and G4Proton::Proton().

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 > 5) {
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 }
static G4Proton * Proton()
Definition: G4Proton.cc:93
G4double GetPDGMass() const
static G4Alpha * Alpha()
Definition: G4Alpha.cc:89
double G4double
Definition: G4Types.hh:76

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