Geant4  10.00.p02
G4HadronCrossSections Class Reference

#include <G4HadronCrossSections.hh>

+ Inheritance diagram for G4HadronCrossSections:
+ Collaboration diagram for G4HadronCrossSections:

Public Member Functions

 G4HadronCrossSections ()
 
 ~G4HadronCrossSections ()
 
G4bool IsApplicable (const G4DynamicParticle *aParticle)
 
G4double GetElasticCrossSection (const G4DynamicParticle *, G4int, G4int)
 
G4double GetInelasticCrossSection (const G4DynamicParticle *, G4int, G4int)
 
G4double GetCaptureCrossSection (const G4DynamicParticle *, G4int)
 
G4double GetFissionCrossSection (const G4DynamicParticle *, G4int, G4int)
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel ()
 

Static Public Member Functions

static G4HadronCrossSectionsInstance ()
 

Private Member Functions

G4int GetParticleCode (const G4DynamicParticle *)
 
void CalcScatteringCrossSections (const G4DynamicParticle *, G4int, G4int)
 

Private Attributes

G4Powg4pow
 
G4double sigelastic
 
G4double siginelastic
 
G4ParticleDefinitionprevParticleDefinition
 
G4int prevZZ
 
G4int prevAA
 
G4double prevKineticEnergy
 
G4double lastEkx
 
G4double lastEkxPower
 
G4bool correctInelasticNearZero
 
G4int verboseLevel
 

Static Private Attributes

static G4ThreadLocal
G4HadronCrossSections
theInstance = 0
 
static const G4float plab [TSIZE]
 
static const G4float csel [NPARTS][TSIZE]
 
static const G4float csin [NPARTS][TSIZE]
 
static const G4float cspiel [3][TSIZE]
 
static const G4float cspiin [3][TSIZE]
 
static const G4float cspnel [3][TSIZE]
 
static const G4float cspnin [3][TSIZE]
 
static const G4float elab [NELAB]
 
static const G4float cnlwat [NCNLW]
 
static const G4float cnlwel [NCNLW][NELAB]
 
static const G4float cnlwin [NCNLW][NELAB]
 
static const G4float cscap [100]
 
static const G4float ekfiss [NFISS]
 
static const G4float csfiss [4][NFISS]
 
static const G4float alpha [NPARTS]
 
static const G4float alphac [TSIZE]
 
static const G4float partel [35]
 
static const G4float partin [35]
 
static const G4int icorr [35]
 
static const G4int intrc [35]
 
static const G4float csa [4] = {1., 27.00, 63.54, 207.19}
 
static const G4int ipart2 [7] = {9, 8, 7, 11, 10, 13, 12}
 

Detailed Description

Definition at line 60 of file G4HadronCrossSections.hh.

Constructor & Destructor Documentation

G4HadronCrossSections::G4HadronCrossSections ( )

Definition at line 1214 of file G4HadronCrossSections.cc.

References correctInelasticNearZero, g4pow, G4Pow::GetInstance(), sigelastic, and siginelastic.

Referenced by Instance().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4HadronCrossSections::~G4HadronCrossSections ( )

Definition at line 1225 of file G4HadronCrossSections.cc.

Member Function Documentation

void G4HadronCrossSections::CalcScatteringCrossSections ( const G4DynamicParticle aParticle,
G4int  ZZ,
G4int  AA 
)
private

Definition at line 1282 of file G4HadronCrossSections.cc.

References alpha, alphac, cnlwat, cnlwel, cnlwin, correctInelasticNearZero, csa, csel, csin, cspiel, cspiin, cspnel, cspnin, elab, G4cout, G4endl, g4pow, G4DynamicParticle::GetDefinition(), G4DynamicParticle::GetKineticEnergy(), G4DynamicParticle::GetMass(), GetParticleCode(), G4ParticleDefinition::GetParticleName(), G4DynamicParticle::GetTotalMomentum(), GeV, ipart2, MeV, millibarn, NCNLW, NELAB, partel, partin, plab, G4Pow::powZ(), prevAA, prevKineticEnergy, prevParticleDefinition, prevZZ, sigelastic, siginelastic, TSIZE, verboseLevel, and G4Pow::Z13().

Referenced by GetElasticCrossSection(), and GetInelasticCrossSection().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4HadronCrossSections::GetCaptureCrossSection ( const G4DynamicParticle aParticle,
G4int  ZZ 
)

Definition at line 1556 of file G4HadronCrossSections.cc.

