Import Geant4 8.3.0 source tree
This commit is contained in:
+35
-33
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ElasticHadrNucleusHE.hh,v 1.33 2006/12/13 15:45:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// $Id: G4ElasticHadrNucleusHE.hh,v 1.34 2007/04/02 08:32:00 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-08-03 $
|
||||
//
|
||||
// G4ElasticHadrNucleusHe.hh
|
||||
|
||||
@@ -51,8 +51,8 @@
|
||||
|
||||
#include "G4HadronicInteraction.hh"
|
||||
|
||||
static const G4int ONQ0 = 3; // The initial number of steps on Q2
|
||||
static const G4int ONQ2 = 150; // The total number of steps on Q2
|
||||
static const G4int ONQ0 = 5; // The initial number of steps on Q2
|
||||
static const G4int ONQ2 = 100; // The total number of steps on Q2
|
||||
static const G4int NENERGY = 30;
|
||||
static const G4int NQTABLE = NENERGY*ONQ2;
|
||||
|
||||
@@ -61,24 +61,25 @@ class ElasticData
|
||||
public:
|
||||
|
||||
ElasticData(const G4ParticleDefinition* h,
|
||||
G4int AtomWeight);
|
||||
G4int A, G4double* eGeV);
|
||||
|
||||
~ElasticData(){;}
|
||||
~ElasticData(){}
|
||||
|
||||
void GetNucleusParameters(G4int Nucleus);
|
||||
const G4ParticleDefinition* Hadron() {return hadr;}
|
||||
|
||||
// ============================================
|
||||
void fillQ2limit();
|
||||
|
||||
private:
|
||||
void DefineNucleusParameters(G4int A);
|
||||
const G4ParticleDefinition* hadr;
|
||||
|
||||
public:
|
||||
G4int AtomicWeight;
|
||||
G4double R1, R2, Pnucl, Aeff;
|
||||
G4double limitQ2;
|
||||
G4double massGeV;
|
||||
G4int dnkE[NENERGY];
|
||||
G4double maxQ2[NENERGY];
|
||||
G4double TableQ2[ONQ2];
|
||||
G4double TableCrossSec[NQTABLE];
|
||||
G4double maxQ2, dQ2;
|
||||
G4double R1, R2, Pnucl, Aeff;
|
||||
G4double massGeV;
|
||||
};
|
||||
|
||||
// ############################################################
|
||||
@@ -103,10 +104,10 @@ private:
|
||||
G4double X);
|
||||
|
||||
G4double HadronNucleusQ2_2(const G4ParticleDefinition * aHadron,
|
||||
G4int AWeight,
|
||||
G4double q, G4double aLabMom,
|
||||
G4int kk, ElasticData * pElD);
|
||||
G4double GetLightFq2(G4int N, G4double Q, G4int Step);
|
||||
ElasticData * pElD,
|
||||
G4double aLabMom);
|
||||
|
||||
G4double GetLightFq2(G4int N, G4double Q);
|
||||
|
||||
G4int GetBinom(G4int m, G4int n);
|
||||
|
||||
@@ -132,6 +133,10 @@ private:
|
||||
G4double c1, G4double c2,
|
||||
G4double p);
|
||||
|
||||
void GetHadronValues(const G4ParticleDefinition * aHadron,
|
||||
G4double TotMom);
|
||||
|
||||
|
||||
G4double SigTot, Slope, ReOnIm, HdrE, ConstU, Q2;
|
||||
G4double ProtonM, HadronM, HadronE, Sh, PM2, HM2;
|
||||
|
||||
@@ -147,26 +152,30 @@ private:
|
||||
G4double sqMbToGeV;
|
||||
G4double Fm2ToGeV2;
|
||||
G4double GeV2;
|
||||
G4double emin, emax, deltae;
|
||||
|
||||
G4int HadrCode;
|
||||
// G4String HadronName;
|
||||
G4double R1, R2, Pnucl, Aeff;
|
||||
G4double Energy[NENERGY];
|
||||
// +++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
std::vector<ElasticData*> SetOfElasticData;
|
||||
|
||||
G4int Nstep, // The number of steps on Q2
|
||||
iKindWork, //
|
||||
iContr, //
|
||||
iPoE; // The number of steps on E
|
||||
G4int iTypeWork, CurrentN;
|
||||
G4double aNucleon;
|
||||
|
||||
G4double aNucleon;
|
||||
G4double R1, R2, Pnucl, Aeff;
|
||||
G4double dEbeg1, dEend1, dQ2, maxQ2;
|
||||
G4double HadrTot, HadrSlope, HadrReIm, DDSect2, DDSect3, MomentumCM;
|
||||
|
||||
G4double Q2res;
|
||||
|
||||
G4double Energy[NENERGY];
|
||||
G4double LowEdgeEnergy[NENERGY];
|
||||
|
||||
G4double SetBinom[240][240];
|
||||
|
||||
std::vector<ElasticData*> SetOfElasticData;
|
||||
|
||||
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
void Binom()
|
||||
{
|
||||
G4int N, M;
|
||||
@@ -180,7 +189,7 @@ private:
|
||||
Fact1 = 1;
|
||||
if ((N>0) && (N>M) && M>0)
|
||||
{
|
||||
J = J*(N-M+1)/M;
|
||||
J *= G4double(N-M+1)/G4double(M);
|
||||
Fact1 = J;
|
||||
}
|
||||
SetBinom[N][M] = Fact1;
|
||||
@@ -189,13 +198,6 @@ private:
|
||||
return;
|
||||
}
|
||||
|
||||
void GetHadronValues(const G4ParticleDefinition * aHadron,
|
||||
G4double TotMom);
|
||||
|
||||
G4double HadrTot, HadrSlope, HadrReIm, DDSect2, DDSect3, MomentumCM;
|
||||
|
||||
G4double Q2res;
|
||||
|
||||
}; // The end of the class description
|
||||
|
||||
#endif
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4HadronElastic.hh,v 1.21 2006/11/21 19:38:53 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
// $Id: G4HadronElastic.hh,v 1.24 2007/04/03 10:38:43 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-08-03 $
|
||||
//
|
||||
//
|
||||
// G4 Model: Low energy elastic scattering with 4-momentum balance
|
||||
@@ -40,6 +40,7 @@
|
||||
// 16-Nov-06 V.Ivanchenko remove definition
|
||||
// 16-Nov-06 V.Ivanchenko default ekinhigh = 0.4*GeV
|
||||
// 16-Nov-06 V.Ivanchenko cleanup and rename Set methods and variables
|
||||
// 28-Mar-07 V.Ivanchenko add NIST manager
|
||||
//
|
||||
//
|
||||
// Class Description
|
||||
@@ -66,12 +67,13 @@ enum G4ElasticGenerator
|
||||
class G4ParticleDefinition;
|
||||
class G4VQCrossSection;
|
||||
class G4ElasticHadrNucleusHE;
|
||||
class G4NistManager;
|
||||
|
||||
class G4HadronElastic : public G4HadronicInteraction
|
||||
{
|
||||
public:
|
||||
|
||||
G4HadronElastic(G4double e1=0.0,G4double e2=0.0, G4double e3=0.0);
|
||||
G4HadronElastic();
|
||||
|
||||
virtual ~G4HadronElastic();
|
||||
|
||||
@@ -110,6 +112,7 @@ private:
|
||||
G4double* pxnew, G4double* pynew, G4double* pznew);
|
||||
|
||||
G4VQCrossSection* qCManager;
|
||||
G4NistManager* nistManager;
|
||||
G4ElasticHadrNucleusHE* hElastic;
|
||||
|
||||
G4ParticleDefinition* theProton;
|
||||
|
||||
Reference in New Issue
Block a user