#include <G4HEAntiSigmaZeroInelastic.hh>
Inheritance diagram for G4HEAntiSigmaZeroInelastic:
Public Member Functions | |
G4HEAntiSigmaZeroInelastic () | |
~G4HEAntiSigmaZeroInelastic () | |
virtual void | ModelDescription (std::ostream &) const |
void | SetMaxNumberOfSecondaries (G4int maxnumber) |
void | SetVerboseLevel (G4int verbose) |
G4HadFinalState * | ApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus) |
G4int | GetNumberOfSecondaries () |
Data Fields | |
G4int | verboseLevel |
G4int | MAXPART |
G4int | vecLength |
Definition at line 53 of file G4HEAntiSigmaZeroInelastic.hh.
G4HEAntiSigmaZeroInelastic::G4HEAntiSigmaZeroInelastic | ( | ) | [inline] |
Definition at line 56 of file G4HEAntiSigmaZeroInelastic.hh.
References G4cout, G4endl, MAXPART, G4HadronicInteraction::theMaxEnergy, G4HadronicInteraction::theMinEnergy, and verboseLevel.
00056 : G4HEInelastic("G4HEAntiSigmaZeroInelastic") 00057 { 00058 theMinEnergy = 20*CLHEP::GeV; 00059 theMaxEnergy = 10*CLHEP::TeV; 00060 MAXPART = 2048; 00061 verboseLevel = 0; 00062 G4cout << "WARNING: model G4HEAntiSigmaZeroInelastic is being deprecated and will\n" 00063 << "disappear in Geant4 version 10.0" << G4endl; 00064 }
G4HEAntiSigmaZeroInelastic::~G4HEAntiSigmaZeroInelastic | ( | ) | [inline] |
G4HadFinalState * G4HEAntiSigmaZeroInelastic::ApplyYourself | ( | const G4HadProjectile & | aTrack, | |
G4Nucleus & | targetNucleus | |||
) | [virtual] |
Implements G4HadronicInteraction.
Definition at line 57 of file G4HEAntiSigmaZeroInelastic.cc.
References G4HadFinalState::AddSecondary(), G4AntiLambda::AntiLambda(), G4HEAntiLambdaInelastic::ApplyYourself(), G4UniformRand, G4Gamma::Gamma(), G4HEInelastic::Gamma, G4HEVector::getMomentum(), G4HEAntiLambdaInelastic::GetNumberOfSecondaries(), G4HEVector::getTotalMomentum(), MAXPART, G4DynamicParticle::SetDefinition(), G4HEInelastic::SetMaxNumberOfSecondaries(), G4HEVector::setMomentum(), G4DynamicParticle::SetMomentum(), G4HEInelastic::SetVerboseLevel(), G4HEVector::SmulAndUpdate(), vecLength, and verboseLevel.
00059 { 00060 G4HEVector* pv = new G4HEVector[MAXPART]; 00061 const G4HadProjectile *aParticle = &aTrack; 00062 G4HEVector incidentParticle(aParticle); 00063 G4HEAntiLambdaInelastic theAntiLambdaInelastic; 00064 theAntiLambdaInelastic.SetMaxNumberOfSecondaries(MAXPART); 00065 theAntiLambdaInelastic.SetVerboseLevel(verboseLevel); 00066 00067 G4double incidentTotalMomentum = incidentParticle.getTotalMomentum(); 00068 G4double pgam = G4UniformRand()*incidentTotalMomentum*0.75; 00069 G4HEVector incidentAntiLambda; 00070 incidentAntiLambda.SmulAndUpdate(incidentParticle, 00071 (incidentTotalMomentum - pgam)/incidentTotalMomentum); 00072 G4DynamicParticle* aLambda = new G4DynamicParticle(); 00073 aLambda->SetDefinition(G4AntiLambda::AntiLambda()); 00074 aLambda->SetMomentum(incidentAntiLambda.getMomentum()); 00075 G4HadProjectile aLambdaTrack(*aLambda); 00076 G4HadFinalState* result = theAntiLambdaInelastic.ApplyYourself(aLambdaTrack, targetNucleus); 00077 vecLength = theAntiLambdaInelastic.GetNumberOfSecondaries(); 00078 pv[vecLength] = Gamma; 00079 pv[vecLength].setMomentum(incidentParticle.getMomentum()); 00080 pv[vecLength].SmulAndUpdate( pv[vecLength],pgam/incidentTotalMomentum); 00081 G4DynamicParticle * aPhoton = new G4DynamicParticle(); 00082 aPhoton->SetDefinition(G4Gamma::Gamma()); 00083 aPhoton->SetMomentum(pv[vecLength].getMomentum()); 00084 result->AddSecondary(aPhoton); 00085 delete [] pv; 00086 return result; 00087 }
G4int G4HEAntiSigmaZeroInelastic::GetNumberOfSecondaries | ( | ) | [inline] |
Definition at line 81 of file G4HEAntiSigmaZeroInelastic.hh.
References vecLength.
00082 { return vecLength; }
void G4HEAntiSigmaZeroInelastic::ModelDescription | ( | std::ostream & | ) | const [virtual] |
Reimplemented from G4HadronicInteraction.
Definition at line 42 of file G4HEAntiSigmaZeroInelastic.cc.
00043 { 00044 outFile << "G4HEAntiSigmaZeroInelastic is one of the High Energy\n" 00045 << "Parameterized (HEP) models used to implement inelastic\n" 00046 << "anti-Sigma0 scattering from nuclei. It is a re-engineered\n" 00047 << "version of the GHEISHA code of H. Fesefeldt. It divides the\n" 00048 << "initial collision products into backward- and forward-going\n" 00049 << "clusters which are then decayed into final state hadrons.\n" 00050 << "The model does not conserve energy on an event-by-event\n" 00051 << "basis. It may be applied to anti-Sigma0 with initial\n" 00052 << "energies above 20 GeV.\n"; 00053 }
void G4HEAntiSigmaZeroInelastic::SetMaxNumberOfSecondaries | ( | G4int | maxnumber | ) | [inline] |
Reimplemented from G4HEInelastic.
Definition at line 74 of file G4HEAntiSigmaZeroInelastic.hh.
References MAXPART.
00075 { MAXPART = maxnumber; };
void G4HEAntiSigmaZeroInelastic::SetVerboseLevel | ( | G4int | verbose | ) | [inline] |
Reimplemented from G4HEInelastic.
Definition at line 76 of file G4HEAntiSigmaZeroInelastic.hh.
References verboseLevel.
00077 { verboseLevel = verbose;};
Reimplemented from G4HEInelastic.
Definition at line 71 of file G4HEAntiSigmaZeroInelastic.hh.
Referenced by ApplyYourself(), G4HEAntiSigmaZeroInelastic(), and SetMaxNumberOfSecondaries().
Definition at line 72 of file G4HEAntiSigmaZeroInelastic.hh.
Referenced by ApplyYourself(), and GetNumberOfSecondaries().
Reimplemented from G4HEInelastic.
Definition at line 70 of file G4HEAntiSigmaZeroInelastic.hh.
Referenced by ApplyYourself(), G4HEAntiSigmaZeroInelastic(), and SetVerboseLevel().