103 return (Z <= 2 &&
A <= 4);
110 G4int A = (1 == Z) ? 1 : 4;
124 if(1 == Z && 1 ==
A) {
126 }
else if(1 == Z && 2 ==
A) {
128 }
else if(1 == Z && 3 ==
A) {
130 }
else if(2 == Z && 3 ==
A) {
132 }
else if(2 == Z && 4 ==
A) {
150 outFile <<
"G4IonProtonCrossSection calculates the inelastic cross section\n"
151 <<
"for any ion projectile with Z >=2 only on hydrogen target.\n"
152 <<
"It uses the inverse kinematics and the G4ParticleInelasticXS\n"
153 <<
"cross section.\n";
double A(double temperature)
G4double G4Log(G4double x)
static G4Deuteron * Deuteron()
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
G4double GetProtonCrossSection(const G4DynamicParticle *, G4int Z)
void BuildPhysicsTable(const G4ParticleDefinition &) override
G4double GetElementCrossSection(const G4DynamicParticle *aPart, G4int Z, const G4Material *) override
G4IonProtonCrossSection()
G4bool IsElementApplicable(const G4DynamicParticle *aPart, G4int Z, const G4Material *) override
void CrossSectionDescription(std::ostream &) const override
G4double GetAlphaCrossSection(const G4DynamicParticle *, G4int Z)
~G4IonProtonCrossSection() override
G4double GetTritonCrossSection(const G4DynamicParticle *, G4int Z)
G4double GetHe3CrossSection(const G4DynamicParticle *, G4int Z)
G4double GetIsoCrossSection(const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=nullptr, const G4Element *elm=nullptr, const G4Material *mat=nullptr) override
G4double GetDeuteronCrossSection(const G4DynamicParticle *, G4int Z)
G4bool IsIsoApplicable(const G4DynamicParticle *, G4int Z, G4int A, const G4Element *elm=nullptr, const G4Material *mat=nullptr) override
G4double GetPDGMass() const
G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr) final
void BuildPhysicsTable(const G4ParticleDefinition &) final
G4double IsoCrossSection(G4double ekin, G4double logE, G4int Z, G4int A)
static G4Proton * Proton()
static G4Triton * Triton()