00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef G4LEKaonZeroSInelastic_h
00033 #define G4LEKaonZeroSInelastic_h 1
00034
00035 #include <CLHEP/Units/SystemOfUnits.h>
00036
00037 #include "G4LEKaonZeroInelastic.hh"
00038 #include "G4LEAntiKaonZeroInelastic.hh"
00039 #include "Randomize.hh"
00040
00041 class G4LEKaonZeroSInelastic : public G4InelasticInteraction
00042 {
00043 public:
00044 G4LEKaonZeroSInelastic() : G4InelasticInteraction("G4LEKaonZeroSInelastic")
00045 {
00046 SetMinEnergy(0.0);
00047 SetMaxEnergy(25.*CLHEP::GeV);
00048 G4cout << "WARNING: model G4LEKaonZeroSInelastic is being deprecated and will\n"
00049 << "disappear in Geant4 version 10.0" << G4endl;
00050 }
00051
00052 virtual ~G4LEKaonZeroSInelastic(){ }
00053
00054 G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& targetNucleus)
00055 {
00056 if(G4UniformRand() < 0.50)
00057 {
00058 return theKaonZeroInelastic.ApplyYourself(aTrack, targetNucleus);
00059 }
00060 else
00061 {
00062 return theAntiKaonZeroInelastic.ApplyYourself(aTrack, targetNucleus);
00063 }
00064 }
00065
00066 virtual void ModelDescription(std::ostream& outFile) const
00067 {
00068 outFile << "G4LEKaonZeroSInelastic is one of the Low Energy\n"
00069 << "Parameterized (LEP) models used to implement K0S\n"
00070 << "scattering from nuclei. Upon interaction with a nucleus\n"
00071 << "the K0S is treated as a K0 50% of the time and an antiK0\n"
00072 << "50% of the time. Then the K0 or antiK0 interacts with the\n"
00073 << "nucleus using the re-engineered GHEISHA code of\n"
00074 << "H. Fesefeldt, which divides the initial collision products\n"
00075 << "into backward- and forward-going clusters which are then\n"
00076 << "decayed into final state hadrons. The model does not\n"
00077 << "conserve energy or charge on an event-by-event basis. It\n"
00078 << "may be applied to K0S with initial energies between 0 and\n"
00079 << "25 GeV.\n";
00080 }
00081
00082 private:
00083 G4LEKaonZeroInelastic theKaonZeroInelastic;
00084 G4LEAntiKaonZeroInelastic theAntiKaonZeroInelastic;
00085
00086 };
00087 #endif
00088
00089