60 std::ostream& outFile)
const {
61 outFile <<
"G4CrossSectionPairGG is used to add the relativistic rise to\n"
62 <<
"hadronic cross section data sets above a given energy. In this\n"
63 <<
"case, the Glauber-Gribov cross section is used above 91 GeV.\n"
64 <<
"At this energy the low energy cross section is smoothly joined\n"
65 <<
"to the high energy cross section. Below 91 GeV the Barashenkov\n"
66 <<
"cross section is used for pions (G4PiNuclearCrossSection), the\n"
67 <<
"Axen-Wellisch cross section is used for protons\n"
68 <<
"(G4ProtonInelasticCrossSection), and the Wellisch-Laidlaw cross\n"
69 <<
"section is used for neutrons (G4NeutronInelasticCrossSection).\n";
74 G4bool isApplicable(
false);
76 if (Ekin <= ETransition) {
94 std::vector<ParticleXScale>::iterator iter = scale_factors.begin();
96 while (iter != scale_factors.end() && (*iter).first != pDef)
100 if (iter != scale_factors.end() )
104 * (*iter).second[ZZ];
107 G4cout <<
" scaling .." << ZZ <<
" " << AA <<
" "
108 << (*iter).second[ZZ] <<
" "
128 G4cout <<
"G4CrossSectionPairGG::BuildPhysicsTable "
133 std::vector<ParticleXScale>::iterator iter;
134 iter = scale_factors.begin();
135 while (iter != scale_factors.end() && (*iter).first != myDef)
144 if (iter == scale_factors.end()) {
145 XS_factors factors(93);
150 G4cout <<
"G4CrossSectionPairGG::BuildPhysicsTable for particle "
153 for (
G4int aZ = 1; aZ < 93; ++aZ) {
165 G4cout <<
"Z=" << aZ <<
", A=" << AA <<
", scale="
182 ParticleXScale forPart(myDef, factors);
183 scale_factors.push_back(forPart);
198 G4cout << std::setw(24) <<
" " <<
" G4CrossSectionPairGG: "
200 G4cout << std::setw(27) <<
" " <<
"below " << ETransition / GeV
201 <<
" GeV, Glauber-Gribov above " <<
G4endl;
G4GLOB_DLL std::ostream G4cout
G4double GetInelasticGlauberGribov(const G4DynamicParticle *, G4int Z, G4int A)
virtual ~G4CrossSectionPairGG()
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=0)
virtual void DumpPhysicsTable(const G4ParticleDefinition &)
G4CrossSectionPairGG(G4VCrossSectionDataSet *low, G4double Etransit)
virtual void CrossSectionDescription(std::ostream &) const
virtual G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *mat=0)
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
static G4NistManager * Instance()
G4double GetAtomicMassAmu(const G4String &symb) const
const G4String & GetParticleName() const
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
const G4String & GetName() const
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr)
const G4String & GetName() const
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
virtual G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr)