44 void QlQl(
const multi1d<LatticeColorMatrix>&
u,
45 const LatticePropagator& quark_propagator1,
46 const LatticePropagator& quark_propagator2,
47 const multi1d<int>& src_coord,
48 const multi1d<int>& snk_coord,
60 int num_mom = phases.
numMom();
62 LatticeColorMatrix Qprop1;
63 LatticeColorMatrix Qprop2;
72 SpinMatrix g_one = 1.0;
73 SpinMatrix S_proj_unpol = 0.5 * (g_one + (g_one * Gamma(8)));
76 for(
int gind=0; gind<16;++gind){
77 LatticePropagator Mat1 , Mat2;
78 LatticeComplex Hq_prop11 , Hq_prop12, Hq_prop21, Hq_prop22 ;
80 Mat1 = quark_propagator1 * adj(Qprop1*S_proj_unpol) * Gamma(15) * Gamma(gind) ;
81 Mat2 = Qprop2*S_proj_unpol * adj(quark_propagator2) * Gamma(15) * Gamma(gind);
83 Hq_prop11 = trace(Mat1*Mat2);
84 Hq_prop12 = traceSpin(traceColor(Mat1)*traceColor(Mat2));
85 Hq_prop21 = traceColor(traceSpin(Mat1)*traceSpin(Mat2));
86 Hq_prop22 = trace(Mat1)*trace(Mat2);
89 multi2d<DComplex> hsumHq11, hsumHq12 , hsumHq21, hsumHq22 ;
90 hsumHq11 = phases.
sft(Hq_prop11);
91 hsumHq12 = phases.
sft(Hq_prop12);
92 hsumHq21 = phases.
sft(Hq_prop21);
93 hsumHq22 = phases.
sft(Hq_prop22);
94 multi2d<DComplex> HQprop11(num_mom,length) ;
95 multi2d<DComplex> HQprop12(num_mom,length) ;
96 multi2d<DComplex> HQprop21(num_mom,length) ;
97 multi2d<DComplex> HQprop22(num_mom,length) ;
99 for(
int sink_mom_num=0; sink_mom_num < num_mom; ++sink_mom_num)
100 for(
int t = 0;
t < length; ++
t)
102 int t_eff = (
t - src_coord[
Nd-1] + length) % length;
103 HQprop11[sink_mom_num][t_eff] = hsumHq11[sink_mom_num][
t];
104 HQprop12[sink_mom_num][t_eff] = hsumHq12[sink_mom_num][
t];
105 HQprop21[sink_mom_num][t_eff] = hsumHq21[sink_mom_num][
t];
106 HQprop22[sink_mom_num][t_eff] = hsumHq22[sink_mom_num][
t];
110 push(xml, xml_group);
111 write(xml,
"gamma_value", gind);
112 write(xml,
"ThreePoint1Spin1ColorTrace", HQprop11[0]);
113 write(xml,
"ThreePoint1Spin2ColorTrace", HQprop12[0]);
114 write(xml,
"ThreePoint2Spin1ColorTrace", HQprop21[0]);
115 write(xml,
"ThreePoint2Spin2ColorTrace", HQprop22[0]);
124 void QlQl(
const multi1d<LatticeColorMatrix>&
u,
125 const LatticePropagator& quark_propagator1,
126 const LatticePropagator& quark_propagator2,
127 const LatticePropagator& heavy_quark_propagator,
128 const multi1d<int>& src_coord,
129 const multi1d<int>& snk_coord,
130 const multi1d<int>& heavy_src,
142 int num_mom = phases.
numMom();
144 LatticeColorMatrix Qprop;
146 if (heavy_src==src_coord)
155 SpinMatrix g_one = 1.0;
156 SpinMatrix S_proj_unpol = 0.5 * (g_one + (g_one * Gamma(8)));
157 multi1d<DComplex> Hq;
159 for(
int gind=0; gind<16;++gind){
160 LatticePropagator Mat1 , Mat2;
161 LatticeComplex Hq_prop11 , Hq_prop12, Hq_prop21, Hq_prop22 ;
163 if (heavy_src==src_coord){
164 Mat1 = quark_propagator1 * adj(heavy_quark_propagator) * Gamma(15) * Gamma(gind) ;
165 Mat2 = Qprop*S_proj_unpol * adj(quark_propagator2) * Gamma(15) * Gamma(gind);
168 Mat1 = quark_propagator1 * adj(Qprop*S_proj_unpol) * Gamma(15) * Gamma(gind) ;
169 Mat2 = heavy_quark_propagator * adj(quark_propagator2) * Gamma(15) * Gamma(gind);
172 Hq_prop11 = trace(Mat1*Mat2);
173 Hq_prop12 = traceSpin(traceColor(Mat1)*traceColor(Mat2));
174 Hq_prop21 = traceColor(traceSpin(Mat1)*traceSpin(Mat2));
175 Hq_prop22 = trace(Mat1)*trace(Mat2);
178 multi2d<DComplex> hsumHq11, hsumHq12 , hsumHq21, hsumHq22 ;
179 hsumHq11 = phases.
sft(Hq_prop11);
180 hsumHq12 = phases.
sft(Hq_prop12);
181 hsumHq21 = phases.
sft(Hq_prop21);
182 hsumHq22 = phases.
sft(Hq_prop22);
183 multi2d<DComplex> HQprop11(num_mom,length) ;
184 multi2d<DComplex> HQprop12(num_mom,length) ;
185 multi2d<DComplex> HQprop21(num_mom,length) ;
186 multi2d<DComplex> HQprop22(num_mom,length) ;
188 for(
int sink_mom_num=0; sink_mom_num < num_mom; ++sink_mom_num)
189 for(
int t = 0;
t < length; ++
t)
191 int t_eff = (
t - src_coord[
Nd-1] + length) % length;
192 HQprop11[sink_mom_num][t_eff] = hsumHq11[sink_mom_num][
t];
193 HQprop12[sink_mom_num][t_eff] = hsumHq12[sink_mom_num][
t];
194 HQprop21[sink_mom_num][t_eff] = hsumHq21[sink_mom_num][
t];
195 HQprop22[sink_mom_num][t_eff] = hsumHq22[sink_mom_num][
t];
199 push(xml, xml_group);
200 write(xml,
"gamma_value", gind);
201 write(xml,
"ThreePoint1Spin1ColorTrace", HQprop11[0]);
202 write(xml,
"ThreePoint1Spin2ColorTrace", HQprop12[0]);
203 write(xml,
"ThreePoint2Spin1ColorTrace", HQprop21[0]);
204 write(xml,
"ThreePoint2Spin2ColorTrace", HQprop22[0]);
215 void QlQl(
const multi1d<LatticeColorMatrix>&
u,
216 const LatticePropagator& quark_propagator1,
217 const LatticePropagator& quark_propagator2,
218 const LatticePropagator& heavy_quark_propagator1,
219 const LatticePropagator& heavy_quark_propagator2,
220 const multi1d<int>& src_coord,
221 const multi1d<int>& snk_coord,
232 int num_mom = phases.
numMom();
234 multi1d<DComplex> Hq;
236 for(
int gind=0; gind<16;++gind){
237 LatticePropagator Mat1 , Mat2;
238 LatticeComplex Hq_prop11 , Hq_prop12, Hq_prop21, Hq_prop22 ;
240 Mat1 = quark_propagator1 * adj(heavy_quark_propagator1) * Gamma(15) * Gamma(gind);
241 Mat2 = heavy_quark_propagator2 * adj(quark_propagator2) * Gamma(15) * Gamma(gind);
243 Hq_prop11 = trace(Mat1*Mat2);
244 Hq_prop12 = traceSpin(traceColor(Mat1)*traceColor(Mat2));
245 Hq_prop21 = traceColor(traceSpin(Mat1)*traceSpin(Mat2));
246 Hq_prop22 = trace(Mat1)*trace(Mat2);
249 multi2d<DComplex> hsumHq11, hsumHq12 , hsumHq21, hsumHq22 ;
250 hsumHq11 = phases.
sft(Hq_prop11);
251 hsumHq12 = phases.
sft(Hq_prop12);
252 hsumHq21 = phases.
sft(Hq_prop21);
253 hsumHq22 = phases.
sft(Hq_prop22);
254 multi2d<DComplex> HQprop11(num_mom,length) ;
255 multi2d<DComplex> HQprop12(num_mom,length) ;
256 multi2d<DComplex> HQprop21(num_mom,length) ;
257 multi2d<DComplex> HQprop22(num_mom,length) ;
259 for(
int sink_mom_num=0; sink_mom_num < num_mom; ++sink_mom_num)
260 for(
int t = 0;
t < length; ++
t)
262 int t_eff = (
t - src_coord[
Nd-1] + length) % length;
263 HQprop11[sink_mom_num][t_eff] = hsumHq11[sink_mom_num][
t];
264 HQprop12[sink_mom_num][t_eff] = hsumHq12[sink_mom_num][
t];
265 HQprop21[sink_mom_num][t_eff] = hsumHq21[sink_mom_num][
t];
266 HQprop22[sink_mom_num][t_eff] = hsumHq22[sink_mom_num][
t];
270 push(xml, xml_group);
271 write(xml,
"gamma_value", gind);
272 write(xml,
"ThreePoint1Spin1ColorTrace", HQprop11[0]);
273 write(xml,
"ThreePoint1Spin2ColorTrace", HQprop12[0]);
274 write(xml,
"ThreePoint2Spin1ColorTrace", HQprop21[0]);
275 write(xml,
"ThreePoint2Spin2ColorTrace", HQprop22[0]);
Static-Light 3pt function.
Heavy Baryon (Qll) 2-pt function : Orginos and Savage.
Fourier transform phase factor support.
int numSubsets() const
Number of subsets - length in decay direction.
multi2d< DComplex > sft(const LatticeComplex &cf) const
Do a sumMulti(cf*phases,getSet())
int numMom() const
Number of momenta.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void QlQl(const multi1d< LatticeColorMatrix > &u, const LatticePropagator &quark_propagator1, const LatticePropagator &quark_propagator2, const multi1d< int > &src_coord, const multi1d< int > &snk_coord, const int &bc, const SftMom &phases, XMLWriter &xml, const std::string &xml_group)
Heavy-light meson 2-pt function.
void HeavyQuarkProp(LatticeColorMatrix &Qprop, const multi1d< LatticeColorMatrix > &u, const multi1d< int > &src_coord, int length, int bc)
Heavy Quark Propagator.
void HeavyQuarkPropBack(LatticeColorMatrix &Qprop, const multi1d< LatticeColorMatrix > &u, const multi1d< int > &src_coord, int length, int bc)
Backwards Heavy Quark Propagator.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
push(xml_out,"Condensates")