Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4ComponentGGNuclNuclXsc Class Reference

#include <G4ComponentGGNuclNuclXsc.hh>

+ Inheritance diagram for G4ComponentGGNuclNuclXsc:

Public Member Functions

 G4ComponentGGNuclNuclXsc ()
 
virtual ~G4ComponentGGNuclNuclXsc ()
 
G4double GetTotalElementCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A) final
 
G4double GetTotalIsotopeCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A) final
 
G4double GetInelasticElementCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A) final
 
G4double GetInelasticIsotopeCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A) final
 
G4double GetElasticElementCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double A) final
 
G4double GetElasticIsotopeCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A) final
 
G4double ComputeQuasiElasticRatio (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A) final
 
void BuildPhysicsTable (const G4ParticleDefinition &) final
 
void DumpPhysicsTable (const G4ParticleDefinition &) final
 
void Description (std::ostream &) const final
 
G4double GetZandACrossSection (const G4DynamicParticle *, G4int Z, G4int A)
 
G4double GetCoulombBarier (const G4DynamicParticle *, G4double Z, G4double A, G4double pR, G4double tR)
 
G4double ComputeCoulombBarier (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A, G4double pR, G4double tR)
 
G4double GetRatioSD (const G4DynamicParticle *, G4double At, G4double Zt)
 
G4double GetRatioQE (const G4DynamicParticle *, G4double At, G4double Zt)
 
G4double GetElasticGlauberGribov (const G4DynamicParticle *, G4int Z, G4int A)
 
G4double GetInelasticGlauberGribov (const G4DynamicParticle *, G4int Z, G4int A)
 
G4double GetTotalGlauberGribovXsc () const
 
G4double GetElasticGlauberGribovXsc () const
 
G4double GetInelasticGlauberGribovXsc () const
 
G4double GetProductionGlauberGribovXsc () const
 
G4double GetDiffractionGlauberGribovXsc () const
 
- Public Member Functions inherited from G4VComponentCrossSection
 G4VComponentCrossSection (const G4String &nam="")
 
virtual ~G4VComponentCrossSection ()
 
G4double GetTotalElementCrossSection (const G4ParticleDefinition *, G4double kinEnergy, const G4Element *)
 
G4double GetInelasticElementCrossSection (const G4ParticleDefinition *, G4double kinEnergy, const G4Element *)
 
G4double GetElasticElementCrossSection (const G4ParticleDefinition *, G4double kinEnergy, const G4Element *)
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
G4double GetMinKinEnergy () const
 
void SetMinKinEnergy (G4double value)
 
G4double GetMaxKinEnergy () const
 
void SetMaxKinEnergy (G4double value)
 
const G4StringGetName () const
 

Detailed Description

Definition at line 52 of file G4ComponentGGNuclNuclXsc.hh.

Constructor & Destructor Documentation

◆ G4ComponentGGNuclNuclXsc()

G4ComponentGGNuclNuclXsc::G4ComponentGGNuclNuclXsc ( )

Definition at line 44 of file G4ComponentGGNuclNuclXsc.cc.

45 : G4VComponentCrossSection("Glauber-Gribov Nucl-nucl"),
46 fTotalXsc(0.0), fElasticXsc(0.0), fInelasticXsc(0.0), fProductionXsc(0.0),
47 fDiffractionXsc(0.0), fEnergy(0.0), fParticle(nullptr), fZ(0), fA(0)
48{
49 theProton = G4Proton::Proton();
50 theNeutron = G4Neutron::Neutron();
51 theLambda = G4Lambda::Lambda();
52 fHNXsc = new G4HadronNucleonXsc();
53 fHadrNucl = new G4ComponentGGHadronNucleusXsc();
54}
static G4Lambda * Lambda()
Definition G4Lambda.cc:105
static G4Neutron * Neutron()
Definition G4Neutron.cc:101
static G4Proton * Proton()
Definition G4Proton.cc:90
G4VComponentCrossSection(const G4String &nam="")

◆ ~G4ComponentGGNuclNuclXsc()

G4ComponentGGNuclNuclXsc::~G4ComponentGGNuclNuclXsc ( )
virtual

Definition at line 56 of file G4ComponentGGNuclNuclXsc.cc.

57{
58 delete fHNXsc;
59}

Member Function Documentation

◆ BuildPhysicsTable()

void G4ComponentGGNuclNuclXsc::BuildPhysicsTable ( const G4ParticleDefinition & )
finalvirtual

Reimplemented from G4VComponentCrossSection.

Definition at line 134 of file G4ComponentGGNuclNuclXsc.cc.

135{}

◆ ComputeCoulombBarier()

G4double G4ComponentGGNuclNuclXsc::ComputeCoulombBarier ( const G4ParticleDefinition * aParticle,
G4double kinEnergy,
G4int Z,
G4int A,
G4double pR,
G4double tR )

Definition at line 247 of file G4ComponentGGNuclNuclXsc.cc.

