00001 // 00002 // ******************************************************************** 00003 // * License and Disclaimer * 00004 // * * 00005 // * The Geant4 software is copyright of the Copyright Holders of * 00006 // * the Geant4 Collaboration. It is provided under the terms and * 00007 // * conditions of the Geant4 Software License, included in the file * 00008 // * LICENSE and available at http://cern.ch/geant4/license . These * 00009 // * include a list of copyright holders. * 00010 // * * 00011 // * Neither the authors of this software system, nor their employing * 00012 // * institutes,nor the agencies providing financial support for this * 00013 // * work make any representation or warranty, express or implied, * 00014 // * regarding this software system or assume any liability for its * 00015 // * use. Please see the license in the file LICENSE and URL above * 00016 // * for the full disclaimer and the limitation of liability. * 00017 // * * 00018 // * This code implementation is the result of the scientific and * 00019 // * technical work of the GEANT4 collaboration. * 00020 // * By using, copying, modifying or distributing the software (or * 00021 // * any work based on the software) you agree to acknowledge its * 00022 // * use in resulting scientific publications, and indicate your * 00023 // * acceptance of all terms of the Geant4 Software license. * 00024 // ******************************************************************** 00025 // 00026 // 00027 // $Id$ 00028 // 00029 // 00030 // G4 Model: Charge and strangness exchange based on G4LightMedia model 00031 // 28 May 2006 V.Ivanchenko 00032 // 00033 // Modified: 00034 // 25-Jul-06 V.Ivanchenko add 19 MeV low energy, below which S-wave is sampled 00035 // 00036 // 00037 00038 #ifndef G4ChargeExchange_h 00039 #define G4ChargeExchange_h 1 00040 00041 // Class Description 00042 // Final state production model for hadron nuclear coherent charge exchange; 00043 // Class Description - End 00044 00045 #include "globals.hh" 00046 #include "G4HadronicInteraction.hh" 00047 #include "G4HadProjectile.hh" 00048 #include "G4Nucleus.hh" 00049 00050 class G4ParticleDefinition; 00051 00052 class G4ChargeExchange : public G4HadronicInteraction 00053 { 00054 public: 00055 00056 G4ChargeExchange(); 00057 00058 virtual ~G4ChargeExchange(); 00059 00060 virtual G4HadFinalState * ApplyYourself( 00061 const G4HadProjectile & aTrack, 00062 G4Nucleus & targetNucleus); 00063 00064 void SetLowestEnergyLimit(G4double value); 00065 00066 void SetRecoilKinEnergyLimit(G4double value); 00067 00068 G4double SampleT(G4double p, G4double A); 00069 00070 private: 00071 00072 G4ParticleDefinition* theProton; 00073 G4ParticleDefinition* theNeutron; 00074 G4ParticleDefinition* theAProton; 00075 G4ParticleDefinition* theANeutron; 00076 G4ParticleDefinition* thePiPlus; 00077 G4ParticleDefinition* thePiMinus; 00078 G4ParticleDefinition* thePiZero; 00079 G4ParticleDefinition* theKPlus; 00080 G4ParticleDefinition* theKMinus; 00081 G4ParticleDefinition* theK0S; 00082 G4ParticleDefinition* theK0L; 00083 G4ParticleDefinition* theL; 00084 G4ParticleDefinition* theAntiL; 00085 G4ParticleDefinition* theSPlus; 00086 G4ParticleDefinition* theASPlus; 00087 G4ParticleDefinition* theSMinus; 00088 G4ParticleDefinition* theASMinus; 00089 G4ParticleDefinition* theS0; 00090 G4ParticleDefinition* theAS0; 00091 G4ParticleDefinition* theXiMinus; 00092 G4ParticleDefinition* theXi0; 00093 G4ParticleDefinition* theAXiMinus; 00094 G4ParticleDefinition* theAXi0; 00095 G4ParticleDefinition* theOmega; 00096 G4ParticleDefinition* theAOmega; 00097 G4ParticleDefinition* theD; 00098 G4ParticleDefinition* theT; 00099 G4ParticleDefinition* theA; 00100 G4ParticleDefinition* theHe3; 00101 00102 G4double lowEnergyRecoilLimit; 00103 G4double lowestEnergyLimit; 00104 00105 }; 00106 00107 inline void G4ChargeExchange::SetRecoilKinEnergyLimit(G4double value) 00108 { 00109 lowEnergyRecoilLimit = value; 00110 } 00111 00112 inline void G4ChargeExchange::SetLowestEnergyLimit(G4double value) 00113 { 00114 lowestEnergyLimit = value; 00115 } 00116 00117 #endif