48{2,4,6,7,8,11,13,14,20,26,29,42,48,50,74,82,92};
58 fTotalXsc(0.0), fInelasticXsc(0.0), fElasticXsc(0.0), isMaster(false)
70 delete (*thePData)[i];
71 delete (*theNData)[i];
147 for(; it<
NZ; ++it) {
if(
Z <=
theZ[it]) {
break; } }
148 if( it >=
NZ ) { it =
NZ-1; }
152 if(
theZ[it] ==
Z ) {
153 fInelasticXsc = (*theData)[it]->ReactionXSection(kineticEnergy);
154 fTotalXsc = (*theData)[it]->TotalXSection(kineticEnergy);
156 if(0 == it) { it = 1; }
157 G4double x1 = (*theData)[it-1]->ReactionXSection(kineticEnergy);
158 G4double xt1 = (*theData)[it-1]->TotalXSection(kineticEnergy);
159 G4double x2 = (*theData)[it]->ReactionXSection(kineticEnergy);
160 G4double xt2 = (*theData)[it]->TotalXSection(kineticEnergy);
181 G4double result = (r1*alp2 + r2*alp1)/(alp1 + alp2);
191 outFile <<
"G4ComponentBarNucleonNucleusXsc is a variant of the Barashenkov\n"
192 <<
"cross section parameterization to be used of protons and\n"
193 <<
"neutrons on targets heavier than hydrogen. It is intended for\n"
194 <<
"use as a cross section component and is currently used by\n"
195 <<
"G4BGGNucleonInelasticXS. It is valid for incident energies up\n"
206#ifdef G4MULTITHREADED
211#ifdef G4MULTITHREADED
222 theNData =
new std::vector<G4PiData*>;
223 thePData =
new std::vector<G4PiData*>;
287 for(
G4int i=1; i<93; ++i) {
static const G4double be_m_in[44]
static const G4double ca_m_t[45]
static const G4double sn_p_in[48]
static const G4double sn_m_t[48]
static const G4double si_m_t[45]
static const G4double pb_m_t[46]
static const G4double u_m_in[46]
static const G4double he_m_in[44]
static const G4double cd_m_in[48]
static const G4double n_m_t[44]
static const G4double cu_m_t[47]
static const G4double al_m_in[45]
static const G4double he_p_in[44]
static const G4double cd_m_t[48]
static const G4double mo_m_in[47]
static const G4double na_m_t[44]
static const G4double si_p_in[45]
static const G4double si_m_in[45]
static const G4double cu_p_in[47]
static const G4double mo_m_t[47]
static const G4double w_p_in[48]
static const G4double na_m_in[44]
static const G4double e4[47]
static const G4double n_p_in[44]
static const G4double ca_p_in[45]
static const G4double fe_m_in[47]
static const G4double he_m_t[44]
static const G4double e1[44]
static const G4double e2[44]
static const G4double w_m_t[48]
static const G4double cd_p_in[48]
static const G4double na_p_in[44]
static const G4double e6[46]
static const G4double e3[45]
static const G4double c_m_t[44]
static const G4double c_m_in[44]
static const G4double o_p_in[44]
static const G4double al_p_in[45]
static const G4double be_m_t[44]
static const G4double fe_p_in[47]
static const G4double al_m_t[45]
static const G4double sn_m_in[48]
static const G4double fe_m_t[47]
static const G4double ca_m_in[45]
static const G4double o_m_t[44]
static const G4double pb_p_in[46]
static const G4double cu_m_in[47]
static const G4double o_m_in[44]
static const G4double mo_p_in[47]
static const G4double e5[48]
static const G4double n_m_in[44]
static const G4double be_p_in[44]
static const G4double w_m_in[48]
static const G4double u_p_in[46]
static const G4double pb_m_in[46]
static const G4double c_p_in[44]
static const G4double u_m_t[46]
#define G4MUTEX_INITIALIZER
#define G4MUTEXLOCK(mutex)
#define G4MUTEXUNLOCK(mutex)
G4double GetTotalIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int) final
static std::vector< G4PiData * > * theNData
void BuildPhysicsTable(const G4ParticleDefinition &) final
const G4ParticleDefinition * theNeutron
G4double GetInelasticIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int) final
G4double GetInelasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double) final
G4double Interpolate(G4int Z1, G4int Z2, G4int Z, G4double x1, G4double x2) const
static std::vector< G4PiData * > * thePData
G4double GetTotalElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double) final
const G4ParticleDefinition * theProton
G4double GetElasticIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int) final
G4double GetElasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double) final
void Description(std::ostream &) const final
void ComputeCrossSections(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z)
G4ComponentBarNucleonNucleusXsc()
~G4ComponentBarNucleonNucleusXsc() override
static G4Neutron * Neutron()
static G4NistManager * Instance()
G4double GetAtomicMassAmu(const G4String &symb) const
static G4Pow * GetInstance()
G4double A23(G4double A) const
static G4Proton * Proton()
T max(const T t1, const T t2)
brief Return the largest of the two arguments
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
static const G4double Z1[5]