Geant4-11
Public Member Functions | Private Attributes
G4ComponentAntiNuclNuclearXS Class Reference

#include <G4ComponentAntiNuclNuclearXS.hh>

Inheritance diagram for G4ComponentAntiNuclNuclearXS:
G4VComponentCrossSection

Public Member Functions

virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual G4double ComputeQuasiElasticRatio (const G4ParticleDefinition *, G4double kinEnergy, G4int, G4int)
 
virtual void CrossSectionDescription (std::ostream &) const
 
virtual void Description (std::ostream &) const
 
virtual void DumpPhysicsTable (const G4ParticleDefinition &)
 
 G4ComponentAntiNuclNuclearXS ()
 
G4double GetAntiHadronNucleonElCrSc (const G4ParticleDefinition *aParticle, G4double kinEnergy)
 
G4double GetAntiHadronNucleonTotCrSc (const G4ParticleDefinition *aParticle, G4double kinEnergy)
 
G4double GetElasticElementCrossSection (const G4ParticleDefinition *, G4double kinEnergy, const G4Element *)
 
virtual G4double GetElasticElementCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)
 
virtual G4double GetElasticIsotopeCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A)
 
G4double GetInelasticElementCrossSection (const G4ParticleDefinition *, G4double kinEnergy, const G4Element *)
 
virtual G4double GetInelasticElementCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)
 
virtual G4double GetInelasticIsotopeCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A)
 
G4double GetMaxKinEnergy () const
 
G4double GetMinKinEnergy () const
 
const G4StringGetName () const
 
G4double GetTotalElementCrossSection (const G4ParticleDefinition *, G4double kinEnergy, const G4Element *)
 
virtual G4double GetTotalElementCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)
 
virtual G4double GetTotalIsotopeCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A)
 
G4int GetVerboseLevel () const
 
void SetMaxKinEnergy (G4double value)
 
void SetMinKinEnergy (G4double value)
 
void SetVerboseLevel (G4int value)
 
virtual ~G4ComponentAntiNuclNuclearXS ()
 

Private Attributes

G4double b0
 
G4double b2
 
G4double Elab
 
G4double fAntiHadronNucleonElXsc
 
G4double fAntiHadronNucleonTotXsc
 
G4double fElasticXsc
 
G4double fInelasticXsc
 
G4double fRadiusEff
 
G4double fTotalXsc
 
G4double maxKinEnergy
 
G4double minKinEnergy
 
G4double Mn
 
const G4String name
 
G4double R0
 
const G4double ReffInel [5][5]
 
const G4double ReffTot [5][5]
 
G4CrossSectionDataSetRegistryregistry
 
G4double S
 
G4double S0
 
G4double SqrtS
 
G4double SqrtS0
 
G4ParticleDefinitiontheAAlpha
 
G4ParticleDefinitiontheADeuteron
 
G4ParticleDefinitiontheAHe3
 
G4ParticleDefinitiontheANeutron
 
G4ParticleDefinitiontheAProton
 
G4ParticleDefinitiontheATriton
 
const G4PowtheG4Pow = G4Pow::GetInstance()
 
G4int verboseLevel
 

Detailed Description

Definition at line 59 of file G4ComponentAntiNuclNuclearXS.hh.

Constructor & Destructor Documentation

◆ G4ComponentAntiNuclNuclearXS()

G4ComponentAntiNuclNuclearXS::G4ComponentAntiNuclNuclearXS ( )

Definition at line 49 of file G4ComponentAntiNuclNuclearXS.cc.

50: G4VComponentCrossSection("AntiAGlauber"),
51 fRadiusEff(0.0),
52 fTotalXsc(0.0), fElasticXsc(0.0), fInelasticXsc(0.0),
54 Elab(0.0), S(0.0), SqrtS(0)
55{
62 Mn = 0.93827231; // GeV
63 b0 = 11.92; // GeV^(-2)
64 b2 = 0.3036; // GeV^(-2)
65 SqrtS0 = 20.74; // GeV
66 S0 = 33.0625; // GeV^2
67 R0 = 1.0; // default value (V.Ivanchenko)
68}
static G4AntiAlpha * AntiAlpha()
Definition: G4AntiAlpha.cc:88
static G4AntiDeuteron * AntiDeuteron()
static G4AntiHe3 * AntiHe3()
Definition: G4AntiHe3.cc:93
static G4AntiNeutron * AntiNeutron()
static G4AntiProton * AntiProton()
Definition: G4AntiProton.cc:92
static G4AntiTriton * AntiTriton()
Definition: G4AntiTriton.cc:93
G4VComponentCrossSection(const G4String &nam="")

