00001 #include<config.h> 00002 CPS_START_NAMESPACE 00003 00004 //--------------------------------------------------------------------------- 00005 // 00006 // alg_w_spect.h 00007 // 00008 // Header file for all alg classes relevant to Wilson-type fermion 00009 // spectroscopy. The type of glue or fermion is given as 00010 // an argument of type Lattice& to the constructor. If the 00011 // fermion type is not F_CLASS_WILSON or F_CLASS_CLOVER or 00012 // F_CLASS_DWF the constructors exit with a general error. 00013 // 00014 // 00015 // SEE COMMENTS AT THE END ABOUT THE NAME SCHEME OF MESON DATA FILES (4/4/99) 00016 //--------------------------------------------------------------------------- 00017 00018 00019 00020 #ifndef INCLUDED_ALG_W_SPECT_H 00021 #define INCLUDED_ALG_W_SPECT_H 00022 00023 00024 CPS_END_NAMESPACE 00025 #include <alg/alg_base.h> 00026 #include <alg/w_spect_arg.h> 00027 00028 CPS_START_NAMESPACE 00029 00030 //--------------------------------------------------------------------------- 00031 // Forward Declarations 00032 //--------------------------------------------------------------------------- 00033 class Lattice; 00034 class CommonArg; 00035 class WspectArg; 00036 00037 00038 //--------------------------------------------------------------------------- 00039 // AlgWspect is derived from Alg and is relevant to 00040 // spectroscopy with Wilson type fermions (i.e. Wilson, Clover, Dwf). 00041 // The type of fermion is determined by the argument to the 00042 // constructor. If the fermion type is not F_CLASS_WILSON or 00043 // F_CLASS_CLOVER or F_CLASS_DWF the constructors exit with a 00044 // general error. 00045 // Xiaodong: Only normal mesons are calculated 00046 // To calculate normal+extended mesons, use AlgWspectExtMeson 00047 //--------------------------------------------------------------------------- 00048 00049 class AlgWspect : public Alg 00050 { 00051 private: 00052 static char *d_class_name; 00053 protected: 00054 static int d_counter; 00055 static int d_count_step; 00056 00057 WspectArg * d_arg_p; // the spectrum arg for each quark mass 00058 CgArg * cg_arg_p; // added by mflin to really pass CgArg to the class 00059 int d_num_args; // num of non-degenerate quark masses 00060 00061 public: 00062 AlgWspect(Lattice & latt, 00063 CommonArg *c_arg, 00064 WspectArg *arg, 00065 CgArg *cg, 00066 int n_quark_masses = 1); // Ping -- needed for heavy-light 00067 00068 static void SetCounter(int counter, int step); 00069 00070 static int GetCounter() { return d_counter; } 00071 00072 virtual ~AlgWspect(); 00073 00074 void run(void); 00075 }; 00076 00077 //derived class 00078 class AlgWspectExtMeson : public AlgWspect 00079 { 00080 private: 00081 static char *d_class_name; 00082 //simply override the run() function 00083 public: 00084 AlgWspectExtMeson(Lattice & latt, 00085 CommonArg *c_arg, 00086 WspectArg *arg, 00087 CgArg *cg, 00088 int n_quark_masses = 1); 00089 virtual ~AlgWspectExtMeson(); 00090 00091 void run(void); 00092 }; 00093 00094 00095 #endif 00096 00097 00098 CPS_END_NAMESPACE
1.3.9.1