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 // ------------------------------------------------------------------- 00028 // GEANT4 Class file 00029 // 00030 // 00031 // File name: G4XnpTotalLowE 00032 // 00033 // Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) 00034 // 00035 // Creation date: 15 April 1999 00036 // 00037 // Modifications: 00038 // 00039 // ------------------------------------------------------------------- 00040 00041 #ifndef G4XNPTOTALLOWE_HH 00042 #define G4XNPTOTALLOWE_HH 00043 00044 #include "globals.hh" 00045 #include "G4VCrossSectionSource.hh" 00046 #include "G4CrossSectionVector.hh" 00047 #include "G4PhysicsVector.hh" 00048 00049 class G4KineticTrack; 00050 00051 class G4XnpTotalLowE : public G4VCrossSectionSource 00052 { 00053 00054 public: 00055 00056 G4XnpTotalLowE(); 00057 00058 virtual ~G4XnpTotalLowE(); 00059 00060 G4bool operator==(const G4XnpTotalLowE &right) const; 00061 G4bool operator!=(const G4XnpTotalLowE &right) const; 00062 00063 virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const; 00064 00065 virtual const G4CrossSectionVector* GetComponents() const {return 0; } 00066 00067 virtual G4bool IsValid(G4double e) const; 00068 00069 virtual void Print() const; 00070 00071 virtual G4String Name() const; 00072 00073 virtual G4double HighLimit() const { return _highLimit; } 00074 00075 00076 protected: 00077 00078 00079 private: 00080 00081 G4XnpTotalLowE(const G4XnpTotalLowE &right); 00082 const G4XnpTotalLowE& operator=(const G4XnpTotalLowE &right); 00083 00084 static const G4double _lowLimit; 00085 static const G4double _highLimit; 00086 static const G4double _sigmaTable[101]; 00087 static const G4int _tableSize; 00088 static const G4double _eMinTable; 00089 static const G4double _eStepLog; 00090 00091 G4PhysicsVector* _sigma; 00092 G4double _eMin; 00093 G4double _eMax; 00094 00095 }; 00096 00097 #endif 00098 00099 00100 00101 00102 00103 00104 00105 00106 00107 00108 00109 00110 00111 00112 00113 00114 00115 00116 00117 00118 00119 00120 00121 00122 00123 00124 00125 00126 00127 00128 00129 00130 00131 00132 00133 00134 00135 00136 00137 00138 00139 00140