References cscap, G4DynamicParticle::GetKineticEnergy(), GetParticleCode(), GeV, lastEkx, lastEkxPower, G4INCL::Math::max(), and millibarn.

Referenced by G4HadronCaptureDataSet::GetElementCrossSection().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4HadronCrossSections::GetElasticCrossSection ( const G4DynamicParticle particle,
G4int  ZZ,
G4int  AA 
)

Definition at line 1260 of file G4HadronCrossSections.cc.

References CalcScatteringCrossSections(), G4cout, G4endl, G4DynamicParticle::GetDefinition(), G4DynamicParticle::GetKineticEnergy(), millibarn, prevAA, prevKineticEnergy, prevParticleDefinition, prevZZ, sigelastic, and verboseLevel.

Referenced by G4HadronElasticDataSet::GetElementCrossSection().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4HadronCrossSections::GetFissionCrossSection ( const G4DynamicParticle aParticle,
G4int  ZZ,
G4int  AA 
)

Definition at line 1581 of file G4HadronCrossSections.cc.

References csfiss, ekfiss, g4pow, G4DynamicParticle::GetKineticEnergy(), GeV, G4INCL::Math::max(), millibarn, NFISS, and G4Pow::Z13().

+ Here is the call graph for this function:

G4double G4HadronCrossSections::GetInelasticCrossSection ( const G4DynamicParticle particle,
G4int  ZZ,
G4int  AA 
)

Definition at line 1243 of file G4HadronCrossSections.cc.

References CalcScatteringCrossSections(), G4cout, G4endl, G4DynamicParticle::GetDefinition(), G4DynamicParticle::GetKineticEnergy(), millibarn, prevAA, prevKineticEnergy, prevParticleDefinition, prevZZ, siginelastic, and verboseLevel.

Referenced by G4HadronInelasticDataSet::GetElementCrossSection().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4int G4HadronCrossSections::GetParticleCode ( const G4DynamicParticle aParticle)
private

Definition at line 1623 of file G4HadronCrossSections.cc.

References G4DynamicParticle::GetPDGcode().

Referenced by CalcScatteringCrossSections(), GetCaptureCrossSection(), and IsApplicable().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4int G4HadronCrossSections::GetVerboseLevel ( )
inline

Definition at line 93 of file G4HadronCrossSections.hh.

References verboseLevel.

G4HadronCrossSections * G4HadronCrossSections::Instance ( void  )
static

Definition at line 1228 of file G4HadronCrossSections.cc.

References G4HadronCrossSections(), G4ThreadLocal, and theInstance.

Referenced by G4HadronCaptureDataSet::G4HadronCaptureDataSet(), G4HadronElasticDataSet::G4HadronElasticDataSet(), and G4HadronInelasticDataSet::G4HadronInelasticDataSet().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4HadronCrossSections::IsApplicable ( const G4DynamicParticle aParticle)

Definition at line 1237 of file G4HadronCrossSections.cc.

References GetParticleCode().

Referenced by G4HadronInelasticDataSet::IsElementApplicable(), and G4HadronElasticDataSet::IsElementApplicable().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4HadronCrossSections::SetVerboseLevel ( G4int  value)
inline

Definition at line 91 of file G4HadronCrossSections.hh.

References verboseLevel.

Member Data Documentation

const G4float G4HadronCrossSections::alpha
staticprivate
Initial value:
= {
0.7,0.7,0.7,0.7,0.7,0.7,
0.75,0.75,0.75,
0.76,0.76,0.76,0.76,
0.685,0.63,0.685,0.63,0.685,0.63,
0.685,0.685,0.685,0.63,0.63,0.63,0.685,0.685,0.63,0.63,
0.7,0.7,0.7,0.685,0.63,0.7
}

Definition at line 140 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

const G4float G4HadronCrossSections::alphac
staticprivate
Initial value:
= {
1.2,1.2,1.2,1.15,0.90,0.91,0.98,1.06,1.10,1.11,
1.10,1.08,1.05,1.01,0.985,0.962,0.945,0.932,
0.925,0.920,0.920,0.921,0.922,0.923,0.928,0.931,
0.940,0.945,0.950,0.955,0.958,0.962,0.965,0.976,
0.982,0.988,0.992,1.010,1.020,1.030,1.040
}

Definition at line 140 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