References G4AntiAlpha::AntiAlpha(), G4AntiDeuteron::AntiDeuteron(), G4AntiHe3::AntiHe3(), G4AntiNeutron::AntiNeutron(), G4AntiProton::AntiProton(), G4AntiTriton::AntiTriton(), b0, b2, Mn, R0, S0, SqrtS0, theAAlpha, theADeuteron, theAHe3, theANeutron, theAProton, and theATriton.

◆ ~G4ComponentAntiNuclNuclearXS()

G4ComponentAntiNuclNuclearXS::~G4ComponentAntiNuclNuclearXS ( )
virtual

Definition at line 73 of file G4ComponentAntiNuclNuclearXS.cc.

74{
75}

Member Function Documentation

◆ BuildPhysicsTable()

virtual void G4ComponentAntiNuclNuclearXS::BuildPhysicsTable ( const G4ParticleDefinition )
inlinevirtual

Reimplemented from G4VComponentCrossSection.

Definition at line 76 of file G4ComponentAntiNuclNuclearXS.hh.

76{}

◆ ComputeQuasiElasticRatio()

G4double G4VComponentCrossSection::ComputeQuasiElasticRatio ( const G4ParticleDefinition ,
G4double  kinEnergy,
G4int  ,
G4int   
)
virtualinherited

Reimplemented in G4ComponentGGHadronNucleusXsc, and G4ComponentGGNuclNuclXsc.

Definition at line 56 of file G4VComponentCrossSection.cc.

59{
60 return 0.0;
61}

◆ CrossSectionDescription()

void G4ComponentAntiNuclNuclearXS::CrossSectionDescription ( std::ostream &  outFile) const
virtual

Definition at line 317 of file G4ComponentAntiNuclNuclearXS.cc.

318{
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";
325}

◆ Description()

void G4VComponentCrossSection::Description ( std::ostream &  ) const
virtualinherited

◆ DumpPhysicsTable()

virtual void G4ComponentAntiNuclNuclearXS::DumpPhysicsTable ( const G4ParticleDefinition )
inlinevirtual

Reimplemented from G4VComponentCrossSection.

Definition at line 77 of file G4ComponentAntiNuclNuclearXS.hh.

77{}

◆ GetAntiHadronNucleonElCrSc()

G4double G4ComponentAntiNuclNuclearXS::GetAntiHadronNucleonElCrSc ( const G4ParticleDefinition aParticle,
G4double  kinEnergy 
)

Definition at line 291 of file G4ComponentAntiNuclNuclearXS.cc.

293{
294 G4double xsection;
295 G4double SigAss;
296 G4double C, d1, d2, d3;
297 GetAntiHadronNucleonTotCrSc(aParticle,kinEnergy);
298 SigAss = 4.5 + 0.101*G4Log(S/S0)*G4Log(S/S0); //mb
299 C = 59.27;
300 d1 = -6.95;
301 d2 = 23.54;
302 d3 = -25.34;
303
304 xsection = SigAss * ( 1 + 1. / (std::sqrt(S-4.*Mn*Mn)) / (theG4Pow->powN(R0, 3))
305 * C * ( 1 + d1/SqrtS + d2/(theG4Pow->powN(SqrtS, 2))
306 + d3/(theG4Pow->powN(SqrtS, 3)) ) );
307
308 //xsection *= millibarn;
309 fAntiHadronNucleonElXsc = xsection;
310
312}
G4double C(G4double temp)
static const G4double d1
static const G4double d2
G4double G4Log(G4double x)
Definition: G4Log.hh:226
double G4double
Definition: G4Types.hh:83
G4double GetAntiHadronNucleonTotCrSc(const G4ParticleDefinition *aParticle, G4double kinEnergy)
G4double powN(G4double x, G4int n) const
Definition: G4Pow.cc:166

References C(), d1, d2, fAntiHadronNucleonElXsc, G4Log(), GetAntiHadronNucleonTotCrSc(), Mn, G4Pow::powN(), R0, S, S0, SqrtS, and theG4Pow.

Referenced by GetInelasticElementCrossSection().

