CHROMA
scalar_loops_s.h
Go to the documentation of this file.
1 #ifndef SCALAR_LOOPS_S_H
2 #define SCALAR_LOOPS_S_H
3 
4 #include "meas/hadron/loops_s.h"
5 
6 namespace Chroma {
7 
8  class staggered_loops ;
9 
11  {
12  public :
13 
14 
15  void compute(LatticeStaggeredFermion & q_source,
16  LatticeStaggeredFermion & psi, int isample) ;
17 
18  local_scalar_loop(int t_len, int nsample,
19  const multi1d<LatticeColorMatrix> & uin,
20  Stag_shift_option type_of_shift_in)
21  : staggered_loops(t_len,nsample,uin,type_of_shift_in)
22  {
23  outer_tag = "loop_one_cross_one" ;
24  inner_tag = "loop" ;
25  }
26 
28  {
29  }
30 
31 
32  protected:
33 
34 
35  } ;
36 
37  //! Class for local (zero-link) \f$1\otimes1\f$ scalar loop using VKVR trick
39  : public staggered_loops
40  {
41  public:
42  //! Do the measurement (needs psi, not q_source!)
43  void compute(LatticeStaggeredFermion& psi,
44  int isample, Real mass);
45 
46  //! Satisfy virtual function compute(LSF&, LSF&, int)
47  void compute(LatticeStaggeredFermion& q_source,
48  LatticeStaggeredFermion& psi,
49  int isample) {}
50 
51  //! Constructor (sets up staggered loop and XML tags)
52  local_scalar_kilcup_loop(int t_len, int nsample,
53  const multi1d<LatticeColorMatrix>& uin,
54  Stag_shift_option type_of_shift_in)
55  : staggered_loops(t_len, nsample, uin, type_of_shift_in)
56  {
57  outer_tag = "loop_one_cross_one_k";
58  inner_tag = "loop";
59  }
60 
61  //! Virtual destructor
63 
64  protected:
65  };
66 
68  {
69  public :
70 
71 
72  void compute(LatticeStaggeredFermion & q_source,
73  LatticeStaggeredFermion & psi, int isample) ;
74 
75  non_local_scalar_loop(int t_len, int nsample,
76  const multi1d<LatticeColorMatrix> & uin,
77  Stag_shift_option type_of_shift_in)
78  : staggered_loops(t_len,nsample,uin,type_of_shift_in)
79  {
80  outer_tag = "loop_one_cross_gamma3" ;
81  inner_tag = "loop" ;
82  }
83 
85  {
86  }
87 
88 
89  protected:
90 
91 
92  } ;
93 
95  : public staggered_loops
96  {
97  public:
98  void compute(LatticeStaggeredFermion & q_source,
99  LatticeStaggeredFermion & psi, int isample) ;
100 
101  fourlink_scalar_loop(int t_len, int nsample,
102  const multi1d<LatticeColorMatrix> & uin,
103  Stag_shift_option type_of_shift_in)
104  : staggered_loops(t_len,nsample,uin,type_of_shift_in)
105  {
106  outer_tag = "loop_one_cross_gamma5" ;
107  inner_tag = "loop" ;
108  }
109 
111  protected:
112  };
113 
115  : public staggered_loops
116  {
117  public:
118  void compute(LatticeStaggeredFermion & q_source,
119  LatticeStaggeredFermion & psi, int isample) {}
120  void compute(LatticeStaggeredFermion& psi, int isample, Real Mass);
121 
122  fourlink_scalar_kilcup_loop(int t_len, int nsample,
123  const multi1d<LatticeColorMatrix> & uin,
124  Stag_shift_option type_of_shift_in)
125  : staggered_loops(t_len,nsample,uin,type_of_shift_in)
126  {
127  outer_tag = "loop_one_cross_gamma5_k" ;
128  inner_tag = "loop" ;
129  }
130 
132  protected:
133  };
134 
135  // fuzzed loops
136 
138  {
139  public :
140 
141 
142  void compute(LatticeStaggeredFermion & q_source,
143  LatticeStaggeredFermion & psi, int isample) ;
144 
145  local_scalar_loop_fuzz(int t_len, int nsample,
146  const multi1d<LatticeColorMatrix> & uin,
147  Stag_shift_option type_of_shift_in)
148  : staggered_loops(t_len,nsample,uin,type_of_shift_in)
149  {
150  outer_tag = "loop_one_cross_one_fz" ;
151  inner_tag = "loop" ;
152  }
153 
155  {
156  }
157 
158 
159  protected:
160 
161 
162  } ;
163 
164  //! Class for local (zero-link) \f$1\otimes1\f$ scalar loop, with VKVR and fuzzing
166  {
167  public:
168  //! Do the measurement (with VKVR)
169  void compute(LatticeStaggeredFermion& psi_fuzz,
170  LatticeStaggeredFermion& psi,
171  int isample, Real mass);
172 
173  //! Empty compute (satisfies pure virtual compute in staggered_loops)
174  void compute(LatticeStaggeredFermion& q_source,
175  LatticeStaggeredFermion& psi, int isample) { }
176 
177  //! Set up staggered loop, and set XML tags
178  local_scalar_kilcup_loop_fuzz(int t_len, int nsample,
179  const multi1d<LatticeColorMatrix>& uin,
180  Stag_shift_option type_of_shift_in)
181  : staggered_loops(t_len, nsample, uin, type_of_shift_in)
182  {
183  outer_tag = "loop_one_cross_one_k_fz";
184  inner_tag = "loop";
185  }
186 
187  //! Virtual destructor
189 
190  protected:
191  };
192 
194  {
195  public :
196 
197 
198  void compute(LatticeStaggeredFermion & q_source,
199  LatticeStaggeredFermion & psi, int isample) ;
200 
201  non_local_scalar_loop_fuzz(int t_len, int nsample,
202  const multi1d<LatticeColorMatrix> & uin,
203  Stag_shift_option type_of_shift_in)
204  : staggered_loops(t_len,nsample,uin,type_of_shift_in)
205  {
206  outer_tag = "loop_one_cross_gamma3_fz" ;
207  inner_tag = "loop" ;
208  }
209 
211  {
212  }
213 
214 
215  protected:
216 
217 
218  } ;
219 
220 
221 } // end namespace Chroma
222 
223 #endif
Class for local (zero-link) scalar loop, with VKVR and fuzzing.
virtual ~local_scalar_kilcup_loop_fuzz()
Virtual destructor.
local_scalar_kilcup_loop_fuzz(int t_len, int nsample, const multi1d< LatticeColorMatrix > &uin, Stag_shift_option type_of_shift_in)
Set up staggered loop, and set XML tags.
void compute(LatticeStaggeredFermion &psi_fuzz, LatticeStaggeredFermion &psi, int isample, Real mass)
Do the measurement (with VKVR)
void compute(LatticeStaggeredFermion &q_source, LatticeStaggeredFermion &psi, int isample)
Empty compute (satisfies pure virtual compute in staggered_loops)
Class for local (zero-link) scalar loop using VKVR trick.
void compute(LatticeStaggeredFermion &psi, int isample, Real mass)
Do the measurement (needs psi, not q_source!)
virtual ~local_scalar_kilcup_loop()
Virtual destructor.
void compute(LatticeStaggeredFermion &q_source, LatticeStaggeredFermion &psi, int isample)
Satisfy virtual function compute(LSF&, LSF&, int)
local_scalar_kilcup_loop(int t_len, int nsample, const multi1d< LatticeColorMatrix > &uin, Stag_shift_option type_of_shift_in)
Constructor (sets up staggered loop and XML tags)
void compute(LatticeStaggeredFermion &q_source, LatticeStaggeredFermion &psi, int isample)
local_scalar_loop_fuzz(int t_len, int nsample, const multi1d< LatticeColorMatrix > &uin, Stag_shift_option type_of_shift_in)
void compute(LatticeStaggeredFermion &q_source, LatticeStaggeredFermion &psi, int isample)
local_scalar_loop(int t_len, int nsample, const multi1d< LatticeColorMatrix > &uin, Stag_shift_option type_of_shift_in)
non_local_scalar_loop_fuzz(int t_len, int nsample, const multi1d< LatticeColorMatrix > &uin, Stag_shift_option type_of_shift_in)
void compute(LatticeStaggeredFermion &q_source, LatticeStaggeredFermion &psi, int isample)
void compute(LatticeStaggeredFermion &q_source, LatticeStaggeredFermion &psi, int isample)
non_local_scalar_loop(int t_len, int nsample, const multi1d< LatticeColorMatrix > &uin, Stag_shift_option type_of_shift_in)
std::string outer_tag
Definition: loops_s.h:179
std::string inner_tag
Definition: loops_s.h:180
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > const multi1d< Real > & Mass
Definition: pbg5p_w.cc:29
Double mass
Definition: pbg5p_w.cc:54
LatticeFermion psi
Definition: mespbg5p_w.cc:35