4 #include "G4DynamicParticle.hh"
5 #include "G4Element.hh"
6 #include "G4ElementTable.hh"
7 #include "G4PhysicsLogVector.hh"
8 #include "G4PhysicsVector.hh"
9 #include "G4NeutronInelasticXS.hh"
10 #include "G4Proton.hh"
11 #include "G4Neutron.hh"
29 const G4Material* mat) {
30 return nXsection->GetElementCrossSection(aParticle, Z, mat);
38 const G4Material* mat) {
39 return nXsection->GetIsoCrossSection(aParticle, Z, A, iso, elm, mat);
47 if (verboseLevel > 0) {
48 G4cout <<
"CMSSIMPInelasticXS::BuildPhysicsTable for " << p.GetParticleName() << G4endl;
50 if (p.GetParticleName() !=
"chi" && p.GetParticleName() !=
"anti_chi" && p.GetParticleName() !=
"chibar") {
51 G4ExceptionDescription ed;
52 ed << p.GetParticleName() <<
" is a wrong particle type -"
53 <<
" only simp is allowed";
54 G4Exception(
"CMSSIMPInelasticXS::BuildPhysicsTable(..)",
"had012", FatalException, ed,
"");
void BuildPhysicsTable(const G4ParticleDefinition &) override
~CMSSIMPInelasticXS() override
G4bool IsIsoApplicable(const G4DynamicParticle *, G4int Z, G4int A, const G4Element *, const G4Material *) override
G4NeutronInelasticXS * nXsection
G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr) override
G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *) override
G4double GetIsoCrossSection(const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso, const G4Element *elm, const G4Material *mat) override