Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

alg_s_spect.h

Go to the documentation of this file.
00001 #include<config.h>
00002 CPS_START_NAMESPACE
00003 //------------------------------------------------------------------
00004 //
00005 // alg_s_spect.h
00006 //
00007 // Header file for all alg classes relevant to staggered fermion
00008 // spectroscopy. The type of glue or fermion is given as
00009 // an argument of type Lattice& to the constructor. If the 
00010 // fermion type is not F_CLASS_STAG the constructors exit with
00011 // a general error.
00012 //
00013 //------------------------------------------------------------------
00014 
00015 
00016 #ifndef INCLUDED_ALG_S_SPECT_H
00017 #define INCLUDED_ALG_S_SPECT_H
00018 
00019 CPS_END_NAMESPACE
00020 #include <util/lattice.h>
00021 #include <util/smalloc.h>
00022 #include <util/pmalloc.h>
00023 #include <alg/alg_base.h>
00024 #include <alg/quark_prop_s.h>
00025 #include <alg/common_arg.h>
00026 #include <alg/s_spect_arg.h>
00027 CPS_START_NAMESPACE
00028 
00029 // Forward declaration
00030 class Aots;
00031 
00032 //------------------------------------------------------------------
00033 //
00034 // AlgStagQuark is derived from Alg and is relevant to  
00035 // the staggered quark propagator.
00036 // The type of fermion is determined by the argument to the 
00037 // constructor. If the fermion type is not F_CLASS_STAG the 
00038 // constructor will exit with a general error.
00039 //
00040 //------------------------------------------------------------------
00041 class AlgStagQuark : public Alg
00042 {
00043  private:
00044     char *cname;
00045 
00046     StagQuarkArg *alg_stag_quark_arg;
00047         // The argument structure for
00048         // the quark propagator
00049 
00050     static QuarkPropSMng sqpm; 
00051         // The quark propagator manager is initilaized
00052         // before entering the main function, and responsible for
00053         // registering and destroying quark propagators 
00054 
00055  public:
00056     AlgStagQuark(Lattice & latt, CommonArg *c_arg, 
00057                  StagQuarkArg *arg, Aots &aots);
00058 
00059     virtual ~AlgStagQuark();
00060 
00061     void run(void);
00062 
00063     void free(void);
00064 };
00065 
00066 
00067 //------------------------------------------------------------------
00068 //
00069 // AlgStagMeson is derived from Alg and is relevant to  
00070 // the staggered meson propagator.
00071 // The type of fermion is determined by the argument to the 
00072 // constructor. If the fermion type is not F_CLASS_STAG the 
00073 // constructor will exit with a general error.
00074 //
00075 //------------------------------------------------------------------
00076 class AlgStagMeson : public Alg
00077 {
00078  private:
00079     char *cname;
00080 
00081     StagMesonArg *alg_stag_meson_arg;
00082         // The argument structure for
00083         // the meson propagator
00084 
00085     Aots & aots;
00086         // Control info to Average Over Time Slices
00087 
00088  public:
00089     AlgStagMeson(Lattice & latt, CommonArg *c_arg, 
00090                  StagMesonArg *arg, Aots& a);
00091 
00092     virtual ~AlgStagMeson();
00093 
00094     void run(void);
00095 
00096 };
00097 
00098 //------------------------------------------------------------------
00099 // added by manke: 05/04/2001
00100 // AlgStagMomMeson is derived from Alg and is relevant to  
00101 // the staggered meson propagator.
00102 // The type of fermion is determined by the argument to the 
00103 // constructor. If the fermion type is not F_CLASS_STAG the 
00104 // constructor will exit with a general error.
00105 //
00106 //------------------------------------------------------------------
00107 class AlgStagMomMeson : public Alg
00108 {
00109  private:
00110     char *cname;
00111 
00112     StagMomMesonArg *alg_stag_mom_meson_arg;
00113         // The argument structure for
00114         // the meson propagator
00115 
00116     Aots & aots;
00117         // Control info to Average Over Time Slices
00118 
00119  public:
00120     AlgStagMomMeson(Lattice & latt, CommonArg *c_arg, 
00121                  StagMomMesonArg *arg, Aots& a);
00122 
00123     virtual ~AlgStagMomMeson();
00124 
00125     void run(void);
00126 
00127 };
00128 
00129 
00130 //------------------------------------------------------------------
00131 //
00132 // AlgStagNucleon is derived from Alg and is relevant to  
00133 // the staggered nucleon propagator.
00134 // The type of fermion is determined by the argument to the 
00135 // constructor. If the fermion type is not F_CLASS_STAG the 
00136 // constructor will exit with a general error.
00137 //
00138 //------------------------------------------------------------------
00139 class AlgStagNucleon : public Alg
00140 {
00141  private:
00142     char *cname;
00143 
00144     StagNucleonArg *alg_stag_nucleon_arg;
00145         // The argument structure for
00146         // the nucleon propagator
00147  
00148     Aots & aots;
00149         // Control info to Average Over Time Slices
00150 
00151  public:
00152     AlgStagNucleon(Lattice & latt, CommonArg *c_arg, 
00153                    StagNucleonArg *arg, Aots& a);
00154 
00155     virtual ~AlgStagNucleon();
00156 
00157     void run(void);
00158 
00159 };
00160 
00161 
00162 
00163 //------------------------------------------------------------------
00164 //
00165 // AlgStagNonLocal is derived from Alg and is relevant to  
00166 // the staggered non-local hadron propagator.
00167 // The type of fermion is determined by the argument to the 
00168 // constructor. If the fermion type is not F_CLASS_STAG the 
00169 // constructor will exit with a general error.
00170 //
00171 //------------------------------------------------------------------
00172 class AlgStagNonLocal : public Alg
00173 {
00174  private:
00175     char *cname;
00176 
00177     StagNonLocalArg *alg_stag_non_local_arg;
00178         // The argument structure for
00179         // the non-local hadron propagator
00180  
00181     Aots & aots;
00182         // Control info to Average Over Time Slices
00183 
00184  public:
00185     AlgStagNonLocal(Lattice & latt, CommonArg *c_arg, 
00186                     StagNonLocalArg *arg, Aots& a);
00187 
00188     virtual ~AlgStagNonLocal();
00189 
00190     void run(void);
00191 
00192 };
00193 
00194 
00195 class AlgNLStagMeson : public Alg
00196 {
00197  private:
00198     char *cname;
00199 
00200     NLStagMesonArg *alg_stag_non_local_arg;
00201         // The argument structure for
00202         // the non-local hadron propagator
00203  
00204     Aots & aots;
00205         // Control info to Average Over Time Slices
00206 
00207  public:
00208     AlgNLStagMeson(Lattice & latt, CommonArg *c_arg, 
00209                     NLStagMesonArg *arg, Aots& a);
00210 
00211     virtual ~AlgNLStagMeson();
00212 
00213     void run(void);
00214 
00215 };
00216 
00217 
00218 
00219 
00220 #endif
00221 
00222 
00223 
00224 
00225 
00226 CPS_END_NAMESPACE

Generated on Sat Oct 10 14:11:09 2009 for Columbia Physics System by  doxygen 1.3.9.1