const G4float G4HadronCrossSections::cnlwat
staticprivate
Initial value:
= {
1.0000 , 16.000 , 27.000 , 56.000 , 59.000 ,
64.000 , 91.000 , 112.00 , 119.00 , 127.00 ,
137.00 , 181.00 , 207.00 , 209.00 , 238.00
}

Definition at line 134 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

const G4float G4HadronCrossSections::cnlwel
staticprivate

Definition at line 134 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

const G4float G4HadronCrossSections::cnlwin
staticprivate

Definition at line 134 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

G4bool G4HadronCrossSections::correctInelasticNearZero
private

Definition at line 115 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections(), and G4HadronCrossSections().

const G4float G4HadronCrossSections::csa = {1., 27.00, 63.54, 207.19}
staticprivate

Definition at line 145 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

const G4float G4HadronCrossSections::cscap
staticprivate
Initial value:
= {
6.0000 , 5.7000 , 5.5000 , 5.3000 , 5.2000 ,
5.1000 , 5.0000 , 4.9000 , 4.8000 , 4.8000 ,
4.8000 , 4.8000 , 4.8000 , 4.8000 , 4.8000 ,
4.8000 , 4.9000 , 5.0000 , 5.2000 , 5.5000 ,
6.0000 , 6.7000 , 7.5000 , 8.5000 , 10.000 ,
12.000 , 14.500 , 19.000 , 26.500 , 40.000 ,
75.000 , 120.00 , 180.00 , 260.00 , 360.00 ,
330.00 , 60.000 , 7.0000 , 9.5000 , 20.000 ,
75.000 , 140.00 , 250.00 , 360.00 , 480.00 ,
580.00 , 590.00 , 500.00 , 300.00 , 100.00 ,
200.00 , 300.00 , 400.00 , 470.00 , 500.00 ,
430.00 , 100.00 , 20.000 , 22.000 , 40.000 ,
560.00 , 950.00 , 1000.0 , 1000.0 , 1000.0 ,
990.00 , 920.00 , 860.00 , 790.00 , 740.00 ,
650.00 , 600.00 , 540.00 , 470.00 , 440.00 ,
390.00 , 360.00 , 340.00 , 320.00 , 310.00 ,
280.00 , 2.0000 , 2.5000 , 6.0000 , 13.000 ,
38.000 , 65.000 , 140.00 , 280.00 , 300.00 ,
430.00 , 580.00 , 650.00 , 800.00 , 920.00 ,
1100.0 , 1250.0 , 1400.0 , 1550.0 , 1700.0
}

Definition at line 136 of file G4HadronCrossSections.hh.

Referenced by GetCaptureCrossSection().

const G4float G4HadronCrossSections::csel
staticprivate

Definition at line 124 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

const G4float G4HadronCrossSections::csfiss
staticprivate
Initial value:
= {
{2600.0 , 2300.0 , 2300.0 , 2100.0 , 2000.0 ,
1950.0 , 1930.0 , 1900.0 , 1800.0 , 1600.0 ,
2100.0 , 2300.0 , 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00},
{1850.0 , 1400.0 , 1300.0 , 1150.0 , 1100.0 ,
1200.0 , 1250.0 , 1300.0 , 1250.0 , 1150.0 ,
1600.0 , 1900.0 , 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00},
{1700.0 , 1650.0 , 1650.0 , 1700.0 , 1700.0 ,
1800.0 , 1900.0 , 2000.0 , 1950.0 , 1800.0 ,
2150.0 , 2450.0 , 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00},
{0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00, 0.00000E+00,
0.00000E+00, 250.00 , 550.00 , 550.00 , 550.00 ,
550.00 , 550.00 , 1000.0 , 1400.0 , 1600.0 ,
1500.0 , 1400.0 , 1300.0 , 1200.0 , 1100.0 ,
1000.0}
}

Definition at line 138 of file G4HadronCrossSections.hh.

Referenced by GetFissionCrossSection().

const G4float G4HadronCrossSections::csin
staticprivate

Definition at line 125 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

const G4float G4HadronCrossSections::cspiel
staticprivate

Definition at line 127 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

const G4float G4HadronCrossSections::cspiin
staticprivate

Definition at line 128 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

const G4float G4HadronCrossSections::cspnel
staticprivate

Definition at line 130 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

const G4float G4HadronCrossSections::cspnin
staticprivate

Definition at line 131 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