◆ GetAntiHadronNucleonTotCrSc()

G4double G4ComponentAntiNuclNuclearXS::GetAntiHadronNucleonTotCrSc ( const G4ParticleDefinition aParticle,
G4double  kinEnergy 
)

Definition at line 254 of file G4ComponentAntiNuclNuclearXS.cc.

256{
257 G4double xsection, Pmass, Energy, momentum;
258 const G4ParticleDefinition* theParticle = aParticle;
259 Pmass=theParticle->GetPDGMass();
260 Energy=Pmass+kinEnergy;
261 momentum=std::sqrt(Energy*Energy-Pmass*Pmass)/std::abs(theParticle->GetBaryonNumber());
262 G4double Plab = momentum / GeV;
263
264 G4double B, SigAss;
265 G4double C, d1, d2, d3;
266 Elab = std::sqrt(Mn*Mn + Plab*Plab); // GeV
267 S = 2.*Mn*Mn + 2. *Mn*Elab; // GeV^2
268 SqrtS = std::sqrt(S); // GeV
269 B = b0+b2*G4Log(SqrtS/SqrtS0)*G4Log(SqrtS/SqrtS0); //GeV^(-2)
270 SigAss = 36.04 +0.304*G4Log(S/S0)*G4Log(S/S0); //mb
271 R0 = std::sqrt(0.40874044*SigAss - B); //GeV^(-2)
272 C = 13.55;
273 d1 = -4.47;
274 d2 = 12.38;
275 d3 = -12.43;
276
277 xsection = SigAss * ( 1 + 1./(std::sqrt(S-4.*Mn*Mn)) / (theG4Pow->powN(R0, 3))
278 * C * ( 1 + d1/SqrtS + d2/(theG4Pow->powN(SqrtS, 2))
279 + d3/(theG4Pow->powN(SqrtS, 3)) ) );
280
281 //xsection *= millibarn;
282 fAntiHadronNucleonTotXsc = xsection;
283
285}
G4double B(G4double temperature)
static constexpr double GeV
Definition: G4SIunits.hh:203

References B(), b0, b2, C(), d1, d2, Elab, fAntiHadronNucleonTotXsc, G4Log(), G4ParticleDefinition::GetBaryonNumber(), G4ParticleDefinition::GetPDGMass(), GeV, Mn, G4Pow::powN(), R0, S, S0, SqrtS, SqrtS0, and theG4Pow.

Referenced by GetAntiHadronNucleonElCrSc(), GetInelasticElementCrossSection(), GetTotalElementCrossSection(), and G4AntiNuclElastic::SampleInvariantT().

◆ GetElasticElementCrossSection() [1/2]

G4double G4VComponentCrossSection::GetElasticElementCrossSection ( const G4ParticleDefinition p,
G4double  kinEnergy,
const G4Element elm 
)
inlineinherited

◆ GetElasticElementCrossSection() [2/2]

G4double G4ComponentAntiNuclNuclearXS::GetElasticElementCrossSection ( const G4ParticleDefinition aParticle,
G4double  kinEnergy,
G4int  Z,
G4double  A 
)
virtual

Implements G4VComponentCrossSection.

Definition at line 230 of file G4ComponentAntiNuclNuclearXS.cc.

232{
233 fElasticXsc = GetTotalElementCrossSection(aParticle, kinEnergy, Z, A)-
234 GetInelasticElementCrossSection(aParticle, kinEnergy, Z, A);
235 if (fElasticXsc < 0.) fElasticXsc = 0.;
236 return fElasticXsc;
237}
const G4int Z[17]
const G4double A[17]
virtual G4double GetTotalElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)
virtual G4double GetInelasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)

References A, fElasticXsc, GetInelasticElementCrossSection(), GetTotalElementCrossSection(), and Z.

Referenced by GetElasticIsotopeCrossSection(), and G4AntiNuclElastic::SampleInvariantT().

◆ GetElasticIsotopeCrossSection()

G4double G4ComponentAntiNuclNuclearXS::GetElasticIsotopeCrossSection ( const G4ParticleDefinition aParticle,
G4double  kinEnergy,
G4int  Z,
G4int  A 
)
virtual

Implements G4VComponentCrossSection.

Definition at line 244 of file G4ComponentAntiNuclNuclearXS.cc.

246{
247 return GetElasticElementCrossSection(aParticle, kinEnergy, Z, (G4double) A);
248}
virtual G4double GetElasticElementCrossSection(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A)

