G4IonsSihverCrossSection Class Reference

#include <G4IonsSihverCrossSection.hh>

Inheritance diagram for G4IonsSihverCrossSection:

G4VCrossSectionDataSet

Public Member Functions

 G4IonsSihverCrossSection ()
virtual ~G4IonsSihverCrossSection ()
virtual G4bool IsElementApplicable (const G4DynamicParticle *aDP, G4int Z, const G4Material *)
virtual G4double GetElementCrossSection (const G4DynamicParticle *, G4int Z, const G4Material *)
virtual void CrossSectionDescription (std::ostream &) const

Detailed Description

Definition at line 46 of file G4IonsSihverCrossSection.hh.


Constructor & Destructor Documentation

G4IonsSihverCrossSection::G4IonsSihverCrossSection (  ) 

Definition at line 40 of file G4IonsSihverCrossSection.cc.

00041   : G4VCrossSectionDataSet("IonsSihver"), square_r0 ( (1.36*fermi) * (1.36*fermi) )
00042 {}

G4IonsSihverCrossSection::~G4IonsSihverCrossSection (  )  [virtual]

Definition at line 44 of file G4IonsSihverCrossSection.cc.

00045 {}


Member Function Documentation

void G4IonsSihverCrossSection::CrossSectionDescription ( std::ostream &   )  const [virtual]

Reimplemented from G4VCrossSectionDataSet.

Definition at line 48 of file G4IonsSihverCrossSection.cc.

00049 {
00050   outFile << "G4IonsSihverCrossSection calculates the total reaction cross\n"
00051           << "section for nucleus-nucleus scattering using the Sihver\n"
00052           << "parameterization.  It is valid for projectiles and targets of\n"
00053           << "all Z, and for all projectile energies above 100 MeV/n.\n"; 
00054 }

G4double G4IonsSihverCrossSection::GetElementCrossSection ( const G4DynamicParticle ,
G4int  Z,
const G4Material  
) [virtual]

Reimplemented from G4VCrossSectionDataSet.

Definition at line 67 of file G4IonsSihverCrossSection.cc.

References G4lrint(), G4ParticleDefinition::GetBaryonNumber(), G4DynamicParticle::GetDefinition(), G4Pow::GetInstance(), G4NistManager::Instance(), G4INCL::Math::pi, and G4Pow::Z13().

00069 {
00070   G4double xsection = 0.0;
00071   G4int At = G4lrint(G4NistManager::Instance()->GetAtomicMassAmu(Z));
00072 
00073   G4int Ap = aParticle->GetDefinition()->GetBaryonNumber();
00074  
00075   G4Pow* g4pow = G4Pow::GetInstance();
00076   
00077   G4double cubicrAt = g4pow->Z13(At);
00078   G4double cubicrAp = g4pow->Z13(Ap);
00079  
00080   G4double b0 = 1.581 - 0.876 * (1.0/cubicrAp + 1.0/cubicrAt);
00081 
00082   G4double xr = cubicrAp + cubicrAt - b0 * (1.0/cubicrAp + 1.0/cubicrAt);
00083   xsection = pi * square_r0 * xr * xr;
00084   
00085   return xsection; 
00086 }

G4bool G4IonsSihverCrossSection::IsElementApplicable ( const G4DynamicParticle aDP,
G4int  Z,
const G4Material  
) [virtual]

Reimplemented from G4VCrossSectionDataSet.

Definition at line 57 of file G4IonsSihverCrossSection.cc.

References G4ParticleDefinition::GetBaryonNumber(), G4DynamicParticle::GetDefinition(), and G4DynamicParticle::GetKineticEnergy().

00059 {
00060   G4int BaryonNumber = aDP->GetDefinition()->GetBaryonNumber();
00061   G4double KineticEnergy = aDP->GetKineticEnergy(); 
00062   if ( KineticEnergy / BaryonNumber >= 100*MeV && BaryonNumber > 1 ) { return true; }
00063   return false;
00064 }


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