Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
corr2pt_4spinor.h
Go to the documentation of this file.
1 
14 #ifndef CORR2PT_4SPINOR_INCLUDED
15 #define CORR2PT_4SPINOR_INCLUDED
16 
17 #include <valarray>
18 #include "defs.h"
19 #include "commonParameters.h"
20 #include "index_lex.h"
21 #include "field_F.h"
22 #include "gammaMatrix.h"
23 #include "gammaMatrixSet.h"
24 #include "contract_4spinor.h"
25 #include "bridge_complex.h"
26 #include "bridgeIO.h"
27 
29 
40 {
41  protected:
43 
44  private:
47  std::valarray<int> m_epsilon_index;
49 
50  public:
51 
53  : m_vl(CommonParameters::Vlevel()), m_gmset(gmset)
54  {
55  setup();
56  }
57 
59 
60  double meson_all(
61  const std::valarray<Field_F>& sq1,
62  const std::valarray<Field_F>& sq2);
63 
64  void meson_corr(
65  std::valarray<dcomplex>& meson,
66  const GammaMatrix& gm_sink,
67  const GammaMatrix& gm_src,
68  const std::valarray<Field_F>& sq1,
69  const std::valarray<Field_F>& sq2);
70 
71  double proton_test(
72  const std::valarray<Field_F>& squ,
73  const std::valarray<Field_F>& sqd);
74 
75  void proton_corr(
76  std::valarray<dcomplex>& proton,
77  const GammaMatrix& gm,
78  const std::valarray<Field_F>& squ,
79  const std::valarray<Field_F>& sqd);
80 
81  private:
82 
83  void setup();
84 
86  int epsilon_index(int i, int n)
87  {
88  return m_epsilon_index[i + 3 * n];
89  }
90 
92  double epsilon_value(int n)
93  {
94  return 1.0 - 2.0 * (n / 3);
95  }
96 
98  void global_corr_t(std::valarray<dcomplex>& corr_global,
99  std::valarray<dcomplex>& corr_local);
100 };
101 #endif