66 XMLReader paramtop(xml, path);
69 read(paramtop,
"version", version);
77 QDPIO::cerr << __func__ <<
": parameter version " << version
78 <<
" unsupported." << std::endl;
85 if(paramtop.count(
"min_contractions") !=0 )
89 if(paramtop.count(
"parity") !=0 )
104 write(xml,
"version", version);
119 std::list< Handle<HadronContractResult_t> >
126 QDPIO::cout <<
"Hadron2Pt: Delta" << std::endl;
136 const LatticePropagator& quark_prop1 =
138 const LatticePropagator& quark_prop2 =
144 sft_params.origin_offset =
t_srce;
147 sft_params.decay_dir = decay_dir;
149 std::list< Handle<Hadron2PtContract_t> > hadron;
150 std::map<std::string,SpinMatrix> Projector ;
151 std::map<std::string,SpinMatrix> Parity ;
152 multi1d<SpinMatrix> SrcDiQuark(Ns) ;
153 multi1d<SpinMatrix> SnkDiQuark(Ns) ;
161 for(
int mu(0);
mu<Ns ;
mu++)
163 for(
int mu(0);
mu<Ns ;
mu++)
170 std::map<std::string,SpinMatrix>::iterator par;
171 std::map<std::string,SpinMatrix>::iterator proj;
172 for ( par=Parity.begin();par != Parity.end(); par++){
173 for ( proj=Projector.begin();proj != Projector.end(); proj++){
174 SpinMatrix
T = par->second * proj->second ;
175 QDPIO::cout<<
" Parity: "<<par->first<<std::endl;
176 QDPIO::cout<<
" Projector: "<<proj->first<<std::endl;
177 for(
int src(0) ;src<Ns;src++)
178 for(
int snk(0) ;snk<Ns;snk++){
179 QDPIO::cout<<
" Computing C_"<<snk<<src<<std::endl;
186 push(had->xml, xml_group);
187 write(had->xml, id_tag,
"delta");
188 write(had->xml,
"SrcDiQuark", src);
189 write(had->xml,
"SnkDiQuark", snk);
190 write(had->xml,
"Parity", par->first);
191 write(had->xml,
"Projector", proj->first);
196 hadron.push_back(had);
203 SpinMatrix g_one = 1.0 ;
204 multi1d< multi1d<SpinMatrix> > ProjGmuGnu(Ns-1) ;
205 for(
int s1(0);s1<Ns-1;s1++){
206 ProjGmuGnu[s1].resize(Ns-1) ;
207 for(
int s2(0);s2<Ns-1;s2++)
208 ProjGmuGnu[s1][s2] = Gamma(1<<s1) * (Gamma(1<<s2)*g_one) ;
211 for ( par=Parity.begin();par != Parity.end(); par++){
214 for(
int src(0) ;src<Ns-1;src++)
215 for(
int snk(0) ;snk<Ns-1;snk++){
216 QDPIO::cout<<
" Computing C_"<<snk<<src<<std::endl;
217 SpinMatrix
T = (- 1.0/3.0) * ProjGmuGnu[src][snk] ;
218 if(src == snk )
T += g_one ;
219 T = par->second *
T ;
225 push(had->xml, xml_group);
226 write(had->xml, id_tag,
"delta");
227 write(had->xml,
"Parity", par->first);
228 write(had->xml,
"Projector",
"SpinAveraged");
232 hadron.push_back(had);
243 std::map<std::string,SpinMatrix>::iterator proj;
252 QDPIO::cout<<
"Parity flag is"<<
params.
parity<<std::endl;
253 for ( proj=Projector.begin();proj != Projector.end(); proj++){
254 SpinMatrix
T = par * proj->second ;
256 QDPIO::cout<<
" Projector: "<<proj->first<<std::endl;
257 if((proj->first)==
"SigmaPlus"||(proj->first)==
"SigmaMinus"){
258 for(
int src(0) ;src<Ns-1;src++)
259 for(
int snk(0) ;snk<Ns-1;snk++){
260 if((src!=snk) && ((src==2)||(snk==2)) ){
261 QDPIO::cout<<
" Computing C_"<<snk<<src<<std::endl;
270 push(had->xml, xml_group);
271 write(had->xml, id_tag,
"delta");
272 write(had->xml,
"SrcDiQuark", src);
273 write(had->xml,
"SnkDiQuark", snk);
274 write(had->xml,
"Parity",
"PosPar");
275 write(had->xml,
"Projector", proj->first);
280 hadron.push_back(had);
285 for(
int src(0) ;src<Ns-1;src++)
286 for(
int snk(0) ;snk<Ns-1;snk++){
287 QDPIO::cout<<
" Computing C_"<<snk<<src<<std::endl;
296 push(had->xml, xml_group);
297 write(had->xml, id_tag,
"delta");
298 write(had->xml,
"SrcDiQuark", src);
299 write(had->xml,
"SnkDiQuark", snk);
300 write(had->xml,
"Parity",
"PosPar");
301 write(had->xml,
"Projector", proj->first);
306 hadron.push_back(had);
319 std::map<std::string,SpinMatrix>::iterator par;
320 std::map<std::string,SpinMatrix>::iterator proj;
321 for ( par=Parity.begin();par != Parity.end(); par++){
322 for ( proj=Projector.begin();proj != Projector.end(); proj++){
323 SpinMatrix
T = par->second * proj->second ;
324 QDPIO::cout<<
" Parity: "<<par->first<<std::endl;
325 QDPIO::cout<<
" Projector: "<<proj->first<<std::endl;
326 if((proj->first)==
"SigmaPlus"||(proj->first)==
"SigmaMinus"){
327 for(
int src(0) ;src<Ns-1;src++)
328 for(
int snk(0) ;snk<Ns-1;snk++){
329 if((src!=snk) && ((src==2)||(snk==2)) ){
330 QDPIO::cout<<
" Computing C_"<<snk<<src<<std::endl;
339 push(had->xml, xml_group);
340 write(had->xml, id_tag,
"delta");
341 write(had->xml,
"SrcDiQuark", src);
342 write(had->xml,
"SnkDiQuark", snk);
343 write(had->xml,
"Parity", par->first);
344 write(had->xml,
"Projector", proj->first);
348 hadron.push_back(had);
353 for(
int src(0) ;src<Ns-1;src++)
354 for(
int snk(0) ;snk<Ns-1;snk++){
355 QDPIO::cout<<
" Computing C_"<<snk<<src<<std::endl;
364 push(had->xml, xml_group);
365 write(had->xml, id_tag,
"delta");
366 write(had->xml,
"SrcDiQuark", src);
367 write(had->xml,
"SnkDiQuark", snk);
368 write(had->xml,
"Parity", par->first);
369 write(had->xml,
"Projector", proj->first);
374 hadron.push_back(had);
384 return this->
project(hadron, sft_params);
Heavy-light baryon 2-pt functions.
Baryon spin and projector matrices.
Decuplet baryon 2pt construction.
std::list< Handle< HadronContractResult_t > > operator()(const multi1d< LatticeColorMatrix > &u, const std::string &xml_group, const std::string &id_tag)
Construct the correlators.
virtual std::list< Handle< HadronContractResult_t > > project(const std::list< Handle< Hadron2PtContract_t > > &had_list, const SftMomParams_t &p) const
Convenience function to project onto fixed momenta.
Construct hadron correlators.
virtual multi1d< int > getTSrce(const multi1d< ForwardProp_t > &forward_headers) const
Convenience function to get t_srce from headers.
virtual ForwardProp_t readForwardPropHeader(const std::string &prop_id) const
Convenience function to read propagator.
virtual int getDecayDir(const multi1d< ForwardProp_t > &forward_headers) const
Convenience function to get decay_dir from headers.
Class for counted reference semantics.
Construct delta 2pt correlators.
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams ¶m)
Read parameters.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
LatticeComplex sigmast2pt(const LatticePropagator &quark_propagator_1, const LatticePropagator &quark_propagator_2, const SpinMatrix &T, const SpinMatrix &sp)
Delta 2-pt.
Factory for producing hadron correlator objects.
Named object function std::map.
static bool registered
Local registration flag.
SpinMatrix T_ig5XpiY()
T = i \gamma_5 (\gamma_1 + i \gamma_2 )
SpinMatrix Tunpol()
T = (1 + gamma_4) / 2 = (1 + Gamma(8)) / 2.
SpinMatrix Cgmu(int k)
C g_\mu = \gamma_4 \gamma_2 \gamma_\mu.
SpinMatrix TunpolNegPar()
T = (1 + gamma_4) / 2 = (1 - Gamma(8)) / 2.
SpinMatrix T_ig5XmiY()
T = i \gamma_5 (\gamma_1 - i \gamma_2 )
SpinMatrix TspinDown()
T = (1 - i \gamma_5 \gamma_3 )/2 = 1/2 *( 1 + iG(11) )
SpinMatrix TspinUp()
T = (1 + i \gamma_5 \gamma_3 )/2 = 1/2 *( 1 - iG(11) )
SpinMatrix CgmuTrans(int k)
C g_\mu = \gamma_4 \gamma_2 transpose(\gamma_\mu)
bool registerAll()
Register all the factories.
multi1d< ForwardProp_t > & forward_headers
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
push(xml_out,"Condensates")
LinOpSysSolverMGProtoClover::T T
Simple meson 2pt parameters.
void writeXML(XMLWriter &in, const std::string &path) const
multi1d< int > mom_origin
The result of hadron 2pt correlators.