65 outFile <<
"G4CrossSectionPairGG is used to add the relativistic rise to\n"
66 <<
"hadronic cross section data sets above a given energy. In this\n"
67 <<
"case, the Glauber-Gribov cross section is used above 91 GeV.\n"
68 <<
"At this energy the low energy cross section is smoothly joined\n"
69 <<
"to the high energy cross section. Below 91 GeV the Barashenkov\n"
70 <<
"cross section is used for pions (G4PiNuclearCrossSection), the\n"
71 <<
"Axen-Wellisch cross section is used for protons\n"
72 <<
"(G4ProtonInelasticCrossSection), and the Wellisch-Laidlaw cross\n"
73 <<
"section is used for neutrons (G4NeutronInelasticCrossSection).\n";
78 G4bool isApplicable(
false);
80 if (Ekin <= ETransition) {
98 std::vector<ParticleXScale>::iterator iter = scale_factors.begin();
100 while (iter != scale_factors.end() && (*iter).first != pDef)
104 if (iter != scale_factors.end() )
108 * (*iter).second[ZZ];
111 G4cout <<
" scaling .." << ZZ <<
" " << AA <<
" "
112 << (*iter).second[ZZ] <<
" "
132 G4cout <<
"G4CrossSectionPairGG::BuildPhysicsTable "
137 std::vector<ParticleXScale>::iterator iter;
138 iter = scale_factors.begin();
139 while (iter != scale_factors.end() && (*iter).first != myDef) {
147 if (iter == scale_factors.end()) {
148 XS_factors factors(93);
153 G4cout <<
"G4CrossSectionPairGG::BuildPhysicsTable for particle "
156 for (
G4int aZ = 1; aZ < 93; ++aZ) {
168 G4cout <<
"Z=" << aZ <<
", A=" << AA <<
", scale="
185 ParticleXScale forPart(myDef, factors);
186 scale_factors.push_back(forPart);
201 G4cout << std::setw(24) <<
" " <<
" G4CrossSectionPairGG: "
203 G4cout << std::setw(27) <<
" " <<
"below " << ETransition /
GeV
204 <<
" 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 GetInelasticGlauberGribov(const G4DynamicParticle *, G4int Z, G4int A)
G4double GetAtomicMassAmu(const G4String &symb) const
virtual void DumpPhysicsTable(const G4ParticleDefinition &)
virtual ~G4CrossSectionPairGG()
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=0)