Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:59:29

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // * By using,  copying,  modifying or  distributing the software (or *
0021 // * any work based  on the software)  you  agree  to acknowledge its *
0022 // * use  in  resulting  scientific  publications,  and indicate your *
0023 // * acceptance of all terms of the Geant4 Software license.          *
0024 // ********************************************************************
0025 //
0026 //
0027 
0028 #ifndef G4XNNElasticLowE_h
0029 #define G4XNNElasticLowE_h
0030 
0031 #include "globals.hh"
0032 #include "G4VCrossSectionSource.hh"
0033 #include "G4CrossSectionVector.hh"
0034 #include "G4PhysicsVector.hh"
0035 #include <map>
0036 
0037 class G4KineticTrack;
0038 
0039 class G4XNNElasticLowE : public G4VCrossSectionSource
0040 {
0041 
0042 public:
0043 
0044   G4XNNElasticLowE();
0045 
0046   virtual ~G4XNNElasticLowE();
0047 
0048   G4bool operator==(const G4XNNElasticLowE &right) const;
0049   G4bool operator!=(const G4XNNElasticLowE &right) const;
0050 
0051   virtual G4double CrossSection(const G4KineticTrack& trk1, const G4KineticTrack& trk2) const;
0052  
0053   virtual const G4CrossSectionVector* GetComponents() const { return 0; }
0054 
0055   virtual G4bool IsValid(G4double e) const;
0056 
0057   virtual G4String Name() const;
0058 
0059   virtual void Print() const;
0060 
0061   virtual G4double HighLimit() const { return _highLimit; }
0062 
0063 
0064 protected:
0065  
0066 
0067 private:  
0068 
0069   G4XNNElasticLowE(const G4XNNElasticLowE &right);
0070   const G4XNNElasticLowE& operator=(const G4XNNElasticLowE &right);
0071   
0072   static const G4double _lowLimit;
0073   static const G4double _highLimit;
0074   static const G4double ppTable[101];
0075   static const G4double npTable[101];
0076   static const G4int tableSize;
0077   static const G4double _eMinTable;
0078   static const G4double _eStepLog;
0079 
0080   std::map <const G4ParticleDefinition *, G4PhysicsVector*, std::less<const G4ParticleDefinition *> > xMap;
0081 
0082   G4double _eMin;
0083   G4double _eMax;
0084 
0085 };
0086 
0087 #endif
0088 
0089 
0090 
0091 
0092 
0093 
0094 
0095 
0096 
0097 
0098 
0099 
0100 
0101 
0102 
0103 
0104 
0105 
0106 
0107 
0108 
0109 
0110 
0111 
0112 
0113 
0114 
0115 
0116 
0117 
0118 
0119 
0120 
0121 
0122 
0123 
0124 
0125 
0126 
0127 
0128 
0129 
0130