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

#include <G4ElasticHadrNucleusHE.hh>

Public Member Functions

 G4ElasticData (const G4ParticleDefinition *h, G4int Z, G4double A, G4double *eGeV)
 
 ~G4ElasticData ()
 
const G4ParticleDefinitionHadron ()
 

Public Attributes

G4int AtomicWeight
 
G4double R1
 
G4double R2
 
G4double Pnucl
 
G4double Aeff
 
G4double limitQ2
 
G4double massGeV
 
G4double mass2GeV2
 
G4double massA
 
G4double massA2
 
G4int dnkE [NENERGY]
 
G4double maxQ2 [NENERGY]
 
G4double TableQ2 [ONQ2]
 
G4double TableCrossSec [NQTABLE]
 

Detailed Description

Definition at line 69 of file G4ElasticHadrNucleusHE.hh.

Constructor & Destructor Documentation

◆ G4ElasticData()

G4ElasticData::G4ElasticData ( const G4ParticleDefinition h,
G4int  Z,
G4double  A,
G4double eGeV 
)

Definition at line 63 of file G4ElasticHadrNucleusHE.cc.

65{
66 hadr = p;
67 massGeV = p->GetPDGMass()/GeV;
69 AtomicWeight = G4int(AWeight + 0.5);
70
71 DefineNucleusParameters(AWeight);
72
73 limitQ2 = 35./(R1*R1); // (GeV/c)^2
74
75 G4double dQ2 = limitQ2/(ONQ2 - 1.);
76
77 TableQ2[0] = 0.0;
78
79 for(G4int ii = 1; ii < ONQ2; ii++)
80 {
81 TableQ2[ii] = TableQ2[ii-1]+dQ2;
82 }
83
84 massA = AWeight*amu_c2/GeV;
86
87 for(G4int kk = 0; kk < NENERGY; kk++)
88 {
89 dnkE[kk] = 0;
90 G4double elab = eGeV[kk] + massGeV;
91 G4double plab2= eGeV[kk]*(eGeV[kk] + 2.0*massGeV);
92 G4double Q2m = 4.0*plab2*massA2/(mass2GeV2 + massA2 + 2.*massA2*elab);
93
94 if(Z == 1 && p == G4Proton::Proton()) Q2m *= 0.5;
95
96 maxQ2[kk] = std::min(limitQ2, Q2m);
97 TableCrossSec[ONQ2*kk] = 0.0;
98
99// G4cout<<" kk eGeV[kk] "<<kk<<" "<<eGeV[kk]<<G4endl;
100 }
101}
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
G4double TableQ2[ONQ2]
G4double TableCrossSec[NQTABLE]
G4double maxQ2[NENERGY]
static G4Proton * Proton()
Definition: G4Proton.cc:93

◆ ~G4ElasticData()

G4ElasticData::~G4ElasticData ( )
inline

Definition at line 76 of file G4ElasticHadrNucleusHE.hh.

76{}

Member Function Documentation

◆ Hadron()

const G4ParticleDefinition * G4ElasticData::Hadron ( )
inline

Definition at line 78 of file G4ElasticHadrNucleusHE.hh.

78{return hadr;}

Member Data Documentation

◆ Aeff

G4double G4ElasticData::Aeff

Definition at line 90 of file G4ElasticHadrNucleusHE.hh.

Referenced by G4ElasticHadrNucleusHE::HadronNucleusQ2_2().

◆ AtomicWeight

G4int G4ElasticData::AtomicWeight

Definition at line 89 of file G4ElasticHadrNucleusHE.hh.

Referenced by G4ElasticData().

◆ dnkE

G4int G4ElasticData::dnkE[NENERGY]

◆ limitQ2

G4double G4ElasticData::limitQ2

Definition at line 91 of file G4ElasticHadrNucleusHE.hh.

Referenced by G4ElasticData().

◆ mass2GeV2

G4double G4ElasticData::mass2GeV2

◆ massA

G4double G4ElasticData::massA

◆ massA2

G4double G4ElasticData::massA2

◆ massGeV

G4double G4ElasticData::massGeV

◆ maxQ2

G4double G4ElasticData::maxQ2[NENERGY]

◆ Pnucl

G4double G4ElasticData::Pnucl

Definition at line 90 of file G4ElasticHadrNucleusHE.hh.

Referenced by G4ElasticHadrNucleusHE::HadronNucleusQ2_2().

◆ R1

G4double G4ElasticData::R1

◆ R2

G4double G4ElasticData::R2

Definition at line 90 of file G4ElasticHadrNucleusHE.hh.

Referenced by G4ElasticHadrNucleusHE::HadronNucleusQ2_2().

◆ TableCrossSec

G4double G4ElasticData::TableCrossSec[NQTABLE]

◆ TableQ2

G4double G4ElasticData::TableQ2[ONQ2]

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