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

#include <G4HESigmaZeroInelastic.hh>

+ Inheritance diagram for G4HESigmaZeroInelastic:

Public Member Functions

 G4HESigmaZeroInelastic ()
 
 ~G4HESigmaZeroInelastic ()
 
virtual void ModelDescription (std::ostream &) const
 
void SetMaxNumberOfSecondaries (G4int maxnumber)
 
void SetVerboseLevel (G4int verbose)
 
G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
 
G4int GetNumberOfSecondaries ()
 
- Public Member Functions inherited from G4HEInelastic
 G4HEInelastic (const G4String &modelName="HEInelastic")
 
 ~G4HEInelastic ()
 
void SetMaxNumberOfSecondaries (const G4int maxnumber)
 
void SetVerboseLevel (const G4int level)
 
void ForceEnergyConservation (G4bool energyConservation)
 
G4bool EnergyConservation (void)
 
virtual const std::pair< G4double, G4doubleGetFatalEnergyCheckLevels () const
 
G4double Amin (G4double a, G4double b)
 
G4double Amax (G4double a, G4double b)
 
G4int Imin (G4int a, G4int b)
 
G4int Imax (G4int a, G4int b)
 
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, const G4HEVector &incidentParticle, const G4HEVector &targetParticle, G4double atomicWeight, G4double atomicNumber)
 
void HighEnergyClusterProduction (G4bool &successful, G4HEVector pv[], G4int &vecLen, G4double &excitationEnergyGNP, G4double &excitationEnergyDTA, const G4HEVector &incidentParticle, const G4HEVector &targetParticle, G4double atomicWeight, G4double atomicNumber)
 
void TuningOfHighEnergyCascading (G4HEVector pv[], G4int &vecLen, const G4HEVector &incidentParticle, const G4HEVector &targetParticle, G4double atomicWeight, G4double atomicNumber)
 
void MediumEnergyCascading (G4bool &successful, G4HEVector pv[], G4int &vecLen, G4double &excitationEnergyGNP, G4double &excitationEnergyDTA, const G4HEVector &incidentParticle, const G4HEVector &targetParticle, G4double atomicWeight, G4double atomicNumber)
 
void MediumEnergyClusterProduction (G4bool &successful, G4HEVector pv[], G4int &vecLen, G4double &excitationEnergyGNP, G4double &excitationEnergyDTA, const G4HEVector &incidentParticle, const G4HEVector &targetParticle, G4double atomicWeight, G4double atomicNumber)
 
void QuasiElasticScattering (G4bool &successful, G4HEVector pv[], G4int &vecLen, G4double &excitationEnergyGNP, G4double &excitationEnergyDTA, const G4HEVector &incidentParticle, const G4HEVector &targetParticle, G4double atomicWeight, G4double atomicNumber)
 
void ElasticScattering (G4bool &successful, G4HEVector pv[], G4int &vecLen, const 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, const G4HEVector &incidentParticle, const 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)
 
- Public Member Functions inherited from G4HadronicInteraction
 G4HadronicInteraction (const G4String &modelName="HadronicModel")
 
virtual ~G4HadronicInteraction ()
 
virtual G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)=0
 
