00001
00002 #include <chromabase.h>
00003 #include "meas/eig/eig_w.h"
00004
00005 namespace Chroma {
00006
00007 Chirality isChiralVector(const LatticeFermion& chi)
00008 {
00009
00010 Chirality ret_val;
00011
00012 Real chi_sq = Real(norm2(chi));
00013
00014
00015
00016 Real chirality = real(sum(innerProduct(chi,Gamma(Ns*Ns-1)*chi,all)));
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 Real tmp1 = chi_sq - fabs(chirality);
00029
00030
00031
00032
00033 if ( toBool(tmp1 > fabs(chirality)*fuzz) ) {
00034 ret_val = CH_NONE;
00035 }
00036 else {
00037
00038
00039
00040
00041 if( toBool( chirality > 0 ) ) {
00042 ret_val = CH_PLUS;
00043 }
00044 else {
00045 ret_val = CH_MINUS;
00046 }
00047 }
00048
00049 return ret_val;
00050 }
00051
00052 }