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)

Detailed Description

Definition at line 47 of file G4ecpssrFormFactorKxsModel.hh.


Constructor & Destructor Documentation

G4ecpssrFormFactorKxsModel::G4ecpssrFormFactorKxsModel (  ) 

Definition at line 53 of file G4ecpssrFormFactorKxsModel.cc.

00054 { 
00055   interpolation = new G4LogLogInterpolation();
00056 
00057   for (G4int i=6; i<93; i++) 
00058   {
00059       protonDataSetMap[i] = new G4EMDataSet(i,interpolation);
00060       protonDataSetMap[i]->LoadData("pixe/ecpssr/proton/k-");
00061   }
00062 
00063   for (G4int i=6; i<93; i++) 
00064   {
00065       alphaDataSetMap[i] = new G4EMDataSet(i,interpolation);
00066       alphaDataSetMap[i]->LoadData("pixe/ecpssr/alpha/k-");
00067   }
00068 
00069 }

G4ecpssrFormFactorKxsModel::~G4ecpssrFormFactorKxsModel (  )  [virtual]

Definition at line 73 of file G4ecpssrFormFactorKxsModel.cc.

00074 { 
00075   protonDataSetMap.clear();
00076   alphaDataSetMap.clear();
00077   delete interpolation;
00078 }


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(), and G4Proton::Proton().

00083 {
00084   G4Proton* aProton = G4Proton::Proton();
00085   G4Alpha* aAlpha = G4Alpha::Alpha();  
00086   G4double sigma = 0;
00087 
00088   if (energyIncident > 0.1*MeV && energyIncident < 100.*MeV && zTarget < 93 && zTarget > 5) {
00089 
00090     if (massIncident == aProton->GetPDGMass())
00091       {         
00092         sigma = protonDataSetMap[zTarget]->FindValue(energyIncident/MeV);  
00093         if (sigma !=0 && energyIncident > protonDataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
00094       }
00095     else if (massIncident == aAlpha->GetPDGMass())
00096       {
00097         sigma = alphaDataSetMap[zTarget]->FindValue(energyIncident/MeV); 
00098         if (sigma !=0 && energyIncident > alphaDataSetMap[zTarget]->GetEnergies(0).back()*MeV) return 0.;
00099       }
00100     else
00101       { 
00102         sigma = 0.;
00103       }
00104   }
00105   
00106   // sigma is in internal units: it has been converted from 
00107   // the input file in barns bt the EmDataset
00108   return sigma;
00109 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:51:49 2013 for Geant4 by  doxygen 1.4.7