CHROMA
inline_heavy_light_cont_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Inline heavy light contractions for weak three and four point functions
4  *
5  * Heavy light contractions for weak three and four point functions
6  */
7 
8 #ifndef __inline_heavy_light_cont_h__
9 #define __inline_heavy_light_cont_h__
10 
11 #include "chromabase.h"
13 
14 namespace Chroma
15 {
16  /*! \ingroup inlinehadron */
17  namespace InlineHeavyLightContEnv
18  {
19  extern const std::string name;
20  bool registerAll();
21  }
22 
23  //! Parameter structure
24  /*! \ingroup inlinehadron */
26  {
28  InlineHeavyLightContParams(XMLReader& xml_in, const std::string& path);
29  void write(XMLWriter& xml_out, const std::string& path);
30 
31  unsigned long frequency;
32 
33  struct Param_t
34  {
35 
36 
37  bool MesonP; // Do Meson Spect.
38  bool FourPt; // Calculate four-point function in addition to 3pt
39  } param;
40 
42  {
43  std::string gauge_id; /*!< Input gauge field */
44 
45  struct Props_t
46  {
47  std::string first_id; // Light quark 1
48  std::string second_id; // Light quark 2
49  std::string third_id; //This is the spect. quark and is ignored if FourPt==false
50 
51  // Following are optional arguments...if not input, static quarks are used.
52  std::string heavy_id1; // Heavy quark 1
53  std::string heavy_id2; // Heavy quark 2
54  };
55 
56  multi1d<Props_t> sink_pairs;
58 
59  std::string xml_file; // Alternate XML file pattern
60  };
61 
62 
63  //! Inline measurement of heavy-light quark spectroscopy
64  /*! \ingroup inlinehadron */
66  {
67  public:
71 
72  unsigned long getFrequency(void) const {return params.frequency;}
73 
74  //! Do the measurement
75  void operator()(const unsigned long update_no,
76  XMLWriter& xml_out);
77 
78  protected:
79  //! Do the measurement
80  void func(const unsigned long update_no,
81  XMLWriter& xml_out);
82 
83  private:
85  };
86 
87 }
88 
89 #endif
Abstract inline measurements.
Primary include file for CHROMA library code.
Inline measurement of heavy-light quark spectroscopy.
InlineHeavyLightCont(const InlineHeavyLightCont &p)
InlineHeavyLightCont(const InlineHeavyLightContParams &p)
void func(const unsigned long update_no, XMLWriter &xml_out)
Do the measurement.
unsigned long getFrequency(void) const
Tell me how often I should measure this beastie.
void operator()(const unsigned long update_no, XMLWriter &xml_out)
Do the measurement.
InlineHeavyLightContParams params
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
::std::string string
Definition: gtest.h:1979
struct Chroma::InlineHeavyLightContParams::NamedObject_t named_obj
struct Chroma::InlineHeavyLightContParams::Param_t param
void write(XMLWriter &xml_out, const std::string &path)