const G4float G4HadronCrossSections::ekfiss
staticprivate
Initial value:
= {
0.10000E-03, 0.20000E-03, 0.30000E-03, 0.50000E-03, 0.70000E-03,
0.10000E-02, 0.15000E-02, 0.20000E-02, 0.30000E-02, 0.50000E-02,
0.70000E-02, 0.10000E-01, 0.15000E-01, 0.20000E-01, 0.50000E-01,
0.10000 , 0.20000 , 0.30000 , 0.40000 , 0.50000 ,
1000.0
}

Definition at line 138 of file G4HadronCrossSections.hh.

Referenced by GetFissionCrossSection().

const G4float G4HadronCrossSections::elab
staticprivate
Initial value:
= {
0.10000E-03, 0.20000E-03, 0.30000E-03, 0.40000E-03, 0.50000E-03,
0.70000E-03, 0.10000E-02, 0.20000E-02, 0.30000E-02, 0.40000E-02,
0.50000E-02, 0.70000E-02, 0.10000E-01, 0.15000E-01, 0.20000E-01,
0.25000E-01, 0.32700E-01
}

Definition at line 133 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

G4Pow* G4HadronCrossSections::g4pow
private
const G4int G4HadronCrossSections::icorr
staticprivate
Initial value:
= {
1,1,1,1,1,1,1,1,1,1,1,1,1,1,
0,1,0,1,0,1,1,1,0,0,0,1,1,0,0,1,1,1,1,0,0
}

Definition at line 143 of file G4HadronCrossSections.hh.

const G4int G4HadronCrossSections::intrc
staticprivate
Initial value:
= {
0,0,0,0,0,0,
1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,2,2,0,
1,1,1,1,1,1,1,1,1,1,0
}

Definition at line 143 of file G4HadronCrossSections.hh.

const G4int G4HadronCrossSections::ipart2 = {9, 8, 7, 11, 10, 13, 12}
staticprivate

Definition at line 146 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

G4double G4HadronCrossSections::lastEkx
private

Definition at line 113 of file G4HadronCrossSections.hh.

Referenced by GetCaptureCrossSection().

G4double G4HadronCrossSections::lastEkxPower
private

Definition at line 113 of file G4HadronCrossSections.hh.

Referenced by GetCaptureCrossSection().

const G4float G4HadronCrossSections::partel
staticprivate
Initial value:
= {
0.,0.,0.,0.,0.,0.,
1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,
1.,1.,1.,1.,1.,1.,1.,1.,1.,1.,
1.,1.,1.,1.,1.,1.,1.,1.,1.
}

Definition at line 142 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

const G4float G4HadronCrossSections::partin
staticprivate
Initial value:
= {
0.,0.,0.,0.,0.,0.,
1.00,0.00,1.05,1.20,1.35,1.30,1.20,1.00,1.30,
1.00,1.30,1.00,1.30,1.00,1.00,1.00,1.30,1.30,1.30,
1.00,1.00,1.30,1.30,1.00,1.,1.,1.,1.3,1.
}

Definition at line 142 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

const G4float G4HadronCrossSections::plab
staticprivate
Initial value:
= {
0.00000E+00 , 0.10000 , 0.15000 , 0.20000 , 0.25000 ,
0.30000 , 0.35000 , 0.40000 , 0.45000 , 0.50000 ,
0.55000 , 0.60000 , 0.65000 , 0.70000 , 0.75000 ,
0.80000 , 0.85000 , 0.90000 , 0.95000 , 1.0000 ,
1.1000 , 1.2000 , 1.3000 , 1.4000 , 1.5000 ,
1.6000 , 1.8000 , 2.0000 , 2.2000 , 2.4000 ,
2.6000 , 2.8000 , 3.0000 , 4.0000 , 5.0000 ,
6.0000 , 8.0000 , 10.000 , 20.000 , 100.00 ,
1000.0
}

Definition at line 123 of file G4HadronCrossSections.hh.

Referenced by CalcScatteringCrossSections().

G4int G4HadronCrossSections::prevAA
private
G4double G4HadronCrossSections::prevKineticEnergy
private
G4ParticleDefinition* G4HadronCrossSections::prevParticleDefinition
private
G4int G4HadronCrossSections::prevZZ
private
G4double G4HadronCrossSections::sigelastic
private
G4double G4HadronCrossSections::siginelastic
private
G4ThreadLocal G4HadronCrossSections * G4HadronCrossSections::theInstance = 0
staticprivate

Definition at line 102 of file G4HadronCrossSections.hh.

Referenced by Instance().

G4int G4HadronCrossSections::verboseLevel
private

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