251{
252 G4int pZ = aParticle->GetPDGCharge()*inve;
253 G4double pM = aParticle->GetPDGMass();
255 G4double pElab = pTkin + pM;
256 G4double totEcm = std::sqrt(pM*pM + tM*tM + 2.*pElab*tM);
257 G4double totTcm = totEcm - pM -tM;
258
259 static const G4double qfact = CLHEP::fine_structure_const*CLHEP::hbarc;
260 G4double bC = qfact*pZ*Z*0.5/(pR + tR);
261
262 G4double ratio = (totTcm <= bC ) ? 0. : 1. - bC/totTcm;
263 // G4cout<<"G4ComponentGGNuclNuclXsc::ComputeCoulombBarier= "<<ratio
264 // <<"; pTkin(GeV)= " <<pTkin/GeV<<";
265 // " pPlab = "<<pPlab/GeV<<"; bC = "<<bC/GeV<<"; pTcm = "
266 // <<pTcm/GeV<<G4endl;
267 return ratio;
268}
double G4double
Definition G4Types.hh:83
int G4int
Definition G4Types.hh:85
const G4double A[17]
static G4double GetNuclearMass(const G4double A, const G4double Z)

Referenced by GetCoulombBarier().

◆ ComputeQuasiElasticRatio()

G4double G4ComponentGGNuclNuclXsc::ComputeQuasiElasticRatio ( const G4ParticleDefinition * aParticle,
G4double kinEnergy,
G4int Z,
G4int A )
finalvirtual

Reimplemented from G4VComponentCrossSection.

Definition at line 123 of file G4ComponentGGNuclNuclXsc.cc.

126{
127 ComputeCrossSections(aParticle, kinEnergy, Z, A);
128 return (fInelasticXsc > fProductionXsc)
129 ? (fInelasticXsc - fProductionXsc)/fInelasticXsc : 0.0;
130}

◆ Description()

void G4ComponentGGNuclNuclXsc::Description ( std::ostream & outFile) const
finalvirtual

Reimplemented from G4VComponentCrossSection.

Definition at line 146 of file G4ComponentGGNuclNuclXsc.cc.

147{
148 outFile << "G4ComponentGGNuclNuclXsc calculates total, inelastic and\n"
149 << "elastic cross sections for nucleus-nucleus collisions using\n"
150 << "the Glauber model with Gribov corrections. It is valid for\n"
151 << "all incident energies above 100 keV./n"
152 << "For the hydrogen target G4HadronNucleonXsc class is used.\n";
153}

◆ DumpPhysicsTable()

void G4ComponentGGNuclNuclXsc::DumpPhysicsTable ( const G4ParticleDefinition & )
finalvirtual

Reimplemented from G4VComponentCrossSection.

Definition at line 139 of file G4ComponentGGNuclNuclXsc.cc.

140{
141 G4cout << "G4ComponentGGNuclNuclXsc: uses Glauber-Gribov formula" << G4endl;
142}
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout

◆ GetCoulombBarier()

G4double G4ComponentGGNuclNuclXsc::GetCoulombBarier ( const G4DynamicParticle * dp,
G4double Z,
G4double A,
G4double pR,
G4double tR )
inline

Definition at line 179 of file G4ComponentGGNuclNuclXsc.hh.

182{
184 G4lrint(Z), G4lrint(A), pR, tR);
185}
G4double ComputeCoulombBarier(const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int A, G4double pR, G4double tR)
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
int G4lrint(double ad)
Definition templates.hh:134

◆ GetDiffractionGlauberGribovXsc()

G4double G4ComponentGGNuclNuclXsc::GetDiffractionGlauberGribovXsc ( ) const
inline

Definition at line 119 of file G4ComponentGGNuclNuclXsc.hh.

119{ return fDiffractionXsc; };

◆ GetElasticElementCrossSection()

G4double G4ComponentGGNuclNuclXsc::GetElasticElementCrossSection ( const G4ParticleDefinition * aParticle,
G4double kinEnergy,
G4int Z,
G4double A )
finalvirtual

Implements G4VComponentCrossSection.

Definition at line 103 of file G4ComponentGGNuclNuclXsc.cc.

106{
107 ComputeCrossSections(aParticle, kinEnergy, Z, G4lrint(A));
108 return fElasticXsc;
109}

◆ GetElasticGlauberGribov()

G4double G4ComponentGGNuclNuclXsc::GetElasticGlauberGribov ( const G4DynamicParticle * dp,
G4int Z,
G4int A )
inline

Definition at line 145 of file G4ComponentGGNuclNuclXsc.hh.

147{
148 ComputeCrossSections(dp->GetDefinition(), dp->GetKineticEnergy(), Z, A);
149 return fElasticXsc;
150}

◆ GetElasticGlauberGribovXsc()

G4double G4ComponentGGNuclNuclXsc::GetElasticGlauberGribovXsc ( ) const
inline

Definition at line 116 of file G4ComponentGGNuclNuclXsc.hh.

116{ return fElasticXsc; };

◆ GetElasticIsotopeCrossSection()

G4double G4ComponentGGNuclNuclXsc::GetElasticIsotopeCrossSection ( const G4ParticleDefinition * aParticle,
G4double kinEnergy,
G4int Z,
G4int A )
finalvirtual

Implements G4VComponentCrossSection.

