Import Geant4 0.0.0 source tree
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEAntiKaonZeroInelastic_h
|
||||
#define G4HEAntiKaonZeroInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEAntiKaonZeroInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEAntiKaonZeroInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEAntiKaonZeroInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasAntiKaonZero(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEAntiLambdaInelastic_h
|
||||
#define G4HEAntiLambdaInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEAntiLambdaInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEAntiLambdaInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEAntiLambdaInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasAntiLambda(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEAntiNeutronInelastic_h
|
||||
#define G4HEAntiNeutronInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEAntiNeutronInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEAntiNeutronInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEAntiNeutronInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasAntiNeutron(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEAntiOmegaMinusInelastic_h
|
||||
#define G4HEAntiOmegaMinusInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEAntiOmegaMinusInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEAntiOmegaMinusInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEAntiOmegaMinusInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasAntiOmegaMinus(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEAntiProtonInelastic_h
|
||||
#define G4HEAntiProtonInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEAntiProtonInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEAntiProtonInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEAntiProtonInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasAntiProton(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEAntiSigmaMinusInelastic_h
|
||||
#define G4HEAntiSigmaMinusInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEAntiSigmaMinusInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEAntiSigmaMinusInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEAntiSigmaMinusInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasAntiSigmaMinus(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEAntiSigmaPlusInelastic_h
|
||||
#define G4HEAntiSigmaPlusInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEAntiSigmaPlusInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEAntiSigmaPlusInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEAntiSigmaPlusInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasAntiSigmaPlus(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEAntiSigmaZeroInelastic_h
|
||||
#define G4HEAntiSigmaZeroInelastic_h 1
|
||||
|
||||
#include "G4HEAntiLambdaInelastic.hh"
|
||||
|
||||
class G4HEAntiSigmaZeroInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEAntiSigmaZeroInelastic() : G4HEInelastic()
|
||||
{
|
||||
}
|
||||
|
||||
~G4HEAntiSigmaZeroInelastic(){ };
|
||||
|
||||
G4int verboseLevel;
|
||||
G4int MAXPART;
|
||||
G4int vecLength;
|
||||
|
||||
void SetMaxNumberOfSecondaries(G4int maxnumber)
|
||||
{ MAXPART = maxnumber; };
|
||||
void SetVerboseLevel(G4int verbose)
|
||||
{ verboseLevel = verbose;};
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEAntiXiMinusInelastic_h
|
||||
#define G4HEAntiXiMinusInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEAntiXiMinusInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEAntiXiMinusInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEAntiXiMinusInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasAntiXiMinus(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEAntiXiZeroInelastic_h
|
||||
#define G4HEAntiXiZeroInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEAntiXiZeroInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEAntiXiZeroInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEAntiXiZeroInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasAntiXiZero(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,196 @@
|
||||
// G4 Gheisha High Energy (GHE) model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
// It includes all Physics Routines from Geant3,
|
||||
// relevant for simulation of hadronic processes
|
||||
// above approx. 20 GeV incident momentum.
|
||||
// Not included are the Physics Routines for
|
||||
// stopping particles, the low energy neutron
|
||||
// slowing down description and the low energy
|
||||
// nuclear reactions a(A,A')b.
|
||||
// All routines pass the compiler and give
|
||||
// some reasonable numbers as output.
|
||||
// A statistically significant comparison
|
||||
// with GEANT3 and experimental data has
|
||||
// still to be done.
|
||||
|
||||
#ifndef G4HEInelastic_h
|
||||
#define G4HEInelastic_h 1
|
||||
|
||||
#include "G4HEVector.hh"
|
||||
#include "G4HadronicInteraction.hh"
|
||||
|
||||
class G4HEInelastic : public G4HadronicInteraction
|
||||
{
|
||||
public:
|
||||
G4HEInelastic()
|
||||
{
|
||||
SetMinEnergy(20*GeV);
|
||||
SetMaxEnergy(10*TeV);
|
||||
MAXPART = 512;
|
||||
verboseLevel = 0;
|
||||
SetParticles();
|
||||
};
|
||||
~G4HEInelastic(){ };
|
||||
|
||||
void SetMaxNumberOfSecondaries( const G4int maxnumber )
|
||||
{ MAXPART = maxnumber;}
|
||||
|
||||
void SetVerboseLevel( const G4int level)
|
||||
{ verboseLevel = level;}
|
||||
|
||||
G4int verboseLevel;
|
||||
G4int MAXPART;
|
||||
|
||||
void FillParticleChange(G4HEVector pv[], G4int aVecLength);
|
||||
|
||||
G4double pmltpc(G4int np, G4int nm, G4int nz, G4int n, G4double b, G4double c);
|
||||
|
||||
G4int Factorial(G4int n);
|
||||
|
||||
G4double NuclearInelasticity(G4double incidentKineticEnergy,
|
||||
G4double atomicWeight,
|
||||
G4double atomicNumber);
|
||||
G4double NuclearExcitation(G4double incidentKineticEnergy,
|
||||
G4double atomicWeight,
|
||||
G4double atomicNumber,
|
||||
G4double& excitationEnergyCascade,
|
||||
G4double& excitationEnergyEvaporation);
|
||||
|
||||
void HighEnergyCascading(G4bool &successful,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4double &excitationEnergyGNP,
|
||||
G4double &excitationEnergyDTA,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
G4double atomicWeight,
|
||||
G4double atomicNumber);
|
||||
|
||||
void HighEnergyClusterProduction(G4bool &successful,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4double &excitationEnergyGNP,
|
||||
G4double &excitationEnergyDTA,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
G4double atomicWeight,
|
||||
G4double atomicNumber);
|
||||
|
||||
void TuningOfHighEnergyCascading( G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
G4double atomicWeight,
|
||||
G4double atomicNumber);
|
||||
|
||||
void MediumEnergyCascading(G4bool &successful,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4double &excitationEnergyGNP,
|
||||
G4double &excitationEnergyDTA,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
G4double atomicWeight,
|
||||
G4double atomicNumber);
|
||||
|
||||
void MediumEnergyClusterProduction(G4bool &successful,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4double &excitationEnergyGNP,
|
||||
G4double &excitationEnergyDTA,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
G4double atomicWeight,
|
||||
G4double atomicNumber);
|
||||
|
||||
void QuasiElasticScattering(G4bool &successful,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4double &excitationEnergyGNP,
|
||||
G4double &excitationEnergyDTA,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
G4double atomicWeight,
|
||||
G4double atomicNumber);
|
||||
|
||||
void ElasticScattering(G4bool &successful,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4double atomicWeight,
|
||||
G4double atomicNumber);
|
||||
|
||||
G4int rtmi(G4double *x, G4double xli, G4double xri, G4double eps,
|
||||
G4int iend,
|
||||
G4double aa, G4double bb, G4double cc, G4double dd, G4double rr);
|
||||
G4double fctcos(G4double t, G4double aa, G4double bb,G4double cc, G4double dd,
|
||||
G4double rr);
|
||||
|
||||
void StrangeParticlePairProduction(const G4double availableEnergy,
|
||||
const G4double centerOfMassEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle);
|
||||
|
||||
G4double NBodyPhaseSpace(const G4double totalEnergy,
|
||||
const G4bool constantCrossSection,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen);
|
||||
G4double NBodyPhaseSpace(G4int npart,
|
||||
G4HEVector pv[],
|
||||
G4double wmax,
|
||||
G4double wfcn,
|
||||
G4int maxtrial,
|
||||
G4int ntrial);
|
||||
|
||||
G4double gpdk(G4double a, G4double b, G4double c);
|
||||
void QuickSort(G4double arr[], const G4int lidx, const G4int ridx);
|
||||
G4double Alam(G4double a, G4double b, G4double c);
|
||||
G4double CalculatePhaseSpaceWeight( G4int npart);
|
||||
|
||||
G4double normal(void);
|
||||
G4double GammaRand(G4double avalue);
|
||||
G4double Erlang(G4int mvalue);
|
||||
G4int Poisson(G4double x);
|
||||
void SetParticles(void);
|
||||
|
||||
G4HEVector PionPlus;
|
||||
G4HEVector PionZero;
|
||||
G4HEVector PionMinus;
|
||||
G4HEVector KaonPlus;
|
||||
G4HEVector KaonZero;
|
||||
G4HEVector AntiKaonZero;
|
||||
G4HEVector KaonMinus;
|
||||
G4HEVector KaonZeroShort;
|
||||
G4HEVector KaonZeroLong;
|
||||
G4HEVector Proton;
|
||||
G4HEVector AntiProton;
|
||||
G4HEVector Neutron;
|
||||
G4HEVector AntiNeutron;
|
||||
G4HEVector Lambda;
|
||||
G4HEVector AntiLambda;
|
||||
G4HEVector SigmaPlus;
|
||||
G4HEVector SigmaZero;
|
||||
G4HEVector SigmaMinus;
|
||||
G4HEVector AntiSigmaPlus;
|
||||
G4HEVector AntiSigmaZero;
|
||||
G4HEVector AntiSigmaMinus;
|
||||
G4HEVector XiZero;
|
||||
G4HEVector XiMinus;
|
||||
G4HEVector AntiXiZero;
|
||||
G4HEVector AntiXiMinus;
|
||||
G4HEVector OmegaMinus;
|
||||
G4HEVector AntiOmegaMinus;
|
||||
G4HEVector Deuteron;
|
||||
G4HEVector Triton;
|
||||
G4HEVector Alpha;
|
||||
G4HEVector Gamma;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEKaonMinusInelastic_h
|
||||
#define G4HEKaonMinusInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEKaonMinusInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEKaonMinusInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEKaonMinusInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasKaonMinus(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEKaonPlusInelastic_h
|
||||
#define G4HEKaonPlusInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEKaonPlusInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEKaonPlusInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEKaonPlusInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasKaonPlus(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEKaonZeroInelastic_h
|
||||
#define G4HEKaonZeroInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEKaonZeroInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEKaonZeroInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEKaonZeroInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasKaonZero(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEKaonZeroLongInelastic_h
|
||||
#define G4HEKaonZeroLongInelastic_h 1
|
||||
|
||||
#include "G4HEKaonZeroInelastic.hh"
|
||||
#include "G4HEAntiKaonZeroInelastic.hh"
|
||||
|
||||
class G4HEKaonZeroLongInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEKaonZeroLongInelastic()
|
||||
{
|
||||
}
|
||||
|
||||
~G4HEKaonZeroLongInelastic(){ };
|
||||
|
||||
G4int verboseLevel;
|
||||
G4int MAXPART;
|
||||
G4int vecLength;
|
||||
|
||||
void SetMaxNumberOfSecondaries(G4int maxnumber)
|
||||
{ MAXPART = maxnumber;};
|
||||
void SetVerboseLevel(G4int verbose)
|
||||
{ verboseLevel = verbose;};
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength;};
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEKaonZeroShortInelastic_h
|
||||
#define G4HEKaonZeroShortInelastic_h 1
|
||||
|
||||
#include "G4HEKaonZeroInelastic.hh"
|
||||
#include "G4HEAntiKaonZeroInelastic.hh"
|
||||
|
||||
class G4HEKaonZeroShortInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEKaonZeroShortInelastic()
|
||||
{
|
||||
}
|
||||
|
||||
~G4HEKaonZeroShortInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
void SetMaxNumberOfSecondaries(G4int maxnumber)
|
||||
{ MAXPART = maxnumber;};
|
||||
void SetVerboseLevel(G4int verbose)
|
||||
{ verboseLevel = verbose;};
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength;};
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HELambdaInelastic_h
|
||||
#define G4HELambdaInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HELambdaInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HELambdaInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HELambdaInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasLambda(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HENeutronInelastic_h
|
||||
#define G4HENeutronInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HENeutronInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HENeutronInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HENeutronInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasNeutron(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEOmegaMinusInelastic_h
|
||||
#define G4HEOmegaMinusInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEOmegaMinusInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEOmegaMinusInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEOmegaMinusInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasOmegaMinus(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEPionMinusInelastic_h
|
||||
#define G4HEPionMinusInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEPionMinusInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEPionMinusInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEPionMinusInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasPionMinus(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEPionPlusInelastic_h
|
||||
#define G4HEPionPlusInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEPionPlusInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEPionPlusInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEPionPlusInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasPionPlus(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
// G4 Gheisha friend class G4HEPlot -- header file
|
||||
// last modified: H. Fesefeldt 18-November-1996
|
||||
|
||||
#include <stdio.h>
|
||||
#include "globals.hh"
|
||||
|
||||
class G4HEPlot
|
||||
{
|
||||
protected:
|
||||
G4double Xstart;
|
||||
G4double Xbin;
|
||||
G4double Weight;
|
||||
G4int Nbin;
|
||||
G4int Entries;
|
||||
G4int EntriesOverflow;
|
||||
G4int EntriesUnderflow;
|
||||
G4double WeightOverflow;
|
||||
G4double WeightUnderflow;
|
||||
G4double* Xvalue;
|
||||
G4double* Yvalue;
|
||||
|
||||
public:
|
||||
|
||||
G4HEPlot(){ };
|
||||
|
||||
~G4HEPlot(){ };
|
||||
|
||||
G4double getWeight()
|
||||
{ return Weight;};
|
||||
|
||||
G4double getWeightUnderflow()
|
||||
{ return WeightUnderflow; };
|
||||
|
||||
G4double getWeightOverflow()
|
||||
{ return WeightOverflow;};
|
||||
|
||||
G4int getNumberOfEntries()
|
||||
{ return Entries;};
|
||||
|
||||
G4int getNumberOfEntriesOverflow()
|
||||
{ return EntriesOverflow;};
|
||||
|
||||
G4int getNumberOfEntriesUnderflow()
|
||||
{ return EntriesUnderflow;};
|
||||
|
||||
G4int getNumberOfBins()
|
||||
{ return Nbin;};
|
||||
|
||||
G4double getBinsize()
|
||||
{ return Xbin;};
|
||||
|
||||
G4double getXstart()
|
||||
{ return Xstart;};
|
||||
|
||||
void Init(G4int nbin, G4double xstart, G4double Xbin);
|
||||
|
||||
void Add( G4double s1, G4double s2, const G4HEPlot & p1, const G4HEPlot & p2 );
|
||||
|
||||
void Multiply( G4double s1, G4double s2, const G4HEPlot & p1, const G4HEPlot & p2 );
|
||||
|
||||
void Divide( G4double s1, G4double s2, const G4HEPlot & p1, const G4HEPlot & p2 );
|
||||
|
||||
void Scale( G4double s, const G4HEPlot & p);
|
||||
|
||||
void XScale( G4double a, G4double b, const G4HEPlot & p);
|
||||
|
||||
void Log( G4double s, const G4HEPlot & p);
|
||||
|
||||
void Sqrt( G4double s, const G4HEPlot & p);
|
||||
|
||||
void Reset();
|
||||
|
||||
void Fill(G4double x, G4double w);
|
||||
|
||||
void Print(G4String name, G4int i);
|
||||
|
||||
void DumpToFile(G4int aPlot, G4String aName);
|
||||
|
||||
void GetFromFile(G4int aPlot, G4String aName);
|
||||
|
||||
};
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEProtonInelastic_h
|
||||
#define G4HEProtonInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEProtonInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEProtonInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEProtonInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasProton(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HESigmaMinusInelastic_h
|
||||
#define G4HESigmaMinusInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HESigmaMinusInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HESigmaMinusInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HESigmaMinusInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasSigmaMinus(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HESigmaPlusInelastic_h
|
||||
#define G4HESigmaPlusInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HESigmaPlusInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HESigmaPlusInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HESigmaPlusInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasSigmaPlus(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HESigmaZeroInelastic_h
|
||||
#define G4HESigmaZeroInelastic_h 1
|
||||
|
||||
#include "G4HELambdaInelastic.hh"
|
||||
|
||||
class G4HESigmaZeroInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HESigmaZeroInelastic() : G4HEInelastic()
|
||||
{
|
||||
}
|
||||
|
||||
~G4HESigmaZeroInelastic(){ };
|
||||
|
||||
G4int verboseLevel;
|
||||
G4int MAXPART;
|
||||
G4int vecLength;
|
||||
|
||||
void SetMaxNumberOfSecondaries(G4int maxnumber)
|
||||
{ MAXPART = maxnumber; };
|
||||
void SetVerboseLevel(G4int verbose)
|
||||
{ verboseLevel = verbose;};
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,230 @@
|
||||
// G4 Gheisha friend class G4KinematicParticle -- header file
|
||||
// J.L. Chuma, TRIUMF, 22-Feb-1996
|
||||
// last modified: H. Fesefeldt 18-November-1996
|
||||
|
||||
#ifndef G4HEVector_hh
|
||||
#define G4HEVector_hh 1
|
||||
|
||||
#include "G4ParticleMomentum.hh"
|
||||
#include "Randomize.hh"
|
||||
#include "G4DynamicParticle.hh"
|
||||
|
||||
class G4HEVector
|
||||
{
|
||||
protected:
|
||||
G4double px;
|
||||
G4double py;
|
||||
G4double pz;
|
||||
G4double energy;
|
||||
G4double kineticEnergy;
|
||||
G4double mass;
|
||||
G4double charge;
|
||||
G4double timeOfFlight;
|
||||
G4int side;
|
||||
G4bool flag;
|
||||
G4int code;
|
||||
G4String particleName;
|
||||
G4String particleType;
|
||||
G4int baryon;
|
||||
enum {NumberOfQuarkFlavor = 8};
|
||||
G4int theQuarkContent[NumberOfQuarkFlavor];
|
||||
G4int theAntiQuarkContent[NumberOfQuarkFlavor];
|
||||
|
||||
public:
|
||||
|
||||
G4HEVector(const G4DynamicParticle * aParticle)
|
||||
{
|
||||
G4ThreeVector aMom = 1./GeV*aParticle->GetMomentum();
|
||||
px = aMom.x();
|
||||
py = aMom.y();
|
||||
pz = aMom.z();
|
||||
energy = aParticle->GetTotalEnergy()/GeV;
|
||||
kineticEnergy = aParticle->GetKineticEnergy()/GeV;
|
||||
mass = aParticle->GetMass()/GeV;
|
||||
charge = aParticle->GetDefinition()->GetPDGCharge()/eplus;
|
||||
timeOfFlight = 0.0;
|
||||
side = 0;
|
||||
flag = false;
|
||||
code = aParticle->GetDefinition()->GetPDGEncoding();
|
||||
baryon = aParticle->GetDefinition()->GetBaryonNumber();
|
||||
particleName = getParticleName(code, baryon);
|
||||
particleType = aParticle->GetDefinition()->GetParticleType();
|
||||
}
|
||||
|
||||
G4HEVector()
|
||||
{
|
||||
px = 0.0;
|
||||
py = 0.0;
|
||||
pz = 0.0;
|
||||
energy = 0.0;
|
||||
kineticEnergy = 0.0;
|
||||
mass = 0.0;
|
||||
charge = 0.0;
|
||||
timeOfFlight = 0.0;
|
||||
side = 0;
|
||||
flag = false;
|
||||
code = 0;
|
||||
particleName = "";
|
||||
particleType = "";
|
||||
baryon = 0;
|
||||
}
|
||||
|
||||
|
||||
G4HEVector( const G4HEVector & p )
|
||||
{
|
||||
px = p.px;
|
||||
py = p.py;
|
||||
pz = p.pz;
|
||||
energy = p.energy;
|
||||
kineticEnergy = p.kineticEnergy;
|
||||
mass = p.mass;
|
||||
charge = p.charge;
|
||||
timeOfFlight = p.timeOfFlight;
|
||||
side = p.side;
|
||||
flag = p.flag;
|
||||
code = p.code;
|
||||
particleName = p.particleName;
|
||||
particleType = p.particleType;
|
||||
baryon = 0;
|
||||
}
|
||||
|
||||
|
||||
G4HEVector & operator = ( const G4HEVector & p )
|
||||
{
|
||||
px = p.px;
|
||||
py = p.py;
|
||||
pz = p.pz;
|
||||
energy = p.energy;
|
||||
kineticEnergy = p.kineticEnergy;
|
||||
mass = p.mass;
|
||||
charge = p.charge;
|
||||
timeOfFlight = p.timeOfFlight;
|
||||
side = p.side;
|
||||
flag = p.flag;
|
||||
code = p.code;
|
||||
particleName = p.particleName;
|
||||
particleType = p.particleType;
|
||||
baryon = p.baryon;
|
||||
return *this;
|
||||
}
|
||||
~G4HEVector(){ };
|
||||
|
||||
G4String getParticleName(G4int code, G4int baryon);
|
||||
|
||||
void setMomentum( G4ParticleMomentum mom );
|
||||
|
||||
void setMomentumAndUpdate( G4ParticleMomentum mom );
|
||||
|
||||
const G4ParticleMomentum getMomentum() const ;
|
||||
|
||||
G4double getTotalMomentum();
|
||||
|
||||
void setMomentum( G4double x, G4double y, G4double z);
|
||||
|
||||
void setMomentumAndUpdate( G4double x, G4double y, G4double z );
|
||||
|
||||
void setMomentum( G4double x, G4double y );
|
||||
|
||||
void setMomentumAndUpdate( G4double x, G4double y );
|
||||
|
||||
void setMomentum( G4double z );
|
||||
|
||||
void setMomentumAndUpdate( G4double z );
|
||||
|
||||
void setEnergy( G4double e );
|
||||
|
||||
void setEnergyAndUpdate( G4double e );
|
||||
|
||||
void setKineticEnergy( G4double ekin );
|
||||
|
||||
void setKineticEnergyAndUpdate(G4double ekin);
|
||||
|
||||
G4double getEnergy();
|
||||
|
||||
G4double getKineticEnergy();
|
||||
|
||||
void setMass( G4double m );
|
||||
|
||||
void setMassAndUpdate( G4double m );
|
||||
|
||||
G4double getMass();
|
||||
|
||||
void setCharge( G4double c );
|
||||
|
||||
G4double getCharge();
|
||||
|
||||
void setTOF( G4double t );
|
||||
|
||||
G4double getTOF();
|
||||
|
||||
void setSide( G4int s );
|
||||
|
||||
G4int getSide();
|
||||
|
||||
void setFlag( G4bool f );
|
||||
|
||||
G4bool getFlag();
|
||||
|
||||
void setCode( G4int c );
|
||||
|
||||
G4int getCode();
|
||||
|
||||
G4String getName();
|
||||
|
||||
G4int getBaryonNumber();
|
||||
|
||||
G4int getQuarkContent(G4int flavor);
|
||||
|
||||
G4int getAntiQuarkContent(G4int flavor);
|
||||
|
||||
void setZero();
|
||||
|
||||
G4String getType();
|
||||
void Add( const G4HEVector & p1, const G4HEVector & p2 );
|
||||
|
||||
void Sub( const G4HEVector & p1, const G4HEVector & p2 );
|
||||
|
||||
void Lor( const G4HEVector & p1, const G4HEVector & p2 );
|
||||
|
||||
G4double CosAng( const G4HEVector & p );
|
||||
|
||||
G4double Ang(const G4HEVector & p );
|
||||
|
||||
G4double Dot4( const G4HEVector & p1, const G4HEVector & p2);
|
||||
|
||||
G4double Impu( const G4HEVector & p1, const G4HEVector & p2);
|
||||
|
||||
void Add3( const G4HEVector & p1, const G4HEVector & p2);
|
||||
|
||||
void Sub3( const G4HEVector & p1, const G4HEVector & p2);
|
||||
|
||||
void Cross( const G4HEVector & p1, const G4HEVector & p2);
|
||||
|
||||
G4double Dot( const G4HEVector & p1, const G4HEVector & p2);
|
||||
|
||||
void Smul( const G4HEVector & p, G4double h);
|
||||
|
||||
void SmulAndUpdate( const G4HEVector & p, G4double h);
|
||||
|
||||
void Norz( const G4HEVector & p );
|
||||
|
||||
G4double Length();
|
||||
|
||||
void Exch( G4HEVector & p1);
|
||||
|
||||
void Defs1( const G4HEVector & p1, const G4HEVector & p2);
|
||||
|
||||
void Defs( const G4HEVector & p1, const G4HEVector & p2,
|
||||
G4HEVector & my, G4HEVector & mz );
|
||||
|
||||
void Trac( const G4HEVector & p1, const G4HEVector & mx,
|
||||
const G4HEVector & my, const G4HEVector & mz);
|
||||
|
||||
void setDefinition(G4String name);
|
||||
|
||||
G4int FillQuarkContent();
|
||||
|
||||
void Print( G4int L);
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEXiMinusInelastic_h
|
||||
#define G4HEXiMinusInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEXiMinusInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEXiMinusInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEXiMinusInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasXiMinus(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
// G4 Gheisha High Energy model class -- header file
|
||||
// H. Fesefeldt, RWTH Aachen 23-October-1996
|
||||
// Last modified: 10-December-1996
|
||||
|
||||
// A prototype of the Gheisha High Energy collision model.
|
||||
|
||||
#ifndef G4HEXiZeroInelastic_h
|
||||
#define G4HEXiZeroInelastic_h 1
|
||||
|
||||
#include "G4HEInelastic.hh"
|
||||
|
||||
class G4HEXiZeroInelastic : public G4HEInelastic
|
||||
{
|
||||
public:
|
||||
G4HEXiZeroInelastic() : G4HEInelastic()
|
||||
{
|
||||
G4int vecLen = 0;
|
||||
}
|
||||
|
||||
~G4HEXiZeroInelastic(){ };
|
||||
|
||||
G4int vecLength;
|
||||
|
||||
G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus );
|
||||
|
||||
G4int GetNumberOfSecondaries()
|
||||
{ return vecLength; }
|
||||
|
||||
private:
|
||||
|
||||
void FirstIntInCasXiZero(G4bool &inElastic, const G4double availableEnergy,
|
||||
G4HEVector pv[],
|
||||
G4int &vecLen,
|
||||
G4HEVector incidentParticle,
|
||||
G4HEVector targetParticle,
|
||||
const G4double atomicWeight);
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user