CHROMA
key_hadron_3pt_corr.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Hadron 3pt correlators
4  */
5 
6 #ifndef __key_hadron_3pt_corr_h__
7 #define __key_hadron_3pt_corr_h__
8 
9 #include "chromabase.h"
10 
11 namespace Chroma
12 {
13 
14  //----------------------------------------------------------------------------
15  //! Hold momenta
16  /*! \ingroup ferm */
17  struct PiPf
18  {
19  multi1d<int> p_i; /*!< Source momentum */
20  multi1d<int> p_f; /*!< Sink momentum */
21  };
22 
23  //! Reader
24  /*! \ingroup ferm */
25  void read(XMLReader& xml, const std::string& path, PiPf& val);
26 
27  //! Writer
28  /*! \ingroup ferm */
29  void write(XMLWriter& xml, const std::string& path, const PiPf& val);
30 
31 
32  //----------------------------------------------------------------------------
33  //! Key for Hadron 3pt corr
34  /*! \ingroup ferm */
36  {
37  int num_vecs; /*!< Number of vectors used in this corr */
38 
39  PiPf pi_pf; /*!< Source and sink momenta */
40  int gamma; /*!< Gamma matrix index (0 .. 15). In DP basis */
41  multi1d<int> links; /*!< Gauge link insertions */
42 
43  int dt; /*!< Source-sink separation */
44  int quark; /*!< Some number indicating which quark line */
45 
46  std::string src_name; /*!< Some std::string label for the operator */
47  std::string src_smear; /*!< Some std::string label for the smearing of this operator */
48  multi1d<int> src_lorentz; /*!< Source Lorentz indices */
49  int src_spin; /*!< Source Dirac spin indices */
50 
51  std::string snk_name; /*!< Some std::string label for the operator */
52  std::string snk_smear; /*!< Some std::string label for the smearing of this operator */
53  multi1d<int> snk_lorentz; /*!< Sink Lorentz indices */
54  int snk_spin; /*!< Sink Dirac spin indices */
55 
56  std::string mass; /*!< Some std::string label for the mass(es) in the corr */
57  std::string ensemble; /*!< Label for the ensemble */
58  };
59 
60  //----------------------------------------------------------------------------
61  //! Used for error output
62 // std::ostream& operator<<(std::ostream& os, const KeyHadron3PtCorr_t& d);
63 
64  //----------------------------------------------------------------------------
65  //! KeyHadron3PtCorr reader
66  /*! \ingroup ferm */
67  void read(XMLReader& xml, const std::string& path, KeyHadron3PtCorr_t& param);
68 
69  //! KeyHadron3PtCorr writer
70  /*! \ingroup ferm */
71  void write(XMLWriter& xml, const std::string& path, const KeyHadron3PtCorr_t& param);
72 
73  //----------------------------------------------------------------------------
74  //! KeyHadron3PtCorr reader
75  /*! \ingroup ferm */
76  void read(BinaryReader& bin, KeyHadron3PtCorr_t& param);
77 
78  //! KeyHadron3PtCorr writer
79  /*! \ingroup ferm */
80  void write(BinaryWriter& bin, const KeyHadron3PtCorr_t& param);
81 
82 } // namespace ColorVec
83 
84 #endif
Primary include file for CHROMA library code.
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams &param)
Read parameters.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams &param)
Writer parameters.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
::std::string string
Definition: gtest.h:1979
Key for Hadron 3pt corr.
Hold momenta.
multi1d< int > p_i
multi1d< int > p_f