File indexing completed on 2025-01-18 09:59:07
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
0029
0030
0031 #ifndef G4StatMFFragment_h
0032 #define G4StatMFFragment_h 1
0033
0034 #include "G4StatMFParameters.hh"
0035 #include "G4ThreeVector.hh"
0036 #include "G4ParticleTable.hh"
0037 #include "G4IonTable.hh"
0038 #include "G4Fragment.hh"
0039
0040 class G4StatMFFragment {
0041
0042 public:
0043
0044 G4StatMFFragment(G4int anA, G4int aZ) :
0045 theA(anA),theZ(aZ),
0046 _position(0.0,0.0,0.0),
0047 _momentum(0.0,0.0,0.0)
0048 {}
0049
0050
0051
0052 virtual ~G4StatMFFragment() {};
0053
0054
0055 private:
0056
0057 G4StatMFFragment(){};
0058
0059
0060 G4StatMFFragment(const G4StatMFFragment & right);
0061
0062
0063 G4StatMFFragment & operator=(const G4StatMFFragment & right);
0064 public:
0065 G4bool operator==(const G4StatMFFragment & right) const;
0066 G4bool operator!=(const G4StatMFFragment & right) const;
0067
0068 public:
0069
0070 G4double GetCoulombEnergy(void) const;
0071
0072 G4double GetEnergy(const G4double T) const;
0073
0074 G4double GetInvLevelDensity(void) const;
0075
0076 G4int GetA(void) const {return theA;}
0077
0078 G4int GetZ(void) const {return theZ;}
0079
0080 void SetPosition(const G4ThreeVector& aPosition) {_position = aPosition;}
0081
0082 G4ThreeVector& GetPosition(void) {return _position;}
0083
0084 void SetMomentum(const G4ThreeVector& aMomentum) {_momentum = aMomentum;}
0085
0086 G4ThreeVector& GetMomentum(void) {return _momentum;}
0087
0088 G4Fragment * GetFragment(const G4double T);
0089
0090 G4double GetNuclearMass(void)
0091 {return G4ParticleTable::GetParticleTable()->GetIonTable()
0092 ->GetIonMass(theZ, theA);}
0093
0094
0095 private:
0096
0097 G4double CalcExcitationEnergy(const G4double T);
0098
0099 private:
0100
0101 G4int theA;
0102
0103 G4int theZ;
0104
0105 G4ThreeVector _position;
0106
0107 G4ThreeVector _momentum;
0108 };
0109
0110 #endif
0111