diff --git a/Grid/qcd/utils/BaryonUtils.h b/Grid/qcd/utils/BaryonUtils.h index 6c00a414..f049565b 100644 --- a/Grid/qcd/utils/BaryonUtils.h +++ b/Grid/qcd/utils/BaryonUtils.h @@ -187,8 +187,8 @@ void BaryonUtils::ContractBaryons(const PropagatorField &q1_src, Gamma g4(Gamma::Algebra::GammaT); //needed for parity P_\pm = 0.5*(1 \pm \gamma_4) - std::vector> epsilon = {{0,1,2},{1,2,0},{2,0,1},{0,2,1},{2,1,0},{1,0,2}}; - std::vector epsilon_sgn = {1,1,1,-1,-1,-1}; + static const int epsilon[6][3] = {{0,1,2},{1,2,0},{2,0,1},{0,2,1},{2,1,0},{1,0,2}}; + static const int epsilon_sgn[6]= {1,1,1,-1,-1,-1}; std::vector wick_contraction = {0,0,0,0,0,0}; for (int ie=0; ie < 6 ; ie++) @@ -214,10 +214,6 @@ void BaryonUtils::ContractBaryons(const PropagatorField &q1_src, vbaryon_corr[ss] = result; } );//end loop over lattice sites } -/*template -void BaryonUtils::ContractBaryons_Sliced(const T1 &D1, - const T2 &D2, - const T3 &D3,*/ template template void BaryonUtils::ContractBaryons_Sliced(const mobj &D1, @@ -235,8 +231,8 @@ void BaryonUtils::ContractBaryons_Sliced(const mobj &D1, Gamma g4(Gamma::Algebra::GammaT); //needed for parity P_\pm = 0.5*(1 \pm \gamma_4) - std::vector> epsilon = {{0,1,2},{1,2,0},{2,0,1},{0,2,1},{2,1,0},{1,0,2}}; - std::vector epsilon_sgn = {1,1,1,-1,-1,-1}; + static const int epsilon[6][3] = {{0,1,2},{1,2,0},{2,0,1},{0,2,1},{2,1,0},{1,0,2}}; + static const int epsilon_sgn[6]= {1,1,1,-1,-1,-1}; std::vector wick_contraction = {0,0,0,0,0,0}; for (int ie=0; ie < 6 ; ie++) diff --git a/Hadrons/Modules/MContraction/Baryon.hpp b/Hadrons/Modules/MContraction/Baryon.hpp index a228bfeb..6366f7d2 100644 --- a/Hadrons/Modules/MContraction/Baryon.hpp +++ b/Hadrons/Modules/MContraction/Baryon.hpp @@ -134,9 +134,6 @@ void TBaryon::execute(void) << par().q3_src << "') at the source and (Gamma^A,Gamma^B) = ( " << par().GammaA << " , " << par().GammaB << " ) and parity " << par().parity << "." << std::endl; - auto &q1_src = envGet(PropagatorField1, par().q1_src); - auto &q2_src = envGet(PropagatorField2, par().q2_src); - auto &q3_src = envGet(PropagatorField3, par().q3_src); envGetTmp(LatticeComplex, c); Result result; int nt = env().getDim(Tp); @@ -168,6 +165,9 @@ void TBaryon::execute(void) } else { + auto &q1_src = envGet(PropagatorField1, par().q1_src); + auto &q2_src = envGet(PropagatorField2, par().q2_src); + auto &q3_src = envGet(PropagatorField3, par().q3_src); std::string ns; ns = vm().getModuleNamespace(env().getObjectModule(par().sink));