virtual G4double SampleInvariantT (const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
virtual G4bool IsApplicable (const G4HadProjectile &, G4Nucleus &)
 
G4double GetMinEnergy () const
 
G4double GetMinEnergy (const G4Material *aMaterial, const G4Element *anElement) const
 
void SetMinEnergy (G4double anEnergy)
 
void SetMinEnergy (G4double anEnergy, const G4Element *anElement)
 
void SetMinEnergy (G4double anEnergy, const G4Material *aMaterial)
 
G4double GetMaxEnergy () const
 
G4double GetMaxEnergy (const G4Material *aMaterial, const G4Element *anElement) const
 
void SetMaxEnergy (const G4double anEnergy)
 
void SetMaxEnergy (G4double anEnergy, const G4Element *anElement)
 
void SetMaxEnergy (G4double anEnergy, const G4Material *aMaterial)
 
const G4HadronicInteractionGetMyPointer () const
 
G4int GetVerboseLevel () const
 
void SetVerboseLevel (G4int value)
 
const G4StringGetModelName () const
 
void DeActivateFor (const G4Material *aMaterial)
 
void ActivateFor (const G4Material *aMaterial)
 
void DeActivateFor (const G4Element *anElement)
 
void ActivateFor (const G4Element *anElement)
 
G4bool IsBlocked (const G4Material *aMaterial) const
 
G4bool IsBlocked (const G4Element *anElement) const
 
void SetRecoilEnergyThreshold (G4double val)
 
G4double GetRecoilEnergyThreshold () const
 
G4bool operator== (const G4HadronicInteraction &right) const
 
G4bool operator!= (const G4HadronicInteraction &right) const
 
virtual const std::pair< G4double, G4doubleGetFatalEnergyCheckLevels () const
 
virtual std::pair< G4double, G4doubleGetEnergyMomentumCheckLevels () const
 
void SetEnergyMomentumCheckLevels (G4double relativeLevel, G4double absoluteLevel)
 
virtual void ModelDescription (std::ostream &outFile) const
 

Public Attributes

G4int verboseLevel
 
G4int MAXPART
 
G4int vecLength
 
- Public Attributes inherited from G4HEInelastic
G4int verboseLevel
 
G4int MAXPART
 
G4bool conserveEnergy
 
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
 

Additional Inherited Members

- Protected Member Functions inherited from G4HadronicInteraction
void SetModelName (const G4String &nam)
 
G4bool IsBlocked () const
 
void Block ()
 
- Protected Attributes inherited from G4HadronicInteraction
G4HadFinalState theParticleChange
 
G4int verboseLevel
 
G4double theMinEnergy
 
G4double theMaxEnergy
 
G4bool isBlocked
 

Detailed Description

Definition at line 52 of file G4HESigmaZeroInelastic.hh.

Constructor & Destructor Documentation

◆ G4HESigmaZeroInelastic()

G4HESigmaZeroInelastic::G4HESigmaZeroInelastic ( )
inline

Definition at line 55 of file G4HESigmaZeroInelastic.hh.

55 : G4HEInelastic("G4HESigmaZeroInelastic")
56 {
57 theMinEnergy = 20*CLHEP::GeV;
58 theMaxEnergy = 10*CLHEP::TeV;
59 MAXPART = 2048;
60 verboseLevel = 0;
61 G4cout << "WARNING: model G4HESigmaZeroInelastic is being deprecated and will\n"
62 << "disappear in Geant4 version 10.0" << G4endl;
63 }
#define G4endl
Definition: G4ios.hh:52
G4DLLIMPORT std::ostream G4cout

◆ ~G4HESigmaZeroInelastic()

G4HESigmaZeroInelastic::~G4HESigmaZeroInelastic ( )
inline

Definition at line 65 of file G4HESigmaZeroInelastic.hh.

65{};

Member Function Documentation

◆ ApplyYourself()

G4HadFinalState * G4HESigmaZeroInelastic::ApplyYourself ( const G4HadProjectile aTrack,
G4Nucleus targetNucleus 
)
virtual

Implements G4HadronicInteraction.

Definition at line 56 of file G4HESigmaZeroInelastic.cc.

58{
59 G4HEVector* pv = new G4HEVector[MAXPART];
60 const G4HadProjectile* aParticle = &aTrack;
61 G4HEVector incidentParticle(aParticle);
62
63 G4HELambdaInelastic theLambdaInelastic;
64 theLambdaInelastic.SetMaxNumberOfSecondaries(MAXPART);
65 theLambdaInelastic.SetVerboseLevel(verboseLevel);
66
67 G4double incidentTotalMomentum = incidentParticle.getTotalMomentum();
68 G4double pgam = G4UniformRand()*incidentTotalMomentum*0.75;
69 G4HEVector incidentLambda;
70 incidentLambda.SmulAndUpdate(incidentParticle,
71 (incidentTotalMomentum - pgam)/incidentTotalMomentum);
72 G4DynamicParticle* aLambda = new G4DynamicParticle();
74 aLambda->SetMomentum(incidentLambda.getMomentum());
75 G4HadProjectile aLambdaTrack(*aLambda);
76 G4HadFinalState* result =
77 theLambdaInelastic.ApplyYourself(aLambdaTrack, targetNucleus);
78 vecLength = theLambdaInelastic.GetNumberOfSecondaries();
79
80 pv[vecLength] = Gamma;
81 pv[vecLength].setMomentum(incidentParticle.getMomentum());
82 pv[vecLength].SmulAndUpdate( pv[vecLength],pgam/incidentTotalMomentum);
83 G4DynamicParticle* aPhoton = new G4DynamicParticle();
84 aPhoton->SetDefinition(G4Gamma::Gamma());
85 aPhoton->SetMomentum(pv[vecLength].getMomentum());
86 result->AddSecondary(aPhoton);
87 delete [] pv;
88 return result;
89}
double G4double
Definition: G4Types.hh:64
#define G4UniformRand()
Definition: Randomize.hh:53
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
void SetMomentum(const G4ThreeVector &momentum)
static G4Gamma * Gamma()
Definition: G4Gamma.cc:86
void SetMaxNumberOfSecondaries(const G4int maxnumber)
G4HEVector Gamma
void SetVerboseLevel(const G4int level)
G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
const G4ParticleMomentum getMomentum() const
Definition: G4HEVector.cc:157
void SmulAndUpdate(const G4HEVector &p, G4double h)
Definition: G4HEVector.cc:668
void setMomentum(const G4ParticleMomentum mom)
Definition: G4HEVector.cc:117
void AddSecondary(G4DynamicParticle *aP)
static G4Lambda * Lambda()
Definition: G4Lambda.cc:108

◆ GetNumberOfSecondaries()

G4int G4HESigmaZeroInelastic::GetNumberOfSecondaries ( )
inline

Definition at line 80 of file G4HESigmaZeroInelastic.hh.

81 { return vecLength; }

◆ ModelDescription()

void G4HESigmaZeroInelastic::ModelDescription ( std::ostream &  outFile) const
virtual

Reimplemented from G4HadronicInteraction.

Definition at line 41 of file G4HESigmaZeroInelastic.cc.

42{
43 outFile << "G4HESigmaZeroInelastic is one of the High Energy\n"
44 << "Parameterized (HEP) models used to implement inelastic\n"
45 << "Sigma0 scattering from nuclei. It is a re-engineered\n"
46 << "version of the GHEISHA code of H. Fesefeldt. It divides the\n"
47 << "initial collision products into backward- and forward-going\n"
48 << "clusters which are then decayed into final state hadrons.\n"
49 << "The model does not conserve energy on an event-by-event\n"
50 << "basis. It may be applied to Sigma0 with initial energies\n"
51 << "above 20 GeV.\n";
52}

◆ SetMaxNumberOfSecondaries()

void G4HESigmaZeroInelastic::SetMaxNumberOfSecondaries ( G4int  maxnumber)
inline

Definition at line 73 of file G4HESigmaZeroInelastic.hh.

74 { MAXPART = maxnumber; };

◆ SetVerboseLevel()

void G4HESigmaZeroInelastic::SetVerboseLevel ( G4int  verbose)
inline

Definition at line 75 of file G4HESigmaZeroInelastic.hh.

76 { verboseLevel = verbose;};

Member Data Documentation

◆ MAXPART

G4int G4HESigmaZeroInelastic::MAXPART

◆ vecLength

G4int G4HESigmaZeroInelastic::vecLength

Definition at line 71 of file G4HESigmaZeroInelastic.hh.

Referenced by ApplyYourself(), and GetNumberOfSecondaries().

◆ verboseLevel

G4int G4HESigmaZeroInelastic::verboseLevel

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