G4HEAntiSigmaZeroInelastic Class Reference

#include <G4HEAntiSigmaZeroInelastic.hh>

Inheritance diagram for G4HEAntiSigmaZeroInelastic:

G4HEInelastic G4HadronicInteraction

Public Member Functions

 G4HEAntiSigmaZeroInelastic ()
 ~G4HEAntiSigmaZeroInelastic ()
virtual void ModelDescription (std::ostream &) const
void SetMaxNumberOfSecondaries (G4int maxnumber)
void SetVerboseLevel (G4int verbose)
G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
G4int GetNumberOfSecondaries ()

Data Fields

G4int verboseLevel
G4int MAXPART
G4int vecLength

Detailed Description

Definition at line 53 of file G4HEAntiSigmaZeroInelastic.hh.


Constructor & Destructor Documentation

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]

Definition at line 66 of file G4HEAntiSigmaZeroInelastic.hh.

00066 {};


Member Function Documentation

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;};


Field Documentation

G4int G4HEAntiSigmaZeroInelastic::MAXPART

Reimplemented from G4HEInelastic.

Definition at line 71 of file G4HEAntiSigmaZeroInelastic.hh.

Referenced by ApplyYourself(), G4HEAntiSigmaZeroInelastic(), and SetMaxNumberOfSecondaries().

G4int G4HEAntiSigmaZeroInelastic::vecLength

Definition at line 72 of file G4HEAntiSigmaZeroInelastic.hh.

Referenced by ApplyYourself(), and GetNumberOfSecondaries().

G4int G4HEAntiSigmaZeroInelastic::verboseLevel

Reimplemented from G4HEInelastic.

Definition at line 70 of file G4HEAntiSigmaZeroInelastic.hh.

Referenced by ApplyYourself(), G4HEAntiSigmaZeroInelastic(), and SetVerboseLevel().


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:10 2013 for Geant4 by  doxygen 1.4.7