CHROMA
barhqlq_w.cc
Go to the documentation of this file.
1 /*! \file
2  * \brief Heavy-light baryon 2-pt functions
3  */
4 
5 
8 
9 namespace Chroma
10 {
11 
12  //! Baryon 2pt contractions
13  /*! \ingroup hadron */
14  namespace Baryon2PtContractions
15  {
16  //! Sigma 2-pt
17  /*! \ingroup hadron */
18  LatticeComplex sigma2pt(const LatticePropagator& quark_propagator_1,
19  const LatticePropagator& quark_propagator_2,
20  const SpinMatrix& T, const SpinMatrix& sp)
21  {
22 #if QDP_NC == 3
23 
24  LatticePropagator di_quark = quarkContract13(quark_propagator_1 * sp,
25  sp * quark_propagator_2);
26  return LatticeComplex(trace(T * traceColor(quark_propagator_2 * traceSpin(di_quark)))
27  + trace(T * traceColor(quark_propagator_2 * di_quark)));
28 #endif
29  }
30 
31 
32  //! Cascade 2-pt
33  /*! \ingroup hadron */
34  LatticeComplex xi2pt(const LatticePropagator& quark_propagator_1,
35  const LatticePropagator& quark_propagator_2,
36  const SpinMatrix& T, const SpinMatrix& sp)
37  {
38 #if QDP_NC == 3
39 
40  LatticePropagator di_quark = quarkContract13(quark_propagator_1 * sp,
41  sp * quark_propagator_2);
42  return LatticeComplex(trace(T * traceColor(quark_propagator_1 * traceSpin(di_quark)))
43  + trace(T * traceColor(quark_propagator_1 * di_quark)));
44 #endif
45  }
46 
47 
48  //! Lambda 2-pt
49  /*! \ingroup hadron */
50  LatticeComplex lambda2pt(const LatticePropagator& quark_propagator_1,
51  const LatticePropagator& quark_propagator_2,
52  const SpinMatrix& T, const SpinMatrix& sp)
53  {
54 #if QDP_NC == 3
55 
56  // WARNING: I'm not convinced the original SZIN version (or this version) is correct!
57  LatticePropagator di_quark = quarkContract13(quark_propagator_2 * sp,
58  sp * quark_propagator_2);
59 
60  LatticeComplex b_prop = trace(T * traceColor(quark_propagator_1 * traceSpin(di_quark)))
61  + trace(T * traceColor(quark_propagator_1 * di_quark));
62 
63  di_quark = quarkContract13(quark_propagator_2 * sp,
64  sp * quark_propagator_1);
65  b_prop += trace(T * traceColor(quark_propagator_2 * di_quark));
66 
67  return b_prop;
68 #endif
69  }
70 
71 
72  //! Lambda 2-pt
73  /*! \ingroup hadron */
74  LatticeComplex lambdaNaive2pt(const LatticePropagator& quark_propagator_1,
75  const LatticePropagator& quark_propagator_2,
76  const SpinMatrix& T, const SpinMatrix& sp)
77  {
78 #if QDP_NC == 3
79 
80  LatticePropagator di_quark = quarkContract13(quark_propagator_2 * sp,
81  sp * quark_propagator_2);
82  return LatticeComplex(trace(T * traceColor(quark_propagator_1 * traceSpin(di_quark))));
83 #endif
84  }
85 
86 
87  //! Delta 2-pt
88  /*! \ingroup hadron */
89  LatticeComplex sigmast2pt(const LatticePropagator& quark_propagator_1,
90  const LatticePropagator& quark_propagator_2,
91  const SpinMatrix& T, const SpinMatrix& sp)
92  {
93 #if QDP_NC == 3
94 
95  LatticePropagator di_quark = quarkContract13(quark_propagator_1 * sp,
96  sp * quark_propagator_2);
97  LatticeComplex b_prop = trace(T * traceColor(quark_propagator_2 * traceSpin(di_quark)))
98  + trace(T * traceColor(quark_propagator_2 * di_quark));
99 
100  di_quark = quarkContract13(quark_propagator_2 * sp,
101  sp * quark_propagator_1);
102  b_prop += trace(T * traceColor(quark_propagator_2 * di_quark));
103 
104  di_quark = quarkContract13(quark_propagator_2 * sp,
105  sp * quark_propagator_2);
106  b_prop += trace(T * traceColor(quark_propagator_1 * di_quark));
107  b_prop *= 2;
108  b_prop += trace(T * traceColor(quark_propagator_1 * traceSpin(di_quark)));
109 
110  return b_prop;
111 #endif
112  }
113 
114  //! Delta 2-pt
115  /*! \ingroup hadron */
116  LatticeComplex sigmast2pt(const LatticePropagator& quark_propagator_1,
117  const LatticePropagator& quark_propagator_2,
118  const SpinMatrix& T, const SpinMatrix& spSRC,
119  const SpinMatrix& spSNK)
120  {
121 #if QDP_NC == 3
122 
123  LatticePropagator di_quark = quarkContract13(quark_propagator_1 * spSRC,
124  spSNK * quark_propagator_2);
125  LatticeComplex b_prop = trace(T * traceColor(quark_propagator_2 * traceSpin(di_quark)))
126  + trace(T * traceColor(quark_propagator_2 * di_quark));
127 
128  di_quark = quarkContract13(quark_propagator_2 * spSRC,
129  spSNK * quark_propagator_1);
130  b_prop += trace(T * traceColor(quark_propagator_2 * di_quark));
131 
132  di_quark = quarkContract13(quark_propagator_2 * spSRC,
133  spSNK * quark_propagator_2);
134  b_prop += trace(T * traceColor(quark_propagator_1 * di_quark));
135  b_prop *= 2;
136  b_prop += trace(T * traceColor(quark_propagator_1 * traceSpin(di_quark)));
137  return b_prop;
138 #endif
139  }
140 
141  } // namespace Baryon2PtContractions
142 
143 
144  //! Heavy-light baryon 2-pt functions
145  /*!
146  * \ingroup hadron
147  *
148  * This routine is specific to Wilson fermions!
149  *
150  * Construct baryon propagators for the Proton and the Delta^+ with
151  * degenerate "u" and "d" quarks, as well as the Lambda for, in
152  * addition, a degenerate "s" quark. For these degenerate quarks, the
153  * Lambda is degenerate with the Proton, but we keep it for compatibility
154  * with the sister routine that treats non-degenerate quarks.
155 
156  * The routine optionally computes time-charge reversed baryons and adds them
157  * in for increased statistics.
158 
159  * \param propagator_1 "s" quark propagator ( Read )
160  * \param propagator_2 "u" quark propagator ( Read )
161  * \param t0 cartesian coordinates of the source ( Read )
162  * \param bc_spec boundary condition for spectroscopy ( Read )
163  * \param time_rev add in time reversed contribution if true ( Read )
164  * \param phases object holds list of momenta and Fourier phases ( Read )
165  * \param xml xml file object ( Read )
166  * \param xml_group group name for xml data ( Read )
167  *
168  */
169 
170  void barhqlq(const LatticePropagator& propagator_1,
171  const LatticePropagator& propagator_2,
172  const SftMom& phases,
173  int t0, int bc_spec, bool time_rev,
174  XMLWriter& xml,
175  const std::string& xml_group)
176  {
177  START_CODE();
178 
179  if ( Ns != 4 || Nc != 3 ) /* Code is specific to Ns=4 and Nc=3. */
180  return;
181 
182  multi3d<DComplex> bardisp1;
183  multi3d<DComplex> bardisp2;
184 
185  // Forward
186  barhqlq(propagator_1, propagator_2, phases, bardisp1);
187 
188  // Possibly add in a time-reversed contribution
189  bool time_revP = (bc_spec*bc_spec == 1) ? time_rev : false;
190 
191  if (time_revP)
192  {
193  /* Time-charge reverse the quark propagators */
194  /* S_{CT} = gamma_5 gamma_4 = gamma_1 gamma_2 gamma_3 = Gamma(7) */
195  LatticePropagator q1_tmp = - (Gamma(7) * propagator_1 * Gamma(7));
196  LatticePropagator q2_tmp = - (Gamma(7) * propagator_2 * Gamma(7));
197 
198  barhqlq(q1_tmp, q2_tmp, phases, bardisp2);
199  }
200 
201 
202  int num_baryons = bardisp1.size3();
203  int num_mom = bardisp1.size2();
204  int length = bardisp1.size1();
205 
206  // Loop over baryons
207  XMLArrayWriter xml_bar(xml,num_baryons);
208  push(xml_bar, xml_group);
209 
210  for(int baryons = 0; baryons < num_baryons; ++baryons)
211  {
212  push(xml_bar); // next array element
213  write(xml_bar, "baryon_num", baryons);
214 
215  // Loop over sink momenta
216  XMLArrayWriter xml_sink_mom(xml_bar,num_mom);
217  push(xml_sink_mom, "momenta");
218 
219  for(int sink_mom_num = 0; sink_mom_num < num_mom; ++sink_mom_num)
220  {
221  push(xml_sink_mom);
222  write(xml_sink_mom, "sink_mom_num", sink_mom_num) ;
223  write(xml_sink_mom, "sink_mom", phases.numToMom(sink_mom_num)) ;
224 
225  multi1d<Complex> barprop(length);
226 
227  /* forward */
228  for(int t = 0; t < length; ++t)
229  {
230  int t_eff = (t - t0 + length) % length;
231 
232  if ( bc_spec < 0 && (t_eff+t0) >= length)
233  barprop[t_eff] = -bardisp1[baryons][sink_mom_num][t];
234  else
235  barprop[t_eff] = bardisp1[baryons][sink_mom_num][t];
236  }
237 
238  if (time_revP)
239  {
240  /* backward */
241  for(int t = 0; t < length; ++t)
242  {
243  int t_eff = (length - t + t0) % length;
244 
245  if ( bc_spec < 0 && (t_eff-t0) > 0)
246  {
247  barprop[t_eff] -= bardisp2[baryons][sink_mom_num][t];
248  barprop[t_eff] *= 0.5;
249  }
250  else
251  {
252  barprop[t_eff] += bardisp2[baryons][sink_mom_num][t];
253  barprop[t_eff] *= 0.5;
254  }
255  }
256  }
257 
258  write(xml_sink_mom, "barprop", barprop);
259  pop(xml_sink_mom);
260  } // end for(sink_mom_num)
261 
262  pop(xml_sink_mom);
263  pop(xml_bar);
264  } // end for(gamma_value)
265 
266  pop(xml_bar);
267 
268  END_CODE();
269  }
270 
271 
272 
273  //! Heavy-light baryon 2-pt functions
274  /*!
275  * \ingroup hadron
276  *
277  * This routine is specific to Wilson fermions!
278  *
279  *###########################################################################
280  * WARNING: No symmetrization over the spatial part of the wave functions #
281  * is performed. Therefore, if this routine is called with #
282  * "shell-sink" quark propagators of different widths the #
283  * resulting octet baryons may have admixters of excited #
284  * decouplet baryons with mixed symmetric spatial wave functions, #
285  * and vice-versa!!! #
286  *###########################################################################
287 
288  * Construct heavy-light baryon propagators with two "u" quarks and
289  * one separate "s" quark for the Sigma^+, the Lambda and the Sigma^{*+}.
290  * In the Lambda we take the "u" and "d" quark as degenerate!
291 
292  * The routine also computes time-charge reversed baryons and adds them
293  * in for increased statistics.
294 
295  * \param quark_propagator_1 "s" quark propagator ( Read )
296  * \param quark_propagator_2 "u" quark propagator ( Read )
297  * \param barprop baryon propagator ( Modify )
298  * \param phases object holds list of momenta and Fourier phases ( Read )
299  *
300  * ____
301  * \
302  * b(t) = > < b(t_source, 0) b(t + t_source, x) >
303  * /
304  * ----
305  * x
306 
307  * For the Sigma^+ we take
308 
309  * |S_1, s_z=1/2> = (s C gamma_5 u) "u_up"
310 
311  * for the Lambda
312 
313  * |L_1, s_z=1/2> = 2*(u C gamma_5 d) "s_up" + (s C gamma_5 d) "u_up"
314  * + (u C gamma_5 s) "d_up"
315 
316  * and for the Sigma^{*+}
317 
318  * |S*_1, s_z=3/2> = 2*(s C gamma_- u) "u_up" + (u C gamma_- u) "s_up".
319 
320  * We have put "q_up" in quotes, since this is meant in the Dirac basis,
321  * not in the 'DeGrand-Rossi' chiral basis used in the program!
322  * In gamma_- we ignore a factor sqrt(2).
323 
324  * For all baryons we compute a 'B_2' that differs from the 'B_1' above
325  * by insertion of a gamma_4 between C and the gamma_{5,-}.
326  * And finally, we also compute the non-relativistic baryons, 'B_3',
327  * which up to a factor 1/2 are just the difference B_1 - B_2, as can
328  * be seen by projecting to the "upper" components in the Dirac basis,
329  * achieved by (1 + gamma_4)/2 q, for quark q.
330 
331  * The Sigma^+_k is baryon 3*(k-1), the Lambda_k is baryon 3*(k-1)+1
332  * and the Sigma^{*+}_k is baryon 3*(k-1)+2.
333 
334  * We are using a chiral basis for the Dirac matrices (gamma_5 diagonal).
335  * Therefore a spin-up quark in the Dirac basis corresponds to
336  * 1/sqrt(2) * ( - q_1 - q_3 ) in this chiral basis. We shall neglect
337  * the sign and the 1/sqrt(2) here.
338  * The projection on "spin_up" is done with the projector "T".
339  */
340 
341  void barhqlq(const LatticePropagator& quark_propagator_1,
342  const LatticePropagator& quark_propagator_2,
343  const SftMom& phases,
344  multi3d<DComplex>& barprop)
345  {
346  START_CODE();
347 
348  // Length of lattice in decay direction
349  int length = phases.numSubsets() ;
350 
351  if ( Ns != 4 || Nc != 3 ) /* Code is specific to Ns=4 and Nc=3. */
352  return;
353 
354  // Setup the return stuff
355  const int num_baryons = 17;
356  int num_mom = phases.numMom();
357  barprop.resize(num_baryons,num_mom,length);
358 
359 
360  // T_mixed = (1 + \Sigma_3)*(1 + gamma_4) / 2
361  // = (1 + Gamma(8) - i G(3) - i G(11)) / 2
362  SpinMatrix T_mixed = BaryonSpinMats::Tmixed();
363 
364  // T_unpol = (1/2)(1 + gamma_4)
365  SpinMatrix T_unpol = BaryonSpinMats::Tunpol();
366 
367  // C gamma_5 = Gamma(5)
368  SpinMatrix Cg5 = BaryonSpinMats::Cg5();
369 
370  // C gamma_5 gamma_4 = - Gamma(13)
371  SpinMatrix Cg5g4 = BaryonSpinMats::Cg5g4();
372 
373  // C g_5 NR = (1/2)*C gamma_5 * ( 1 + g_4 )
374  SpinMatrix Cg5NR = BaryonSpinMats::Cg5NR();
375 
376  LatticeComplex b_prop;
377 
378  // Loop over baryons
379  for(int baryons = 0; baryons < num_baryons; ++baryons)
380  {
381  LatticePropagator di_quark;
382 
383  switch (baryons)
384  {
385  case 0:
386  // Sigma^+_1 (or proton); use also for Lambda_1!
387  // |S_1, s_z=1/2> = (s C gamma_5 u) "u_up"
388  // C gamma_5 = Gamma(5)
389  // Polarized:
390  // T_mixed = T = (1 + \Sigma_3)*(1 + gamma_4) / 2
391  // = (1 + Gamma(8) - i G(3) - i G(11)) / 2
392  b_prop = Baryon2PtContractions::sigma2pt(quark_propagator_1, quark_propagator_2,
393  T_mixed, Cg5);
394  break;
395 
396  case 1:
397  // Lambda_1
398  // |L_1, s_z=1/2> = 2*(u C gamma_5 d) "s_up" + (s C gamma_5 d) "u_up"
399  // + (u C gamma_5 s) "d_up" , see comments at top
400  // C gamma_5 = Gamma(5)
401  // Polarized:
402  // T_mixed = T = (1 + \Sigma_3)*(1 + gamma_4) / 2
403  // = (1 + Gamma(8) - i G(3) - i G(11)) / 2
404  b_prop = Baryon2PtContractions::lambda2pt(quark_propagator_1, quark_propagator_2,
405  T_mixed, Cg5);
406  break;
407 
408  case 2:
409  // Sigma^{*+}_1
410  // |S*_1, s_z=3/2> = 2*(s C gamma_- u) "u_up" + (u C gamma_- u) "s_up"
411  // Polarized:
412  // T_mixed = T = (1 + \Sigma_3)*(1 + gamma_4) / 2
413  // = (1 + Gamma(8) - i G(3) - i G(11)) / 2
414  b_prop = Baryon2PtContractions::sigmast2pt(quark_propagator_1, quark_propagator_2,
415  T_mixed, BaryonSpinMats::Cgm());
416  break;
417 
418  case 3:
419  // Sigma^+_2; use also for Lambda_2!
420  // |S_2, s_z=1/2> = (s C gamma_4 gamma_5 u) "u_up"
421  // C gamma_5 gamma_4 = - Gamma(13)
422  // Polarized:
423  // T_mixed = T = (1 + \Sigma_3)*(1 + gamma_4) / 2
424  // = (1 + Gamma(8) - i G(3) - i G(11)) / 2
425  b_prop = Baryon2PtContractions::sigma2pt(quark_propagator_1, quark_propagator_2,
426  T_mixed, Cg5g4);
427  break;
428 
429  case 4:
430  // Lambda_2
431  // |L_2, s_z=1/2> = 2*(u C gamma_4 gamma_5 d) "s_up"
432  // + (s C gamma_4 gamma_5 d) "u_up"
433  // + (u C gamma_4 gamma_5 s) "d_up"
434  // Polarized:
435  // T_mixed = T = (1 + \Sigma_3)*(1 + gamma_4) / 2
436  // = (1 + Gamma(8) - i G(3) - i G(11)) / 2
437  b_prop = Baryon2PtContractions::lambda2pt(quark_propagator_1, quark_propagator_2,
438  T_mixed, Cg5g4);
439  break;
440 
441  case 5:
442  // Sigma^{*+}_2
443  // |S*_2, s_z=3/2> = 2*(s C gamma_4 gamma_- u) "u_up" + (u C gamma_4 gamma_- u) "s_up"
444  // Polarized:
445  // T_mixed = T = (1 + \Sigma_3)*(1 + gamma_4) / 2
446  // = (1 + Gamma(8) - i G(3) - i G(11)) / 2
447  b_prop = Baryon2PtContractions::sigmast2pt(quark_propagator_1, quark_propagator_2,
448  T_mixed, BaryonSpinMats::Cg4m());
449  break;
450 
451  case 6:
452  // Sigma^+_3; use also for Lambda_3!
453  // |S_3, s_z=1/2> = (s C (1/2)(1 + gamma_4) gamma_5 u) "u_up"
454  // C gamma_5 gamma_4 = - Gamma(13)
455  // Polarized:
456  // T_mixed = T = (1 + \Sigma_3)*(1 + gamma_4) / 2
457  // = (1 + Gamma(8) - i G(3) - i G(11)) / 2
458  b_prop = Baryon2PtContractions::sigma2pt(quark_propagator_1, quark_propagator_2,
459  T_mixed, Cg5NR);
460  break;
461 
462  case 7:
463  // Lambda_3
464  // |L_3, s_z=1/2> = 2*(u C (1/2)(1 + gamma_4) gamma_5 d) "s_up"
465  // + (s C (1/2)(1 + gamma_4) gamma_5 d) "u_up"
466  // + (u C (1/2)(1 + gamma_4) gamma_5 s) "d_up"
467  // Polarized:
468  // T_mixed = T = (1 + \Sigma_3)*(1 + gamma_4) / 2
469  // = (1 + Gamma(8) - i G(3) - i G(11)) / 2
470  b_prop = Baryon2PtContractions::lambda2pt(quark_propagator_1, quark_propagator_2,
471  T_mixed, Cg5NR);
472  break;
473 
474  case 8:
475  // Sigma^{*+}_3
476  // |S*_3, s_z=3/2> = 2*(s C (1/2)(1+gamma_4) gamma_- u) "u_up"
477  // + (u C (1/2)(1+gamma_4) gamma_- u) "s_up"
478  // Polarized:
479  // T_mixed = T = (1 + \Sigma_3)*(1 + gamma_4) / 2
480  // = (1 + Gamma(8) - i G(3) - i G(11)) / 2
481  // Arrgh, goofy CgmNR normalization again from szin code.
482  b_prop = Baryon2PtContractions::sigmast2pt(quark_propagator_1, quark_propagator_2,
483  T_mixed, BaryonSpinMats::CgmNR());
484 
485  // Agghh, we have a goofy factor of 4 normalization factor here. The
486  // ancient szin way didn't care about norms, so it happily made it
487  // 4 times too big. There is a missing 0.5 in the NR normalization
488  // in the old szin code.
489  // So, we compensate to keep the same normalization
490  b_prop *= 4.0;
491  break;
492 
493 
494  case 9:
495  // Sigma^+_4 -- but unpolarised
496  // |S_4, s_z=1/2> = (s C gamma_5 u) "u_up", see comments at top
497  // C gamma_5 = Gamma(5)
498  // Unpolarized:
499  // T_unpol = T = (1/2)(1 + gamma_4)
500  b_prop = Baryon2PtContractions::sigma2pt(quark_propagator_1, quark_propagator_2,
501  T_unpol, Cg5);
502  break;
503 
504  case 10:
505  // Sigma^+_5
506  // |S_5, s_z=1/2> = (s C gamma_4 gamma_5 u) "u_up", see comments at top
507  // C gamma_5 gamma_4 = - Gamma(13)
508  // Unpolarized:
509  // T_unpol = T = (1/2)(1 + gamma_4)
510  b_prop = Baryon2PtContractions::sigma2pt(quark_propagator_1, quark_propagator_2,
511  T_unpol, Cg5g4);
512  break;
513 
514  case 11:
515  // Sigma^+_6
516  // |S_6, s_z=1/2> = (s C (1/2)(1 + gamma_4) gamma_5 u) "u_up", see comments at top
517  // C gamma_5 = Gamma(5)
518  // Unpolarized:
519  // T_unpol = T = (1/2)(1 + gamma_4)
520  b_prop = Baryon2PtContractions::sigma2pt(quark_propagator_1, quark_propagator_2,
521  T_unpol, Cg5NR);
522  break;
523 
524  case 12:
525  // Lambda_4 : naive Lambda interpolating field
526  // |L_4 > = (d C gamma_5 u) s
527  // C gamma_5 = Gamma(5)
528  // UnPolarized:
529  // T_unpol = T = (1/2)(1 + gamma_4)
530  b_prop = Baryon2PtContractions::lambdaNaive2pt(quark_propagator_1, quark_propagator_2,
531  T_unpol, Cg5);
532  break;
533 
534  case 13:
535  // Xi_1
536  // |X_1 > = (s C gamma_5 u) s
537  // C gamma_5 = Gamma(5)
538  // UnPolarized:
539  // T_unpol = T = (1/2)(1 + gamma_4)
540  b_prop = Baryon2PtContractions::xi2pt(quark_propagator_1, quark_propagator_2,
541  T_unpol, Cg5);
542  break;
543 
544  case 14:
545  // Lambda_5 : naive Lambda interpolating field
546  // |L_5 > = (d C gamma_5 u) "s_up"
547  // C gamma_5 = Gamma(5)
548  // UnPolarized:
549  // T_mixed = T = (1 + \Sigma_3)*(1 + gamma_4) / 2
550  // = (1 + Gamma(8) - i G(3) - i G(11)) / 2
551  b_prop = Baryon2PtContractions::lambdaNaive2pt(quark_propagator_1, quark_propagator_2,
552  T_unpol, Cg5);
553  break;
554 
555  case 15:
556  // Xi_2
557  // |X_2 > = (s C gamma_5 u) "s_up"
558  // C gamma_5 = Gamma(5)
559  // UnPolarized:
560  // T_mixed = T = (1 + \Sigma_3)*(1 + gamma_4) / 2
561  // = (1 + Gamma(8) - i G(3) - i G(11)) / 2
562  b_prop = Baryon2PtContractions::xi2pt(quark_propagator_1, quark_propagator_2,
563  T_mixed, Cg5);
564  break;
565 
566  case 16:
567  // Proton_negpar_3; use also for Lambda_negpar_3!
568  // |P_7, s_z=1/2> = (d C gamma_5 (1/2)(1 - g_4) u) "u_up", see comments at top
569  // C g_5 NR negpar = (1/2)*C gamma_5 * ( 1 - g_4 )
570  // T = (1 + \Sigma_3)*(1 - gamma_4) / 2
571  // = (1 - Gamma(8) + i G(3) - i G(11)) / 2
572  b_prop = Baryon2PtContractions::sigma2pt(quark_propagator_1, quark_propagator_2,
575  break;
576 
577  default:
578  QDP_error_exit("Unknown baryon", baryons);
579  }
580 
581  // Project onto zero and if desired non-zero momentum
582  multi2d<DComplex> hsum;
583  hsum = phases.sft(b_prop);
584 
585  for(int sink_mom_num=0; sink_mom_num < num_mom; ++sink_mom_num)
586  for(int t = 0; t < length; ++t)
587  {
588  // NOTE: there is NO 1/2 multiplying hsum
589  barprop[baryons][sink_mom_num][t] = hsum[sink_mom_num][t];
590  }
591 
592  } // end loop over baryons
593 
594  END_CODE();
595  }
596 
597 } // end namespace Chroma
598 
599 
Heavy-light baryon 2-pt functions.
Baryon spin and projector matrices.
Fourier transform phase factor support.
Definition: sftmom.h:35
int numSubsets() const
Number of subsets - length in decay direction.
Definition: sftmom.h:63
multi1d< int > numToMom(int mom_num) const
Convert momenta id to actual array of momenta.
Definition: sftmom.h:78
multi2d< DComplex > sft(const LatticeComplex &cf) const
Do a sumMulti(cf*phases,getSet())
Definition: sftmom.cc:524
int numMom() const
Number of momenta.
Definition: sftmom.h:60
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams &param)
Writer parameters.
LatticeComplex lambdaNaive2pt(const LatticePropagator &quark_propagator_1, const LatticePropagator &quark_propagator_2, const SpinMatrix &T, const SpinMatrix &sp)
Lambda 2-pt.
Definition: barhqlq_w.cc:74
void barhqlq(const LatticePropagator &propagator_1, const LatticePropagator &propagator_2, const SftMom &phases, int t0, int bc_spec, bool time_rev, XMLWriter &xml, const std::string &xml_group)
Heavy-light baryon 2-pt functions.
Definition: barhqlq_w.cc:170
LatticeComplex lambda2pt(const LatticePropagator &quark_propagator_1, const LatticePropagator &quark_propagator_2, const SpinMatrix &T, const SpinMatrix &sp)
Lambda 2-pt.
Definition: barhqlq_w.cc:50
LatticeComplex sigma2pt(const LatticePropagator &quark_propagator_1, const LatticePropagator &quark_propagator_2, const SpinMatrix &T, const SpinMatrix &sp)
Sigma 2-pt.
Definition: barhqlq_w.cc:18
LatticeComplex xi2pt(const LatticePropagator &quark_propagator_1, const LatticePropagator &quark_propagator_2, const SpinMatrix &T, const SpinMatrix &sp)
Cascade 2-pt.
Definition: barhqlq_w.cc:34
LatticeComplex sigmast2pt(const LatticePropagator &quark_propagator_1, const LatticePropagator &quark_propagator_2, const SpinMatrix &T, const SpinMatrix &sp)
Delta 2-pt.
Definition: barhqlq_w.cc:89
int bc_spec
int t
Definition: meslate.cc:37
SpinMatrix Cg4m()
C gamma_4 gamma_- = Cg4m.
SpinMatrix Tmixed()
T = (1 + \Sigma_3)*(1 + gamma_4) / 2 = (1 + Gamma(8) - i G(3) - i G(11)) / 2.
SpinMatrix Tunpol()
T = (1 + gamma_4) / 2 = (1 + Gamma(8)) / 2.
SpinMatrix Cg5NRnegPar()
C g_5 NR = (1/2)*C gamma_5 * ( 1 - g_4 )
SpinMatrix Cgm()
C gamma_- = Cgm = (C gamma_-)^T.
SpinMatrix TmixedNegPar()
T = (1 - \Sigma_3)*(1 - gamma_4) / 2 = (1 - Gamma(8) + i G(3) - i G(11)) / 2.
SpinMatrix CgmNR()
C gamma_- NR = CgmNR = C gamma_- (1/2)(1 + gamma_4)
SpinMatrix Cg5()
C g_5 = C gamma_5 = Gamma(5)
SpinMatrix Cg5NR()
C g_5 NR = (1/2)*C gamma_5 * ( 1 + g_4 )
SpinMatrix Cg5g4()
C gamma_5 gamma_4 = - Gamma(13)
Definition: barspinmat_w.cc:42
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
QDP_error_exit("too many BiCG iterations", n_count, rsd_sq, cp, c, re_rvr, im_rvr, re_a, im_a, re_b, im_b)
push(xml_out,"Condensates")
LinOpSysSolverMGProtoClover::T T
pop(xml_out)
START_CODE()
::std::string string
Definition: gtest.h:1979
SpinMatrix sp