Definition at line 113 of file G4ComponentGGNuclNuclXsc.cc.

116{
117 ComputeCrossSections(aParticle, kinEnergy, Z, A);
118 return fElasticXsc;
119}

◆ GetInelasticElementCrossSection()

G4double G4ComponentGGNuclNuclXsc::GetInelasticElementCrossSection ( const G4ParticleDefinition * aParticle,
G4double kinEnergy,
G4int Z,
G4double A )
finalvirtual

Implements G4VComponentCrossSection.

Definition at line 83 of file G4ComponentGGNuclNuclXsc.cc.

86{
87 ComputeCrossSections(aParticle, kinEnergy, Z, G4lrint(A));
88 return fInelasticXsc;
89}

◆ GetInelasticGlauberGribov()

G4double G4ComponentGGNuclNuclXsc::GetInelasticGlauberGribov ( const G4DynamicParticle * dp,
G4int Z,
G4int A )
inline

Definition at line 153 of file G4ComponentGGNuclNuclXsc.hh.

155{
156 ComputeCrossSections(dp->GetDefinition(), dp->GetKineticEnergy(), Z, A);
157 return fInelasticXsc;
158}

◆ GetInelasticGlauberGribovXsc()

G4double G4ComponentGGNuclNuclXsc::GetInelasticGlauberGribovXsc ( ) const
inline

Definition at line 117 of file G4ComponentGGNuclNuclXsc.hh.

117{ return fInelasticXsc; };

◆ GetInelasticIsotopeCrossSection()

G4double G4ComponentGGNuclNuclXsc::GetInelasticIsotopeCrossSection ( const G4ParticleDefinition * aParticle,
G4double kinEnergy,
G4int Z,
G4int A )
finalvirtual

Implements G4VComponentCrossSection.

Definition at line 93 of file G4ComponentGGNuclNuclXsc.cc.

96{
97 ComputeCrossSections(aParticle, kinEnergy, Z, A);
98 return fInelasticXsc;
99}

◆ GetProductionGlauberGribovXsc()

G4double G4ComponentGGNuclNuclXsc::GetProductionGlauberGribovXsc ( ) const
inline

Definition at line 118 of file G4ComponentGGNuclNuclXsc.hh.

118{ return fProductionXsc; };

◆ GetRatioQE()

G4double G4ComponentGGNuclNuclXsc::GetRatioQE ( const G4DynamicParticle * aParticle,
G4double At,
G4double Zt )

Definition at line 288 of file G4ComponentGGNuclNuclXsc.cc.

290{
291 ComputeCrossSections(aParticle->GetDefinition(),
292 aParticle->GetKineticEnergy(),
293 G4lrint(tZ), G4lrint(tA));
294
295 return (fInelasticXsc > 0.0) ? 1.0 - fProductionXsc/fInelasticXsc : 0.0;
296}

◆ GetRatioSD()

G4double G4ComponentGGNuclNuclXsc::GetRatioSD ( const G4DynamicParticle * aParticle,
G4double At,
G4double Zt )

Definition at line 274 of file G4ComponentGGNuclNuclXsc.cc.

276{
277 ComputeCrossSections(aParticle->GetDefinition(),
278 aParticle->GetKineticEnergy(),
279 G4lrint(tZ), G4lrint(tA));
280
281 return (fInelasticXsc > 0.0) ? fDiffractionXsc/fInelasticXsc : 0.0;
282}

◆ GetTotalElementCrossSection()

G4double G4ComponentGGNuclNuclXsc::GetTotalElementCrossSection ( const G4ParticleDefinition * aParticle,
G4double kinEnergy,
G4int Z,
G4double A )
finalvirtual

Implements G4VComponentCrossSection.

Definition at line 63 of file G4ComponentGGNuclNuclXsc.cc.

66{
67 ComputeCrossSections(aParticle, kinEnergy, Z, G4lrint(A));
68 return fTotalXsc;
69}

◆ GetTotalGlauberGribovXsc()

G4double G4ComponentGGNuclNuclXsc::GetTotalGlauberGribovXsc ( ) const
inline

Definition at line 115 of file G4ComponentGGNuclNuclXsc.hh.

115{ return fTotalXsc; };

◆ GetTotalIsotopeCrossSection()

G4double G4ComponentGGNuclNuclXsc::GetTotalIsotopeCrossSection ( const G4ParticleDefinition * aParticle,
G4double kinEnergy,
G4int Z,
G4int A )
finalvirtual

Implements G4VComponentCrossSection.

Definition at line 73 of file G4ComponentGGNuclNuclXsc.cc.

76{
77 ComputeCrossSections(aParticle, kinEnergy, Z, A);
78 return fTotalXsc;
79}

◆ GetZandACrossSection()

G4double G4ComponentGGNuclNuclXsc::GetZandACrossSection ( const G4DynamicParticle * dp,
G4int Z,
G4int A )
inline

Definition at line 171 of file G4ComponentGGNuclNuclXsc.hh.

173{
174 ComputeCrossSections(dp->GetDefinition(), dp->GetKineticEnergy(), Z, A);
175 return fInelasticXsc;
176}

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