00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef G4StatMFMacroChemicalPotential_h
00033 #define G4StatMFMacroChemicalPotential_h 1
00034
00035 #include <vector>
00036
00037 #include "G4StatMFParameters.hh"
00038 #include "G4VStatMFMacroCluster.hh"
00039 #include "G4StatMFMacroMultiplicity.hh"
00040 #include "G4Solver.hh"
00041
00042
00043
00044 class G4StatMFMacroChemicalPotential {
00045
00046 public:
00047
00048 G4StatMFMacroChemicalPotential(const G4double anA, const G4double aZ,
00049 const G4double kappa,
00050 const G4double temp,
00051 std::vector<G4VStatMFMacroCluster*> * ClusterVector) :
00052 theA(anA),
00053 theZ(aZ),
00054 _Kappa(kappa),
00055 _MeanMultiplicity(0.0),
00056 _MeanTemperature(temp),
00057 _ChemPotentialMu(0.0),
00058 _ChemPotentialNu(0.0),
00059 _theClusters(ClusterVector)
00060 {};
00061
00062 ~G4StatMFMacroChemicalPotential() {};
00063
00064 G4double operator()(const G4double nu)
00065 { return (theZ - this->CalcMeanZ(nu))/theZ; }
00066
00067 private:
00068
00069 G4StatMFMacroChemicalPotential() {};
00070
00071
00072 G4StatMFMacroChemicalPotential(const G4StatMFMacroChemicalPotential &) {};
00073
00074
00075
00076 G4StatMFMacroChemicalPotential & operator=(const G4StatMFMacroChemicalPotential & right);
00077 G4bool operator==(const G4StatMFMacroChemicalPotential & right) const;
00078 G4bool operator!=(const G4StatMFMacroChemicalPotential & right) const;
00079
00080 public:
00081
00082 G4double GetMeanMultiplicity(void) const {return _MeanMultiplicity;}
00083
00084 G4double GetChemicalPotentialMu(void) const {return _ChemPotentialMu;}
00085
00086 G4double GetChemicalPotentialNu(void) const {return _ChemPotentialNu;}
00087
00088 G4double CalcChemicalPotentialNu(void);
00089
00090 private:
00091
00092 G4double CalcMeanZ(const G4double nu);
00093
00094 void CalcChemicalPotentialMu(const G4double nu);
00095
00096 private:
00097
00098 G4double theA;
00099
00100 G4double theZ;
00101
00102 G4double _Kappa;
00103
00104 G4double _MeanMultiplicity;
00105
00106 G4double _MeanTemperature;
00107
00108 G4double _ChemPotentialMu;
00109
00110 G4double _ChemPotentialNu;
00111
00112 std::vector<G4VStatMFMacroCluster*> * _theClusters;
00113
00114
00115 };
00116 #endif