File indexing completed on 2025-01-18 09:59:29
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
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