66 using namespace StagPhases;
77 QDPIO::cerr <<
"The no of dimensions should be 4 for now. It is: "
84 QDPIO::cerr <<
"pions_s: input quark props has the wrong number of elements. It should be 8 but is " << quark_props.size() << std::endl;
94 QDPIO::cerr <<
"pions_s: j_decay must be 3 for just now. It is " <<
j_decay << std::endl;
99 const multi1d<int>& latt_size = Layout::lattSize();
105 LatticeComplex latt_corr_fn;
124 latt_corr_fn = trace(adj(quark_props[0])*quark_props[0]);
127 corr_fn[ pion_index ] = sumMulti(latt_corr_fn, timeslice);
128 tag_names[pion_index] =
"gamma5_CROSS_gamma5" ;
134 multi1d<int> delta(
Nd);
136 tag_names[pion_index] =
"gamma5_CROSS_gamma0_gamma5" ;
137 tag_names[pion_index+1] =
"gamma5_CROSS_gamma1_gamma5" ;
138 tag_names[pion_index+2] =
"gamma5_CROSS_gamma2_gamma5" ;
144 latt_corr_fn =
beta(
mu)*trace(shift_deltaProp(delta,quark_props[0])
147 corr_fn[ pion_index ] = sumMulti(latt_corr_fn, timeslice);
152 tag_names[pion_index] =
"gamma3_gamma5_CROSS_gamma3_gamma5" ;
153 latt_corr_fn = -
alpha(
Nd-1)*trace(adj(quark_props[0])*quark_props[0]);
154 corr_fn[ pion_index ] = sumMulti(latt_corr_fn, timeslice);
158 tag_names[pion_index] =
"gamma5_CROSS_gamma2_gamma3" ;
159 tag_names[pion_index+1] =
"gamma5_CROSS_gamma1_gamma3" ;
160 tag_names[pion_index+2] =
"gamma5_CROSS_gamma0_gamma3" ;
169 *trace(adj(shift_deltaProp(delta,quark_props[0]))
172 corr_fn[ pion_index ] = sumMulti(latt_corr_fn, timeslice);
179 tag_names[pion_index] =
"gamma3_gamma5_CROSS_gamma1_gamma2" ;
180 tag_names[pion_index+1] =
"gamma3_gamma5_CROSS_gamma0_gamma2" ;
181 tag_names[pion_index+2] =
"gamma3_gamma5_CROSS_gamma0_gamma1" ;
188 *trace(adj(shift_deltaProp(delta,quark_props[0]))
191 corr_fn[ pion_index ] = sumMulti(latt_corr_fn, timeslice);
196 tag_names[pion_index] =
"gamma5_CROSS_gamma3" ;
200 for(rho=
nu+1; rho <
Nd-1; rho++) {
209 *trace(adj(shift_deltaProp(delta,quark_props[0]))
212 corr_fn[ pion_index ] = sumMulti(latt_corr_fn, timeslice);
219 tag_names[pion_index] =
"gamma3_gamma5_CROSS_gamma2" ;
220 tag_names[pion_index+1] =
"gamma3_gamma5_CROSS_gamma1" ;
221 tag_names[pion_index+2] =
"gamma3_gamma5_CROSS_gamma0" ;
231 *trace(adj(shift_deltaProp(delta,quark_props[0]))
234 corr_fn[ pion_index ] = sumMulti(latt_corr_fn, timeslice);
240 tag_names[pion_index] =
"gamma3_gamma5_CROSS_one" ;
243 delta[0] = delta[1] = delta[2] = 1;
245 *trace(adj(shift_deltaProp(delta, quark_props[0]))
248 corr_fn[ pion_index ] = sumMulti(latt_corr_fn, timeslice);
252 QDPIO::cerr <<
"Panic! Panic! Something has gone horribly wrong" << std::endl;
Function object used for constructing the time-slice set.
int operator()(const multi1d< int > &coordinate) const
void compute(multi1d< LatticeStaggeredPropagator > &quark_props, int j_decay)
Function object used for constructing the time-slice set.
static const LatticeInteger & beta(const int dim)
static const LatticeInteger & alpha(const int dim)
Asqtad Staggered-Dirac operator.
int deltaToPropIndex(multi1d< int > &delta)