65 std::ostream& outFile)
const {
66 outFile <<
"G4CrossSectionPairGG is used to add the relativistic rise to\n"
67 <<
"hadronic cross section data sets above a given energy. In this\n"
68 <<
"case, the Glauber-Gribov cross section is used above 91 GeV.\n"
69 <<
"At this energy the low energy cross section is smoothly joined\n"
70 <<
"to the high energy cross section. Below 91 GeV the Barashenkov\n"
71 <<
"cross section is used for pions (G4PiNuclearCrossSection), the\n"
72 <<
"Axen-Wellisch cross section is used for protons\n"
73 <<
"(G4ProtonInelasticCrossSection), and the Wellisch-Laidlaw cross\n"
74 <<
"section is used for neutrons (G4NeutronInelasticCrossSection).\n";
79 G4bool isApplicable(
false);
99 std::vector<ParticleXScale>::iterator iter =
scale_factors.begin();
109 * (*iter).second[ZZ];
112 G4cout <<
" scaling .." << ZZ <<
" " << AA <<
" "
113 << (*iter).second[ZZ] <<
" "
133 G4cout <<
"G4CrossSectionPairGG::BuildPhysicsTable "
138 std::vector<ParticleXScale>::iterator iter;
140 while (iter !=
scale_factors.end() && (*iter).first != myDef)
155 G4cout <<
"G4CrossSectionPairGG::BuildPhysicsTable for particle "
158 for (
G4int aZ = 1; aZ < 93; ++aZ) {
170 G4cout <<
"Z=" << aZ <<
", A=" << AA <<
", scale="
203 G4cout << std::setw(24) <<
" " <<
" G4CrossSectionPairGG: "
206 <<
" GeV, Glauber-Gribov above " <<
G4endl;
virtual void DumpPhysicsTable(const G4ParticleDefinition &)
const G4String & GetParticleName() const
std::valarray< G4double > XS_factors
const G4String & GetName() const
G4double GetInelasticGlauberGribov(const G4DynamicParticle *, G4int Z, G4int A)
virtual void CrossSectionDescription(std::ostream &) const
G4double GetAtomicMassAmu(const G4String &symb) const
virtual ~G4CrossSectionPairGG()
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr)
G4ParticleDefinition * GetDefinition() const
const G4String & GetName() const
virtual G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *mat=0)
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
G4ComponentGGHadronNucleusXsc * theHighX
std::vector< ParticleXScale > scale_factors
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
G4double GetKineticEnergy() const
G4GLOB_DLL std::ostream G4cout
G4VCrossSectionDataSet * theLowX
std::pair< const G4ParticleDefinition *, XS_factors > ParticleXScale
virtual G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *mat=0)
static constexpr double GeV
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=0)
static G4NistManager * Instance()