Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 70 of file G4ElasticHadrNucleusHE.hh.

Constructor & Destructor Documentation

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

Definition at line 76 of file G4ElasticHadrNucleusHE.cc.

78 {
79  hadr = p;
80  massGeV = p->GetPDGMass()/GeV;
82  AtomicWeight = G4lrint(AWeight);
83 
84  DefineNucleusParameters(AWeight);
85 
86  limitQ2 = 35./(R1*R1); // (GeV/c)^2
87 
88  G4double dQ2 = limitQ2/(ONQ2 - 1.);
89 
90  TableQ2[0] = 0.0;
91 
92  for(G4int ii = 1; ii < ONQ2; ii++)
93  {
94  TableQ2[ii] = TableQ2[ii-1]+dQ2;
95  }
96 
97  massA = AWeight*amu_c2/GeV;
98  massA2 = massA*massA;
99 
100  for(G4int kk = 0; kk < NENERGY; kk++)
101  {
102  dnkE[kk] = 0;
103  G4double elab = eGeV[kk] + massGeV;
104  G4double plab2= eGeV[kk]*(eGeV[kk] + 2.0*massGeV);
105  G4double Q2m = 4.0*plab2*massA2/(mass2GeV2 + massA2 + 2.*massA2*elab);
106 
107  if(Z == 1 && p == G4Proton::Proton()) Q2m *= 0.5;
108 
109  maxQ2[kk] = std::min(limitQ2, Q2m);
110  TableCrossSec[ONQ2*kk] = 0.0;
111 
112 // G4cout<<" kk eGeV[kk] "<<kk<<" "<<eGeV[kk]<<G4endl;
113  }
114 }
static const G4int ONQ2
const char * p
Definition: xmltok.h:285
int G4int
Definition: G4Types.hh:78
G4double TableCrossSec[NQTABLE]
G4double maxQ2[NENERGY]
static G4Proton * Proton()
Definition: G4Proton.cc:93
static const G4int NENERGY
int G4lrint(double ad)
Definition: templates.hh:163
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
static constexpr double GeV
Definition: G4SIunits.hh:217
G4double TableQ2[ONQ2]
double G4double
Definition: G4Types.hh:76
float amu_c2
Definition: hepunit.py:277

Here is the call graph for this function:

G4ElasticData::~G4ElasticData ( )
inline

Definition at line 77 of file G4ElasticHadrNucleusHE.hh.

77 {}

Member Function Documentation

const G4ParticleDefinition* G4ElasticData::Hadron ( )
inline

Definition at line 79 of file G4ElasticHadrNucleusHE.hh.

79 {return hadr;}

Member Data Documentation

G4double G4ElasticData::Aeff

Definition at line 91 of file G4ElasticHadrNucleusHE.hh.

G4int G4ElasticData::AtomicWeight

Definition at line 90 of file G4ElasticHadrNucleusHE.hh.

G4int G4ElasticData::dnkE[NENERGY]

Definition at line 97 of file G4ElasticHadrNucleusHE.hh.

G4double G4ElasticData::limitQ2

Definition at line 92 of file G4ElasticHadrNucleusHE.hh.

G4double G4ElasticData::mass2GeV2

Definition at line 94 of file G4ElasticHadrNucleusHE.hh.

G4double G4ElasticData::massA

Definition at line 95 of file G4ElasticHadrNucleusHE.hh.

G4double G4ElasticData::massA2

Definition at line 96 of file G4ElasticHadrNucleusHE.hh.

G4double G4ElasticData::massGeV

Definition at line 93 of file G4ElasticHadrNucleusHE.hh.

G4double G4ElasticData::maxQ2[NENERGY]

Definition at line 98 of file G4ElasticHadrNucleusHE.hh.

G4double G4ElasticData::Pnucl

Definition at line 91 of file G4ElasticHadrNucleusHE.hh.

G4double G4ElasticData::R1

Definition at line 91 of file G4ElasticHadrNucleusHE.hh.

G4double G4ElasticData::R2

Definition at line 91 of file G4ElasticHadrNucleusHE.hh.

G4double G4ElasticData::TableCrossSec[NQTABLE]

Definition at line 101 of file G4ElasticHadrNucleusHE.hh.

G4double G4ElasticData::TableQ2[ONQ2]

Definition at line 100 of file G4ElasticHadrNucleusHE.hh.


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