References A, GetElasticElementCrossSection(), and Z.

◆ GetInelasticElementCrossSection() [1/2]

G4double G4VComponentCrossSection::GetInelasticElementCrossSection ( const G4ParticleDefinition p,
G4double  kinEnergy,
const G4Element elm 
)
inlineinherited

◆ GetInelasticElementCrossSection() [2/2]

G4double G4ComponentAntiNuclNuclearXS::GetInelasticElementCrossSection ( const G4ParticleDefinition aParticle,
G4double  kinEnergy,
G4int  Z,
G4double  A 
)
virtual

Implements G4VComponentCrossSection.

Definition at line 155 of file G4ComponentAntiNuclNuclearXS.cc.

157{
158 const G4ParticleDefinition* theParticle = aParticle;
159 G4double sigmaTotal = GetAntiHadronNucleonTotCrSc(theParticle,kinEnergy);
160 G4double sigmaElastic = GetAntiHadronNucleonElCrSc(theParticle,kinEnergy);
161
162 // calculation of sqr of radius NN-collision
163 G4int i(-1), j(-1);
164 if ( theParticle == theAProton ||
165 theParticle == theANeutron ) { i=0; }
166 else if ( theParticle == theADeuteron ) { i=1; }
167 else if ( theParticle == theATriton ) { i=2; }
168 else if ( theParticle == theAHe3 ) { i=3; }
169 else if ( theParticle == theAAlpha ) { i=4; }
170 else {};
171
172 if ( i < 0 ) {
174 ed << "Unknown anti-nucleus : "
175 << ( theParticle != nullptr ? theParticle->GetParticleName() : "nullptr" ) << G4endl
176 << "Target (Z, A)=(" << Z << "," << A << ")" << G4endl;
177 G4Exception( "G4ComponentAntiNuclNuclearXS::GetInelasticElementCrossSection",
178 "antiNuclNuclearXS002", JustWarning, ed );
179 }
180
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; }
186 else {}
187
188 if ( i == 0 && j == 0 ) return (sigmaTotal - sigmaElastic) * millibarn; // Pbar/Nbar + P
189 if ( i > 0 && j >= 0 ) { fRadiusEff = ReffInel[i][j]; } // Light anti-nuclei + Light nuclei
190
191 if ( j < 0) {
192 if ( i == 0 ) { fRadiusEff = 1.31*theG4Pow->powA(A, 0.22) // Anti-proton/Anti-neutron + Nucleus
193 + 0.90/theG4Pow->A13(A); }
194 else if ( i == 1 ) { fRadiusEff = 1.38*theG4Pow->powA(A, 0.21) // Anti-deuteron + Nucleus
195 + 1.55/theG4Pow->A13(A); }
196 else if ( i == 2 ) { fRadiusEff = 1.34*theG4Pow->powA(A, 0.21) // Anti-Tritium + Nucleus
197 + 1.51/theG4Pow->A13(A); }
198 else if ( i == 3 ) { fRadiusEff = 1.34*theG4Pow->powA(A, 0.21) // Anti-He3 + Nucleus
199 + 1.51/theG4Pow->A13(A); }
200 else if ( i == 4 ) { fRadiusEff = 1.30*theG4Pow->powA(A, 0.21) // Anti-Tritium + Nucleus
201 + 1.05/theG4Pow->A13(A); }
202 else {}
203 }
204
206 G4double ApAt = std::abs(theParticle->GetBaryonNumber()) * A;
207
208 G4double inelxsection = millibarn*pi*R2*10.*G4Log(1.+(ApAt*sigmaTotal/(pi*R2*10.))); //mb
209 fInelasticXsc = inelxsection;
210
211 return fInelasticXsc;
212}
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
static constexpr double millibarn
Definition: G4SIunits.hh:86
static constexpr double pi
Definition: G4SIunits.hh:55
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4double GetAntiHadronNucleonElCrSc(const G4ParticleDefinition *aParticle, G4double kinEnergy)
const G4String & GetParticleName() const
G4double A13(G4double A) const
Definition: G4Pow.cc:120
G4double powA(G4double A, G4double y) const
Definition: G4Pow.hh:230

