Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4IonsSihverCrossSection Class Reference

#include <G4IonsSihverCrossSection.hh>

Inheritance diagram for G4IonsSihverCrossSection:
Collaboration diagram for G4IonsSihverCrossSection:

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
 
- Public Member Functions inherited from G4VCrossSectionDataSet
 G4VCrossSectionDataSet (const G4String &nam="")
 
virtual ~G4VCrossSectionDataSet ()
 
virtual G4bool IsIsoApplicable (const G4DynamicParticle *, G4int Z, G4int A, const G4Element *elm=0, const G4Material *mat=0)
 
G4double GetCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=0)
 
G4double ComputeCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=0)
 
virtual G4double GetIsoCrossSection (const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
 
virtual G4Isotope * SelectIsotope (const G4Element *, G4double kinEnergy)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual void DumpPhysicsTable (const G4ParticleDefinition &)
 
virtual G4int GetVerboseLevel () const
 
virtual void SetVerboseLevel (G4int value)
 
G4double GetMinKinEnergy () const
 
void SetMinKinEnergy (G4double value)
 
G4double GetMaxKinEnergy () const
 
void SetMaxKinEnergy (G4double value)
 
const G4String & GetName () const
 

Additional Inherited Members

- Protected Member Functions inherited from G4VCrossSectionDataSet
void SetName (const G4String &)
 
- Protected Attributes inherited from G4VCrossSectionDataSet
G4int verboseLevel
 

Detailed Description

Definition at line 46 of file G4IonsSihverCrossSection.hh.

Constructor & Destructor Documentation

G4IonsSihverCrossSection::G4IonsSihverCrossSection ( )

Definition at line 40 of file G4IonsSihverCrossSection.cc.

41  : G4VCrossSectionDataSet("IonsSihver"), square_r0 ( (1.36*fermi) * (1.36*fermi) )
42 {}
G4VCrossSectionDataSet(const G4String &nam="")
static constexpr double fermi
Definition: G4SIunits.hh:103
G4IonsSihverCrossSection::~G4IonsSihverCrossSection ( )
virtual

Definition at line 44 of file G4IonsSihverCrossSection.cc.

45 {}

Member Function Documentation

void G4IonsSihverCrossSection::CrossSectionDescription ( std::ostream &  outFile) const
virtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 48 of file G4IonsSihverCrossSection.cc.

49 {
50  outFile << "G4IonsSihverCrossSection calculates the total reaction cross\n"
51  << "section for nucleus-nucleus scattering using the Sihver\n"
52  << "parameterization. It is valid for projectiles and targets of\n"
53  << "all Z, and for all projectile energies above 100 MeV/n.\n";
54 }
G4double G4IonsSihverCrossSection::GetElementCrossSection ( const G4DynamicParticle *  aParticle,
G4int  Z,
const G4Material *   
)
virtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 67 of file G4IonsSihverCrossSection.cc.

69 {
70  G4double xsection = 0.0;
71  G4int At = G4lrint(G4NistManager::Instance()->GetAtomicMassAmu(Z));
72 
73  G4int Ap = aParticle->GetDefinition()->GetBaryonNumber();
74 
75  G4Pow* g4pow = G4Pow::GetInstance();
76 
77  G4double cubicrAt = g4pow->Z13(At);
78  G4double cubicrAp = g4pow->Z13(Ap);
79 
80  G4double b0 = 1.581 - 0.876 * (1.0/cubicrAp + 1.0/cubicrAt);
81 
82  G4double xr = cubicrAp + cubicrAt - b0 * (1.0/cubicrAp + 1.0/cubicrAt);
83  xsection = pi * square_r0 * xr * xr;
84 
85  return xsection;
86 }
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
Definition: G4Pow.hh:56
G4ParticleDefinition * GetDefinition() const
int G4int
Definition: G4Types.hh:78
static G4NistManager * Instance()
G4double Z13(G4int Z) const
Definition: G4Pow.hh:127
int G4lrint(double ad)
Definition: templates.hh:163
static constexpr double pi
Definition: G4SIunits.hh:75
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

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

Reimplemented from G4VCrossSectionDataSet.

Definition at line 57 of file G4IonsSihverCrossSection.cc.

59 {
60  G4int BaryonNumber = aDP->GetDefinition()->GetBaryonNumber();
61  G4double KineticEnergy = aDP->GetKineticEnergy();
62  if ( KineticEnergy / BaryonNumber >= 100*MeV && BaryonNumber > 1 ) { return true; }
63  return false;
64 }
G4double GetKineticEnergy() const
G4ParticleDefinition * GetDefinition() const
int G4int
Definition: G4Types.hh:78
static constexpr double MeV
Definition: G4SIunits.hh:214
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:


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