Hardcoded EWSB in FeynArts output

Report the bugs you found
Post Reply
JPEllis
Posts: 71
Joined: 28. Apr 2016, 10:34

Hardcoded EWSB in FeynArts output

Post by JPEllis » 27. Feb 2018, 08:48

Hi,

The code to generate the FeynArts output has (in some places) a hardcoded reference to the EWSB eigenstate which is in contradiction to the possibility of specifying a separate eigenstate.

The following patch appears to fix it for me:

Code: Select all

From 4af779fe0e7a560cb9419c907f00432880ddc7b5 Mon Sep 17 00:00:00 2001
From: JP-Ellis <josh@jpellis.me>
Date: Tue, 27 Feb 2018 18:28:49 +1100
Subject: [PATCH] [feynarts] Fix hardcoded reference to EWSB eigenstate

Signed-off-by: JP-Ellis <josh@jpellis.me>
---
 Package/Outputs/feynarts.m | 32 ++++++++++++++++++--------------
 1 file changed, 18 insertions(+), 14 deletions(-)

diff --git a/Package/Outputs/feynarts.m b/Package/Outputs/feynarts.m
index 2de5933..ad2b124 100755
--- a/Package/Outputs/feynarts.m
+++ b/Package/Outputs/feynarts.m
@@ -58,9 +58,13 @@ subGenInd={};
 Message[ModelFile::NoVertices];,
 *)
 
-If[FreeQ[NameOfStates,InitalizedVertexCalculaton]==True,
-Print["Have to calculate the vertices first..."];
-If[eigS===FinalStates,ModelOutput[Last[NameOfStates]];,ModelOutput[eigS];];
+If[eigS===FinalStates,
+   eigS = Last[NameOfStates];
+];
+If[
+  FreeQ[NameOfStates, InitalizedVertexCalculaton] == True,
+  Print["Have to calculate the vertices first..."];
+  ModelOutput[eigS];
 ];
 
 ClearAttributes[C,Orderless];
@@ -83,7 +87,7 @@ InitTrig;
 
 CreateClassesFA[False];
 FeynArtsVertices[AddCounterT];
-WriteModelFA[AddCounterT];
+WriteModelFA[AddCounterT, eigS];
 
 Print[""];
 
@@ -791,7 +795,7 @@ M$CouplingMatrices=ReleaseHold[M$CouplingMatrices /.sum[a_,b_,c_,d_]->IndexSum[d
 ];
 
 
-WriteModelFA[addCT_]:= Block[{Minutes,iii,i},
+WriteModelFA[addCT_, eigS_]:= Block[{Minutes,iii,i},
 
 Print["Write Model-File"];
 
@@ -919,17 +923,17 @@ WriteString[outputfile,"(* Fermion WV renormalisation constants *)\n"];
 For[iii=1,iii<=Length[PART[F]],
 If[FreeQ[MajoranaPart,PART[F][[iii,1]]],
 If[getGen[PART[F][[iii,1]]]===1,
-WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[EWSB])[[1]]],1,1]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a]]<>"][[1]] \n"];
-WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[EWSB])[[2]]],1,1]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a]]<>"][[2]] \n"];,
-WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[EWSB])[[1]]],i1_,i1_]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i1}]]<>"][[1]] \n"];
-WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[EWSB])[[2]]],i1_,i1_]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i1}]]<>"][[2]] \n"];
-WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[EWSB])[[1]]],i2_,i1_]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i1}]]<>","<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i2}]]<>"][[1]] \n"];
-WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[EWSB])[[2]]],i2_,i1_]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i1}]]<>""<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i1}]]<>"][[2]] \n"];
+WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[eigS])[[1]]],1,1]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a]]<>"][[1]] \n"];
+WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[eigS])[[2]]],1,1]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a]]<>"][[2]] \n"];,
+WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[eigS])[[1]]],i1_,i1_]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i1}]]<>"][[1]] \n"];
+WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[eigS])[[2]]],i1_,i1_]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i1}]]<>"][[2]] \n"];
+WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[eigS])[[1]]],i2_,i1_]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i1}]]<>","<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i2}]]<>"][[1]] \n"];
+WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[eigS])[[2]]],i2_,i1_]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i1}]]<>""<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i1}]]<>"][[2]] \n"];
 ];,
 If[getGen[PART[F][[iii,1]]]===1,
-WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[EWSB])[[1]]],1,1]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a]]<>"][[1]] \n"];,
-WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[EWSB])[[1]]],i1_,i1_]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i1}]]<>"][[1]] \n"];
-WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[EWSB])[[1]]],i1_,i2_]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i1}]]<>","<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i2}]]<>"][[1]] \n"];
+WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[eigS])[[1]]],1,1]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a]]<>"][[1]] \n"];,
+WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[eigS])[[1]]],i1_,i1_]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i1}]]<>"][[1]] \n"];
+WriteString[outputfile,"RenConst["<>ToString[FA`Zf[RE[(PART[F][[iii,1]]/. diracSub[eigS])[[1]]],i1_,i2_]]<>"]:=FieldRC["<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i1}]]<>","<>ToString[getFull[PART[F][[iii,1]]] /. subFA /. F[a_,b__]->F[a,{i2}]]<>"][[1]] \n"];
 ];
 ];
 iii++;];
-- 
2.16.2

Josh
Joshua Ellis jpellis.me

Post Reply