66 for (
G4int i = 0; i < 93; i++) {
108 return (1 == Z && 2 >= A);
125 if(Z > 92) { Z = 92; }
136 G4cout <<
"G4BGGPionElasticXS::GetElementCrossSection for "
139 <<
" in nucleus Z= " << Z <<
" A= " <<
theA[
Z]
140 <<
" XS(b)= " << cross/
barn
180 G4cout <<
"G4BGGPionElasticXS::GetIsoCrossSection for "
183 <<
" in nucleus Z= " << Z <<
" A= " << A
184 <<
" XS(b)= " << cross/
barn
197 G4cout <<
"### G4BGGPionElasticXS WARNING: is not applicable to "
201 "G4BGGPionElasticXS::BuildPhysicsTable is used for wrong particle");
227 G4cout <<
"### G4BGGPionElasticXS::Initialise for "
230 for(
G4int iz=2; iz<93; iz++) {
240 G4cout <<
"Z= " << iz <<
" A= " << A
256 for(
G4int iz=2; iz<93; iz++) {
259 G4cout <<
"Z= " << iz <<
" A= " << A
268 outFile <<
"The Barashenkov-Glauber-Gribov cross section handles elastic\n"
269 <<
"scattering of pions from nuclei at all energies. The\n"
270 <<
"Barashenkov parameterization is used below 91 GeV and the\n"
271 <<
"Glauber-Gribov parameterization is used above 91 GeV.\n";
static G4PionMinus * PionMinus()
const G4ParticleDefinition * theProton
void SetMinKinEnergy(G4double value)
G4ComponentSAIDTotalXS * fSAID
static constexpr double MeV
void SetMaxKinEnergy(G4double value)
void SetKineticEnergy(G4double aEnergy)
const G4String & GetParticleName() const
static G4PionPlus * PionPlus()
G4double GetElasticCrossSection(const G4DynamicParticle *aParticle, G4int Z, G4int A)
const G4ParticleDefinition * particle
G4double theCoulombFac[93]
G4double fSAIDHighEnergyLimit
static G4Proton * Proton()
G4double GetElasticHadronNucleonXsc()
G4double GetAtomicMassAmu(const G4String &symb) const
G4ComponentGGHadronNucleusXsc * fGlauber
static constexpr double TeV
G4ParticleDefinition * GetDefinition() const
G4double GetHadronNucleonXscPDG(const G4DynamicParticle *, const G4ParticleDefinition *)
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
G4double theGlauberFac[93]
G4HadronNucleonXsc * fHadron
double A(double temperature)
virtual G4double GetIsoCrossSection(const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
void SetForAllAtomsAndEnergies(G4bool val)
virtual G4double GetElasticIsotopeCrossSection(const G4ParticleDefinition *, G4double kinEnergy, G4int, G4int)
virtual G4bool IsIsoApplicable(const G4DynamicParticle *, G4int Z, G4int A, const G4Element *elm=0, const G4Material *mat=0)
G4double GetElasticGlauberGribov(const G4DynamicParticle *, G4int Z, G4int A)
static constexpr double barn
virtual ~G4BGGPionElasticXS()
G4BGGPionElasticXS(const G4ParticleDefinition *)
G4double GetKineticEnergy() const
G4GLOB_DLL std::ostream G4cout
G4UPiNuclearCrossSection * fPion
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=0)
static constexpr double GeV
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
void BuildPhysicsTable(const G4ParticleDefinition &)
virtual void CrossSectionDescription(std::ostream &) const
static G4NistManager * Instance()
virtual G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *)