52 fTotalXsc(0.0), fElasticXsc(0.0), fInelasticXsc(0.0),
53 fAntiHadronNucleonTotXsc(0.0), fAntiHadronNucleonElXsc(0.0),
54 Elab(0.0),
S(0.0), SqrtS(0)
94 else if ( theParticle ==
theAHe3 ) { i=3; }
95 else if ( theParticle ==
theAAlpha ) { i=4; }
100 ed <<
"Unknown anti-nucleus : "
102 <<
"Target (Z, A)=(" <<
Z <<
"," <<
A <<
")" <<
G4endl;
103 G4Exception(
"G4ComponentAntiNuclNuclearXS::GetTotalElementCrossSection",
107 if (
Z == 1 &&
A == 1 ) { j=0; }
108 else if (
Z == 1 &&
A == 2 ) { j=1; }
109 else if (
Z == 1 &&
A == 3 ) { j=2; }
110 else if (
Z == 2 &&
A == 3 ) { j=3; }
111 else if (
Z == 2 &&
A == 4 ) { j=4; }
114 if ( i == 0 && j == 0 )
return sigmaTotal *
millibarn;
167 else if ( theParticle ==
theATriton ) { i=2; }
168 else if ( theParticle ==
theAHe3 ) { i=3; }
169 else if ( theParticle ==
theAAlpha ) { i=4; }
174 ed <<
"Unknown anti-nucleus : "
176 <<
"Target (Z, A)=(" <<
Z <<
"," <<
A <<
")" <<
G4endl;
177 G4Exception(
"G4ComponentAntiNuclNuclearXS::GetInelasticElementCrossSection",
181 if (
Z == 1 &&
A == 1 ) { j=0; }
182 else if (
Z == 1 &&
A == 2 ) { j=1; }
183 else if (
Z == 1 &&
A == 3 ) { j=2; }
184 else if (
Z == 2 &&
A == 3 ) { j=3; }
185 else if (
Z == 2 &&
A == 4 ) { j=4; }
188 if ( i == 0 && j == 0 )
return (sigmaTotal - sigmaElastic) *
millibarn;
257 G4double xsection, Pmass, Energy, momentum;
260 Energy=Pmass+kinEnergy;
261 momentum=std::sqrt(Energy*Energy-Pmass*Pmass)/std::abs(theParticle->
GetBaryonNumber());
266 Elab = std::sqrt(
Mn*
Mn + Plab*Plab);
271 R0 = std::sqrt(0.40874044*SigAss -
B);
319 outFile <<
"The G4ComponentAntiNuclNuclearXS calculates total,\n"
320 <<
"inelastic, elastic cross sections of anti-nucleons and light \n"
321 <<
"anti-nucleus interactions with nuclei using Glauber's approach.\n"
322 <<
"It uses parametrizations of antiproton-proton total and elastic \n"
323 <<
"cross sections and Wood-Saxon distribution of nuclear density.\n"
324 <<
"See details in Phys.Lett. B705 (2011) 235. \n";
G4double C(G4double temp)
G4double S(G4double temp)
G4double B(G4double temperature)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
G4double G4Log(G4double x)
static constexpr double millibarn
static constexpr double GeV
static constexpr double pi
static G4AntiAlpha * AntiAlpha()
static G4AntiDeuteron * AntiDeuteron()
static G4AntiHe3 * AntiHe3()
static G4AntiNeutron * AntiNeutron()
static G4AntiProton * AntiProton()
static G4AntiTriton * AntiTriton()
G4ParticleDefinition * theANeutron
G4double fAntiHadronNucleonElXsc
virtual G4double GetTotalIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A)
virtual G4double GetElasticIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A)
G4ParticleDefinition * theAHe3
virtual void CrossSectionDescription(std::ostream &) const
G4double GetAntiHadronNucleonElCrSc(const G4ParticleDefinition *aParticle, G4double kinEnergy)
const G4double ReffInel[5][5]
G4double fAntiHadronNucleonTotXsc
G4ParticleDefinition * theAProton
virtual G4double GetTotalElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)
const G4double ReffTot[5][5]
G4ParticleDefinition * theAAlpha
G4ParticleDefinition * theADeuteron
G4ParticleDefinition * theATriton
G4ComponentAntiNuclNuclearXS()
virtual G4double GetInelasticIsotopeCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A)
virtual G4double GetElasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)
virtual G4double GetInelasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)
virtual ~G4ComponentAntiNuclNuclearXS()
G4double GetAntiHadronNucleonTotCrSc(const G4ParticleDefinition *aParticle, G4double kinEnergy)
G4double GetPDGMass() const
G4int GetBaryonNumber() const
const G4String & GetParticleName() const
G4double A13(G4double A) const
G4double powN(G4double x, G4int n) const
G4double powA(G4double A, G4double y) const