References A, G4Pow::A13(), fInelasticXsc, fRadiusEff, G4endl, G4Exception(), G4Log(), GetAntiHadronNucleonElCrSc(), GetAntiHadronNucleonTotCrSc(), G4ParticleDefinition::GetBaryonNumber(), G4ParticleDefinition::GetParticleName(), JustWarning, millibarn, pi, G4Pow::powA(), ReffInel, theAAlpha, theADeuteron, theAHe3, theANeutron, theAProton, theATriton, theG4Pow, and Z.

Referenced by GetElasticElementCrossSection(), and GetInelasticIsotopeCrossSection().

◆ GetInelasticIsotopeCrossSection()

G4double G4ComponentAntiNuclNuclearXS::GetInelasticIsotopeCrossSection ( const G4ParticleDefinition aParticle,
G4double  kinEnergy,
G4int  Z,
G4int  A 
)
virtual

Implements G4VComponentCrossSection.

Definition at line 219 of file G4ComponentAntiNuclNuclearXS.cc.

221{
222 return GetInelasticElementCrossSection(aParticle, kinEnergy, Z, (G4double) A);
223}

References A, GetInelasticElementCrossSection(), and Z.

◆ GetMaxKinEnergy()

G4double G4VComponentCrossSection::GetMaxKinEnergy ( ) const
inlineinherited

Definition at line 203 of file G4VComponentCrossSection.hh.

204{
205 return maxKinEnergy;
206}

References G4VComponentCrossSection::maxKinEnergy.

◆ GetMinKinEnergy()

G4double G4VComponentCrossSection::GetMinKinEnergy ( ) const
inlineinherited

Definition at line 193 of file G4VComponentCrossSection.hh.

194{
195 return minKinEnergy;
196}

References G4VComponentCrossSection::minKinEnergy.

◆ GetName()

const G4String & G4VComponentCrossSection::GetName ( ) const
inlineinherited

Definition at line 208 of file G4VComponentCrossSection.hh.

209{
210 return name;
211}

References G4VComponentCrossSection::name.

◆ GetTotalElementCrossSection() [1/2]

G4double G4VComponentCrossSection::GetTotalElementCrossSection ( const G4ParticleDefinition p,
G4double  kinEnergy,
const G4Element elm 
)
inlineinherited

Definition at line 149 of file G4VComponentCrossSection.hh.

153{
154 return GetTotalElementCrossSection(p,kinEnergy,
155 elm->GetZasInt(),elm->GetN());
156}
G4double GetTotalElementCrossSection(const G4ParticleDefinition *, G4double kinEnergy, const G4Element *)

References G4Element::GetN(), G4VComponentCrossSection::GetTotalElementCrossSection(), and G4Element::GetZasInt().

Referenced by G4VComponentCrossSection::GetTotalElementCrossSection().

◆ GetTotalElementCrossSection() [2/2]

G4double G4ComponentAntiNuclNuclearXS::GetTotalElementCrossSection ( const G4ParticleDefinition aParticle,
G4double  kinEnergy,
G4int  Z,
G4double  A 
)
virtual

Implements G4VComponentCrossSection.

Definition at line 82 of file G4ComponentAntiNuclNuclearXS.cc.

