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);
81 if (Ekin <= ETransition) {
99 std::vector<ParticleXScale>::iterator iter = scale_factors.begin();
101 while (iter != scale_factors.end() && (*iter).first != pDef)
105 if (iter != scale_factors.end() )
109 * (*iter).second[ZZ];
112 G4cout <<
" scaling .." << ZZ <<
" " << AA <<
" "
113 << (*iter).second[ZZ] <<
" "
133 G4cout <<
"G4CrossSectionPairGG::BuildPhysicsTable "
138 std::vector<ParticleXScale>::iterator iter;
139 iter = scale_factors.begin();
140 while (iter != scale_factors.end() && (*iter).first != myDef)
149 if (iter == scale_factors.end()) {
150 XS_factors factors(93);
155 G4cout <<
"G4CrossSectionPairGG::BuildPhysicsTable for particle "
158 for (
G4int aZ = 1; aZ < 93; ++aZ) {
170 G4cout <<
"Z=" << aZ <<
", A=" << AA <<
", scale="
187 ParticleXScale forPart(myDef, factors);
188 scale_factors.push_back(forPart);
203 G4cout << std::setw(24) <<
" " <<
" G4CrossSectionPairGG: "
205 G4cout << std::setw(27) <<
" " <<
"below " << ETransition /
GeV
206 <<
" GeV, Glauber-Gribov above " <<
G4endl;
G4double GetKineticEnergy() const
virtual void CrossSectionDescription(std::ostream &) const
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=0)
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
G4ParticleDefinition * GetDefinition() const
const G4String & GetName() const
static G4NistManager * Instance()
const G4String & GetParticleName() const
virtual G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *mat=0)
G4GLOB_DLL std::ostream G4cout
virtual G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *mat=0)
G4double GetAtomicMassAmu(const G4String &symb) const
static constexpr double GeV
virtual void DumpPhysicsTable(const G4ParticleDefinition &)
G4double GetInelasticGlauberGribov(const G4DynamicParticle *, G4int Z, G4int A)
const G4String & GetName() const
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
virtual ~G4CrossSectionPairGG()
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=0)