File indexing completed on 2025-10-31 09:03:35
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