G4PaulKxsModel Class Reference

#include <G4PaulKxsModel.hh>


Public Member Functions

 G4PaulKxsModel ()
virtual ~G4PaulKxsModel ()
G4double CalculateKCrossSection (G4int zTarget, G4double massIncident, G4double energyIncident)


Detailed Description

Definition at line 51 of file G4PaulKxsModel.hh.


Constructor & Destructor Documentation

G4PaulKxsModel::G4PaulKxsModel (  ) 

Definition at line 56 of file G4PaulKxsModel.cc.

00057 { 
00058 
00059   
00060   interpolation = new G4LogLogInterpolation();
00061 
00062 
00063     for (G4int i=4; i<93; i++) {
00064       protonDataSetMap[i] = new G4EMDataSet(i,interpolation);
00065       protonDataSetMap[i]->LoadData("pixe/kpcsPaul/kcs-");
00066     }
00067     for (G4int i=6; i<93; i++) {
00068       alphaDataSetMap[i] = new G4EMDataSet(i,interpolation);
00069       alphaDataSetMap[i]->LoadData("pixe/kacsPaul/kacs-");
00070     }
00071 
00072 
00073 
00074 
00075 }

G4PaulKxsModel::~G4PaulKxsModel (  )  [virtual]

Definition at line 77 of file G4PaulKxsModel.cc.

00078 { 
00079 
00080   protonDataSetMap.clear();
00081   alphaDataSetMap.clear();
00082   delete interpolation;
00083 
00084 }


Member Function Documentation

G4double G4PaulKxsModel::CalculateKCrossSection ( G4int  zTarget,
G4double  massIncident,
G4double  energyIncident 
)

Definition at line 86 of file G4PaulKxsModel.cc.

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

Referenced by G4empCrossSection::CrossSection(), and G4empCrossSection::GetCrossSection().

00087 {
00088   
00089   G4Proton* aProtone = G4Proton::Proton();
00090   G4Alpha* aAlpha = G4Alpha::Alpha();
00091   
00092   G4double sigma = 0;
00093 
00094   if (massIncident == aProtone->GetPDGMass() && zTarget < 93 && zTarget > 3)
00095     {
00096 
00097       //      G4EMDataSet* currentDataset =  protonDataSetMap[zTarget];
00098       //      currentDataset->GetEnergies
00099 
00100   if (energyIncident > protonDataSetMap[zTarget]->GetEnergies(0).back() ||
00101       energyIncident < protonDataSetMap[zTarget]->GetEnergies(0).front() )
00102         {sigma = 0;}
00103       else {     
00104         sigma = protonDataSetMap[zTarget]->FindValue(energyIncident/MeV); 
00105       }
00106     }
00107   else
00108     {
00109       if (massIncident == aAlpha->GetPDGMass() && zTarget < 93 && zTarget > 5)
00110         {
00111           if (energyIncident > alphaDataSetMap[zTarget]->GetEnergies(0).back() ||
00112               energyIncident < alphaDataSetMap[zTarget]->GetEnergies(0).front() )
00113             {sigma = 0;}
00114           else {
00115             sigma = alphaDataSetMap[zTarget]->FindValue(energyIncident/MeV); 
00116           }
00117         }
00118       else
00119         { 
00120           
00121 // G4Exception("G4PaulKxsModel::CalculateKCrossSection()","de0004",JustWarning, "Energy deposited locally");
00122           sigma = 0.;
00123 
00124         }
00125     }
00126   
00127   
00128   // sigma is in internal units (mm^2)
00129   return sigma;
00130 }


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