CHROMA
photon_seqsrc_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Construct a photon sequential sources via LSZ reduction
4  */
5 
6 #ifndef __photon_seqsrc_w_h__
7 #define __photon_seqsrc_w_h__
8 
10 
11 namespace Chroma
12 {
13 
14  //! Name and registration
15  /*! @ingroup hadron */
16  namespace PhotonRhoSeqSourceEnv
17  {
18  bool registerAll();
19 
20 
21  //! Construct a photon sequential sources via LSZ reduction
22  /*! @ingroup hadron */
23  struct Params
24  {
25  Params();
26  Params(XMLReader& in, const std::string& path);
27  void writeXML(XMLWriter& in, const std::string& path) const;
28 
29  int pol_dir; /*!< Polarization direction */
30  int t_sink_start; /*!< time slice of sink (inclusive) to start integration */
31  int t_sink_end; /*!< time slice of sink (inclusive) to end integration */
32  Real Q_sq; /*!< Photon virtuality, \f$Q_f^2 = c^2|\vec{p_f}|^2 - \omega_f^2 */
33  Real c_sq; /*!< Photon speed of light */
34  Real xi; /*!< Renormalized anisotropy */
35 
36  multi1d<int> sink_mom; /*!< sink momentum */
37  int j_decay; /*!< Decay direction */
38 
39  int t_sink; /*!< will always be -1 here */
40  };
41 
42 
43  //! Construct a photon sequential sources via LSZ reduction
44  /*! @ingroup hadron
45  *
46  * Photon source via a rho
47  */
49  {
50  public:
51  //! Full constructor
53 
54  //! Construct the source
55  LatticePropagator operator()(const multi1d<LatticeColorMatrix>& u,
56  const multi1d<ForwardProp_t>& forward_headers,
57  const multi1d<LatticePropagator>& forward_props);
58 
59  //! Compute the 2-pt at the sink
60  Complex twoPtSink(const multi1d<LatticeColorMatrix>& u,
61  const multi1d<ForwardProp_t>& forward_headers,
62  const multi1d<LatticePropagator>& forward_props,
63  int gamma_insertion)
64  {
65  QDPIO::cerr << __func__ << ": not implemented" << std::endl;
66  QDP_abort(1);
67  Complex tmp; // Make Compiler happy
68  return tmp;
69  }
70 
71  protected:
72  //! Set t_srce
73  multi1d<int>& getTSrce() {return t_srce;}
74 
75  //! Get t_srce
76  const multi1d<int>& getTSrce() const {return t_srce;}
77 
78  //! Get t_sink
79  int getTSink() const {return params.t_sink;}
80 
81  //! Get sink_mom
82  const multi1d<int>& getSinkMom() const {return params.sink_mom;}
83 
84  //! Get decay_dir
85  int getDecayDir() const {return params.j_decay;}
86 
87  private:
88  multi1d<int> t_srce; /*<! Must come from propagator headers */
89  Params params; /*!< Seqsource params */
90  };
91 
92 
93 
94  //! Construct a photon sequential sources via LSZ reduction
95  /*! @ingroup hadron
96  *
97  * Photon source via a point-split rho
98  */
100  {
101  public:
102  //! Full constructor
104 
105  //! Construct the source
106  LatticePropagator operator()(const multi1d<LatticeColorMatrix>& u,
107  const multi1d<ForwardProp_t>& forward_headers,
108  const multi1d<LatticePropagator>& forward_props);
109 
110  //! Compute the 2-pt at the sink
111  Complex twoPtSink(const multi1d<LatticeColorMatrix>& u,
112  const multi1d<ForwardProp_t>& forward_headers,
113  const multi1d<LatticePropagator>& forward_props,
114  int gamma_insertion)
115  {
116  QDPIO::cerr << __func__ << ": not implemented" << std::endl;
117  QDP_abort(1);
118  Complex tmp; // Make Compiler happy
119  return tmp;
120  }
121 
122  protected:
123  //! Set t_srce
124  multi1d<int>& getTSrce() {return t_srce;}
125 
126  //! Get t_srce
127  const multi1d<int>& getTSrce() const {return t_srce;}
128 
129  //! Get t_sink
130  int getTSink() const {return params.t_sink;}
131 
132  //! Get sink_mom
133  const multi1d<int>& getSinkMom() const {return params.sink_mom;}
134 
135  //! Get decay_dir
136  int getDecayDir() const {return params.j_decay;}
137 
138  private:
139  multi1d<int> t_srce; /*<! Must come from propagator headers */
140  Params params; /*!< Seqsource params */
141  };
142 
143  } // end namespace
144 
145 
146  //! Reader
147  /*! @ingroup hadron */
148  void read(XMLReader& xml, const std::string& path, PhotonRhoSeqSourceEnv::Params& param);
149 
150  //! Writer
151  /*! @ingroup hadron */
152  void write(XMLWriter& xml, const std::string& path, const PhotonRhoSeqSourceEnv::Params& param);
153 
154 
155 } // end namespace Chroma
156 
157 #endif
Base class for meson sequential source construction.
Get decay_dir int getDecayDir() const
Get decay_dir.
Construct the source LatticePropagator operator()(const multi1d< LatticeColorMatrix > &u, const multi1d< ForwardProp_t > &forward_headers, const multi1d< LatticePropagator > &forward_props)
Construct the source.
Compute the pt at the sink Complex twoPtSink(const multi1d< LatticeColorMatrix > &u, const multi1d< ForwardProp_t > &forward_headers, const multi1d< LatticePropagator > &forward_props, int gamma_insertion)
Compute the 2-pt at the sink.
Get t_sink int getTSink() const
Get t_sink.
Set t_srce multi1d< int > & getTSrce()
Set t_srce.
Full constructor PhotonRhoSeqSource(const Params &p)
Get t_srce const multi1d< int > & getTSrce() const
Get t_srce.
Get sink_mom const multi1d< int > & getSinkMom() const
Get sink_mom.
Construct the source LatticePropagator operator()(const multi1d< LatticeColorMatrix > &u, const multi1d< ForwardProp_t > &forward_headers, const multi1d< LatticePropagator > &forward_props)
Construct the source.
Get t_srce const multi1d< int > & getTSrce() const
Get t_srce.
Set t_srce multi1d< int > & getTSrce()
Set t_srce.
Compute the pt at the sink Complex twoPtSink(const multi1d< LatticeColorMatrix > &u, const multi1d< ForwardProp_t > &forward_headers, const multi1d< LatticePropagator > &forward_props, int gamma_insertion)
Compute the 2-pt at the sink.
Full constructor PointSplitPhotonRhoSeqSource(const Params &p)
Get decay_dir int getDecayDir() const
Get decay_dir.
Get sink_mom const multi1d< int > & getSinkMom() const
Get sink_mom.
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.
int j_decay
Definition: meslate.cc:22
Construct meson sequential sources.
bool registerAll()
Register all the factories.
multi1d< ForwardProp_t > & forward_headers
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
static multi1d< LatticeColorMatrix > u
LatticeFermion tmp
Definition: mespbg5p_w.cc:36
static QDP_ColorVector * in
::std::string string
Definition: gtest.h:1979
Construct a photon sequential sources via LSZ reduction.
void writeXML(XMLWriter &in, const std::string &path) const