84{
85 const G4ParticleDefinition* theParticle = aParticle;
86 G4double sigmaTotal = GetAntiHadronNucleonTotCrSc(theParticle,kinEnergy);
87
88 // calculation of squared radius of NN-collision
89 G4int i(-1), j(-1);
90 if ( theParticle == theAProton ||
91 theParticle == theANeutron ) { i=0; }
92 else if ( theParticle == theADeuteron ) { i=1; }
93 else if ( theParticle == theATriton ) { i=2; }
94 else if ( theParticle == theAHe3 ) { i=3; }
95 else if ( theParticle == theAAlpha ) { i=4; }
96 else {};
97
98 if ( i < 0 ) {
100 ed << "Unknown anti-nucleus : "
101 << ( theParticle != nullptr ? theParticle->GetParticleName() : "nullptr" ) << G4endl
102 << "Target (Z, A)=(" << Z << "," << A << ")" << G4endl;
103 G4Exception( "G4ComponentAntiNuclNuclearXS::GetTotalElementCrossSection",
104 "antiNuclNuclearXS001", JustWarning, ed );
105 }
106
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; }
112 else {}
113
114 if ( i == 0 && j == 0 ) return sigmaTotal * millibarn; // Pbar/Nbar + P
115 if ( i > 0 && j >= 0 ) { fRadiusEff = ReffTot[i][j]; } // Light anti-nuclei + Light nuclei
116
117 if ( j < 0 ) {
118 if ( i == 0 ) { fRadiusEff = 1.34 * theG4Pow->powA(A, 0.23) // Anti-proton/Anti-neutron + Nucleus
119 + 1.35 / theG4Pow->A13(A); }
120 else if ( i == 1 ) { fRadiusEff = 1.46 * theG4Pow->powA(A, 0.21) // Anti-deuteron + Nucleus
121 + 1.45 / theG4Pow->A13(A); }
122 else if ( i == 2 ) { fRadiusEff = 1.40 * theG4Pow->powA(A, 0.21) // Anti-Tritium + Nucleus
123 + 1.63 / theG4Pow->A13(A); }
124 else if ( i == 3 ) { fRadiusEff = 1.40 * theG4Pow->powA(A, 0.21) // Anti-He3 + Nucleus
125 + 1.63 / theG4Pow->A13(A); }
126 else if ( i == 4 ) { fRadiusEff = 1.35 * theG4Pow->powA(A, 0.21) // Anti-Tritium + Nucleus
127 + 1.10 / theG4Pow->A13(A); }
128 else {}
129 }
130
132 G4double ApAt = std::abs(theParticle->GetBaryonNumber()) * A;
133
134 G4double xsection = millibarn*2.*pi*R2*10.*G4Log(1.+(ApAt*sigmaTotal/(2.*pi*R2*10.))); //mb
135 fTotalXsc = xsection;
136
137 return fTotalXsc;
138}

References A, G4Pow::A13(), fRadiusEff, fTotalXsc, G4endl, G4Exception(), G4Log(), GetAntiHadronNucleonTotCrSc(), G4ParticleDefinition::GetBaryonNumber(), G4ParticleDefinition::GetParticleName(), JustWarning, millibarn, pi, G4Pow::powA(), ReffTot, theAAlpha, theADeuteron, theAHe3, theANeutron, theAProton, theATriton, theG4Pow, and Z.

Referenced by GetElasticElementCrossSection(), GetTotalIsotopeCrossSection(), and G4AntiNuclElastic::SampleInvariantT().

◆ GetTotalIsotopeCrossSection()

G4double G4ComponentAntiNuclNuclearXS::GetTotalIsotopeCrossSection ( const G4ParticleDefinition aParticle,
G4double  kinEnergy,
G4int  Z,
G4int  A 
)
virtual

Implements G4VComponentCrossSection.

Definition at line 145 of file G4ComponentAntiNuclNuclearXS.cc.

147{
148 return GetTotalElementCrossSection(aParticle, kinEnergy, Z, (G4double) A);
149}

References A, GetTotalElementCrossSection(), and Z.

◆ GetVerboseLevel()

G4int G4VComponentCrossSection::GetVerboseLevel ( ) const
inlineinherited

◆ SetMaxKinEnergy()

void G4VComponentCrossSection::SetMaxKinEnergy ( G4double  value)
inlineinherited

Definition at line 198 of file G4VComponentCrossSection.hh.

199{
200 maxKinEnergy = value;
201}

References G4VComponentCrossSection::maxKinEnergy.

◆ SetMinKinEnergy()

void G4VComponentCrossSection::SetMinKinEnergy ( G4double  value)
inlineinherited

Definition at line 188 of file G4VComponentCrossSection.hh.

189{
190 minKinEnergy = value;
191}

References G4VComponentCrossSection::minKinEnergy.

◆ SetVerboseLevel()

void G4VComponentCrossSection::SetVerboseLevel ( G4int  value)
inlineinherited

Definition at line 178 of file G4VComponentCrossSection.hh.

179{
180 verboseLevel = value;
181}

References G4VComponentCrossSection::verboseLevel.

Field Documentation

◆ b0

G4double G4ComponentAntiNuclNuclearXS::b0
private

◆ b2

G4double G4ComponentAntiNuclNuclearXS::b2
private

◆ Elab

G4double G4ComponentAntiNuclNuclearXS::Elab
private

Definition at line 88 of file G4ComponentAntiNuclNuclearXS.hh.

Referenced by GetAntiHadronNucleonTotCrSc().

◆ fAntiHadronNucleonElXsc

G4double G4ComponentAntiNuclNuclearXS::fAntiHadronNucleonElXsc
private

