Geant4 10.7.0
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 *)
 
virtual G4double GetTotalElementCrossSection (const G4ParticleDefinition *, G4double kinEnergy, G4int, G4double)=0
 
virtual G4double GetTotalIsotopeCrossSection (const G4ParticleDefinition *, G4double kinEnergy, G4int, G4int)=0
 
G4double GetInelasticElementCrossSection (const G4ParticleDefinition *, G4double kinEnergy, const G4Element *)
 
virtual G4double GetInelasticElementCrossSection (const G4ParticleDefinition *, G4double kinEnergy, G4int, G4double)=0
 
virtual G4double GetInelasticIsotopeCrossSection (const G4ParticleDefinition *, G4double kinEnergy, G4int, G4int)=0
 
G4double GetElasticElementCrossSection (const G4ParticleDefinition *, G4double kinEnergy, const G4Element *)
 
virtual G4double GetElasticElementCrossSection (const G4ParticleDefinition *, G4double kinEnergy, G4int, G4double)=0
 
virtual G4double GetElasticIsotopeCrossSection (const G4ParticleDefinition *, G4double kinEnergy, G4int, G4int)=0
 
virtual G4double ComputeQuasiElasticRatio (const G4ParticleDefinition *, G4double kinEnergy, G4int, G4int)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual void DumpPhysicsTable (const G4ParticleDefinition &)
 
virtual void Description (std::ostream &) const
 
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 43 of file G4ComponentGGNuclNuclXsc.cc.

44 : G4VComponentCrossSection("Glauber-Gribov Nucl-nucl"),
45 fTotalXsc(0.0), fElasticXsc(0.0), fInelasticXsc(0.0), fProductionXsc(0.0),
46 fDiffractionXsc(0.0), fEnergy(0.0), fParticle(nullptr), fZ(0), fA(0)
47{
48 theProton = G4Proton::Proton();
49 theNeutron = G4Neutron::Neutron();
50 fHNXsc = new G4HadronNucleonXsc();
51 fHadrNucl = new G4ComponentGGHadronNucleusXsc();
52}
static G4Neutron * Neutron()
Definition: G4Neutron.cc:103
static G4Proton * Proton()
Definition: G4Proton.cc:92

◆ ~G4ComponentGGNuclNuclXsc()

G4ComponentGGNuclNuclXsc::~G4ComponentGGNuclNuclXsc ( )
virtual

Definition at line 54 of file G4ComponentGGNuclNuclXsc.cc.

55{
56 delete fHNXsc;
57}

Member Function Documentation

◆ BuildPhysicsTable()

void G4ComponentGGNuclNuclXsc::BuildPhysicsTable ( const G4ParticleDefinition )
finalvirtual

Reimplemented from G4VComponentCrossSection.

Definition at line 132 of file G4ComponentGGNuclNuclXsc.cc.

133{}

◆ ComputeCoulombBarier()

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

Definition at line 238 of file G4ComponentGGNuclNuclXsc.cc.

242{
243 G4int pZ = aParticle->GetPDGCharge()*inve;
244 G4double pM = aParticle->GetPDGMass();
246 G4double pElab = pTkin + pM;
247 G4double totEcm = std::sqrt(pM*pM + tM*tM + 2.*pElab*tM);
248 G4double totTcm = totEcm - pM -tM;
249
250 static const G4double qfact = CLHEP::fine_structure_const*CLHEP::hbarc;
251 G4double bC = qfact*pZ*Z*0.5/(pR + tR);
252
253 G4double ratio = (totTcm <= bC ) ? 0. : 1. - bC/totTcm;
254 // G4cout<<"G4ComponentGGNuclNuclXsc::ComputeCoulombBarier= "<<ratio
255 // <<"; pTkin(GeV)= " <<pTkin/GeV<<";
256 // " pPlab = "<<pPlab/GeV<<"; bC = "<<bC/GeV<<"; pTcm = "
257 // <<pTcm/GeV<<G4endl;
258 return ratio;
259}
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
static G4double GetNuclearMass(const G4double A, const G4double Z)
G4double GetPDGCharge() const

Referenced by GetCoulombBarier().

◆ ComputeQuasiElasticRatio()

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

Reimplemented from G4VComponentCrossSection.

Definition at line 121 of file G4ComponentGGNuclNuclXsc.cc.

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

◆ Description()

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

Reimplemented from G4VComponentCrossSection.

Definition at line 144 of file G4ComponentGGNuclNuclXsc.cc.

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

◆ DumpPhysicsTable()

void G4ComponentGGNuclNuclXsc::DumpPhysicsTable ( const G4ParticleDefinition )
finalvirtual

Reimplemented from G4VComponentCrossSection.

Definition at line 137 of file G4ComponentGGNuclNuclXsc.cc.

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

◆ GetCoulombBarier()

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

Definition at line 178 of file G4ComponentGGNuclNuclXsc.hh.

181{
183 G4lrint(Z), G4lrint(A), pR, tR);
184}
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 101 of file G4ComponentGGNuclNuclXsc.cc.

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

◆ GetElasticGlauberGribov()

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

Definition at line 144 of file G4ComponentGGNuclNuclXsc.hh.

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

◆ 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 111 of file G4ComponentGGNuclNuclXsc.cc.

114{
115 ComputeCrossSections(aParticle, kinEnergy, Z, A);
116 return fElasticXsc;
117}

◆ GetInelasticElementCrossSection()

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

Implements G4VComponentCrossSection.

Definition at line 81 of file G4ComponentGGNuclNuclXsc.cc.

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

◆ GetInelasticGlauberGribov()

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

Definition at line 152 of file G4ComponentGGNuclNuclXsc.hh.

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

◆ 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 91 of file G4ComponentGGNuclNuclXsc.cc.

94{
95 ComputeCrossSections(aParticle, kinEnergy, Z, A);
96 return fInelasticXsc;
97}

◆ 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 279 of file G4ComponentGGNuclNuclXsc.cc.

281{
282 ComputeCrossSections(aParticle->GetDefinition(),
283 aParticle->GetKineticEnergy(),
284 G4lrint(tZ), G4lrint(tA));
285
286 return (fInelasticXsc > 0.0) ? 1.0 - fProductionXsc/fInelasticXsc : 0.0;
287}

◆ GetRatioSD()

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

Definition at line 265 of file G4ComponentGGNuclNuclXsc.cc.

267{
268 ComputeCrossSections(aParticle->GetDefinition(),
269 aParticle->GetKineticEnergy(),
270 G4lrint(tZ), G4lrint(tA));
271
272 return (fInelasticXsc > 0.0) ? fDiffractionXsc/fInelasticXsc : 0.0;
273}

◆ GetTotalElementCrossSection()

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

Implements G4VComponentCrossSection.

Definition at line 61 of file G4ComponentGGNuclNuclXsc.cc.

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

◆ 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 71 of file G4ComponentGGNuclNuclXsc.cc.

74{
75 ComputeCrossSections(aParticle, kinEnergy, Z, A);
76 return fTotalXsc;
77}

◆ GetZandACrossSection()

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

Definition at line 170 of file G4ComponentGGNuclNuclXsc.hh.

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

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