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
00033
00034
00035
00036
00037
00038 #ifndef G4QMDMeanField_hh
00039 #define G4QMDMeanField_hh
00040
00041 #include "G4QMDSystem.hh"
00042 #include "G4QMDNucleus.hh"
00043
00044 class G4QMDMeanField
00045 {
00046 public:
00047 G4QMDMeanField();
00048 ~G4QMDMeanField();
00049
00050 void SetSystem ( G4QMDSystem* aSystem );
00051 void SetNucleus ( G4QMDNucleus* aSystem );
00052 G4QMDSystem* GetSystem () {return system; };
00053
00054 void Cal2BodyQuantities();
00055 void Cal2BodyQuantities( G4int );
00056
00057 void CalGraduate();
00058
00059 G4bool IsPauliBlocked( G4int );
00060
00061 G4double GetTotalPotential();
00062 G4double GetPotential( G4int );
00063
00064 void DoPropagation( G4double );
00065
00066 std::vector< G4QMDNucleus* > DoClusterJudgment();
00067
00068 G4double GetRR2( G4int i , G4int j ) { return rr2[i][j]; };
00069
00070 G4double GetRHA( G4int i , G4int j ) { return rha[i][j]; };
00071 G4double GetRHE( G4int i , G4int j ) { return rhe[i][j]; };
00072 G4ThreeVector GetFFr( G4int i ) { return ffr[i]; };
00073 G4ThreeVector GetFFp( G4int i ) { return ffp[i]; };
00074
00075 std::vector< G4double > GetLocalDensity();
00076 std::vector< G4double > GetDepthOfPotential();
00077
00078 void Update();
00079
00080 private:
00081 G4double calPauliBlockingFactor( G4int );
00082
00083 G4QMDSystem* system;
00084
00085 G4double rclds;
00086
00087 G4double hbc , rho0;
00088 G4double epsx , epscl;
00089
00090 G4double cpc;
00091
00092 G4int icoul, irelcr;
00093 G4double gamm, c0, c3, cs, cl, wl;
00094 G4double c0w, c3w, clw, c0sw;
00095
00096 G4double c0g,c3g,csg,pag;
00097
00098 G4double cpw,cph;
00099
00100
00101 std::vector < std::vector < G4double > > rr2;
00102 std::vector < std::vector < G4double > > pp2;
00103 std::vector < std::vector < G4double > > rbij;
00104
00105
00106 std::vector < std::vector < G4double > > rha;
00107
00108
00109 std::vector < std::vector < G4double > > rhe;
00110 std::vector < std::vector < G4double > > rhc;
00111
00112 std::vector < G4ThreeVector > ffr;
00113 std::vector < G4ThreeVector > ffp;
00114 std::vector < G4double > rh3d;
00115
00116 };
00117
00118 #endif