Definition at line 87 of file G4ComponentAntiNuclNuclearXS.hh.

Referenced by GetAntiHadronNucleonElCrSc().

◆ fAntiHadronNucleonTotXsc

G4double G4ComponentAntiNuclNuclearXS::fAntiHadronNucleonTotXsc
private

Definition at line 87 of file G4ComponentAntiNuclNuclearXS.hh.

Referenced by GetAntiHadronNucleonTotCrSc().

◆ fElasticXsc

G4double G4ComponentAntiNuclNuclearXS::fElasticXsc
private

Definition at line 86 of file G4ComponentAntiNuclNuclearXS.hh.

Referenced by GetElasticElementCrossSection().

◆ fInelasticXsc

G4double G4ComponentAntiNuclNuclearXS::fInelasticXsc
private

Definition at line 86 of file G4ComponentAntiNuclNuclearXS.hh.

Referenced by GetInelasticElementCrossSection().

◆ fRadiusEff

G4double G4ComponentAntiNuclNuclearXS::fRadiusEff
private

◆ fTotalXsc

G4double G4ComponentAntiNuclNuclearXS::fTotalXsc
private

Definition at line 86 of file G4ComponentAntiNuclNuclearXS.hh.

Referenced by GetTotalElementCrossSection().

◆ maxKinEnergy

G4double G4VComponentCrossSection::maxKinEnergy
privateinherited

◆ minKinEnergy

G4double G4VComponentCrossSection::minKinEnergy
privateinherited

◆ Mn

G4double G4ComponentAntiNuclNuclearXS::Mn
private

◆ name

const G4String G4VComponentCrossSection::name
privateinherited

◆ R0

G4double G4ComponentAntiNuclNuclearXS::R0
private

◆ ReffInel

const G4double G4ComponentAntiNuclNuclearXS::ReffInel[5][5]
private
Initial value:
= { {0.000, 3.582, 3.105, 3.105, 2.209},
{3.582, 3.169, 3.066, 3.066, 2.498},
{3.105, 3.066, 2.973, 2.973, 2.508},
{3.105, 3.066, 2.973, 2.973, 2.508},
{2.209, 2.498, 2.508, 2.508, 2.158} }

Definition at line 102 of file G4ComponentAntiNuclNuclearXS.hh.

Referenced by GetInelasticElementCrossSection().

◆ ReffTot

const G4double G4ComponentAntiNuclNuclearXS::ReffTot[5][5]
private
Initial value:
= { {0.000, 3.800, 3.300, 3.300, 2.376},
{3.800, 3.238, 3.144, 3.144, 2.544},
{3.300, 3.144, 3.075, 3.075, 3.589},
{3.300, 3.144, 3.075, 3.075, 2.589},
{2.376, 2.544, 3.589, 3.598, 2.241} }

Definition at line 97 of file G4ComponentAntiNuclNuclearXS.hh.

Referenced by GetTotalElementCrossSection().

◆ registry

G4CrossSectionDataSetRegistry* G4VComponentCrossSection::registry
privateinherited

◆ S

G4double G4ComponentAntiNuclNuclearXS::S
private

◆ S0

G4double G4ComponentAntiNuclNuclearXS::S0
private

◆ SqrtS

G4double G4ComponentAntiNuclNuclearXS::SqrtS
private

◆ SqrtS0

G4double G4ComponentAntiNuclNuclearXS::SqrtS0
private

◆ theAAlpha

G4ParticleDefinition* G4ComponentAntiNuclNuclearXS::theAAlpha
private

◆ theADeuteron

G4ParticleDefinition* G4ComponentAntiNuclNuclearXS::theADeuteron
private

◆ theAHe3

G4ParticleDefinition* G4ComponentAntiNuclNuclearXS::theAHe3
private

◆ theANeutron

G4ParticleDefinition* G4ComponentAntiNuclNuclearXS::theANeutron
private

◆ theAProton

G4ParticleDefinition* G4ComponentAntiNuclNuclearXS::theAProton
private

◆ theATriton

G4ParticleDefinition* G4ComponentAntiNuclNuclearXS::theATriton
private

◆ theG4Pow

const G4Pow* G4ComponentAntiNuclNuclearXS::theG4Pow = G4Pow::GetInstance()
private

◆ verboseLevel

G4int G4VComponentCrossSection::verboseLevel
privateinherited

The documentation for this class was generated from the following files: