2
2
Analytic.m
3
3
Translation of InsertFields output into
4
4
analytic expressions
5
- last modified 22 Mar 06 th
5
+ last modified 10 Jan 08 th
6
6
*)
7
7
8
8
Begin ["`Analytic`" ]
@@ -507,7 +507,7 @@ need another (-1)^(Length[ext]/2).
507
507
ins = ReplacePart [gm , sgen / s , - 1 ] /. {ru } /.
508
508
anti -> AntiParticle /.
509
509
app [ x_ . (fi :P$Generic )[n__ ], k__ ] :> x fi [n , k ];
510
- deltas = DeleteCases [ Union @@ Diagonal /@
510
+ deltas = DeleteCases [ Union @@ CouplingDeltas /@
511
511
Union [ Cases [ins , G [_ ][cto_ ][fi__ ][__ ] :> FieldPoint [cto ][fi ]] ],
512
512
_ Integer ];
513
513
ins = ins /. G -> GtoC /. Mass -> TheMass /. gaugeru /.
@@ -708,6 +708,7 @@ kinematical expression (for a G[-]). If neither method resolves TheC,
708
708
Range @@ Sort [Floor [{b , a }]] ]] ]
709
709
710
710
711
+ (*
711
712
DiagramSelect[ tops:TopologyList[info__][__], crit_ ] :=
712
713
Block[ {lev, Rule},
713
714
lev = ResolveLevel[InsertionLevel /. {info}][[-1]];
@@ -717,10 +718,33 @@ kinematical expression (for a G[-]). If neither method resolves TheC,
717
718
(Graph[__][__] -> _[]) :> Seq[] /.
718
719
(Topology[__][__] -> _[]) :> Seq[]
719
720
]
721
+ *)
722
+
723
+ DiagramSelect [ tops :TopologyList [info__ ][__ ], crit_ ] :=
724
+ Block [ {lev , Rule },
725
+ lev = ResolveLevel [InsertionLevel /. {info }][[- 1 ]];
726
+ Rule [_ ] := Sequence [];
727
+ Apply [ #1 -> (#2 /. Graph [__ , lev == _ ][fi__ ] :> Seq [] /;
728
+ crit [{fi }, #1 ] =!= True )& , tops , 1 ] /.
729
+ (Graph [__ ][__ ] -> _ []) :> Seq [] /.
730
+ (Topology [__ ][__ ] -> _ []) :> Seq []
731
+ ]
720
732
721
733
DiagramSelect [ amp_ , crit_ ] := Select [amp , crit ]
722
734
723
735
736
+ Attributes [prop ] = {Orderless }
737
+
738
+ Attributes [merge ] = {Flat , Orderless }
739
+
740
+ merge [ prop [i_ , j_ ], prop [j_ , k_ ] ] := prop [i , k ]
741
+
742
+ FermionRouting [ fields_ :{}, top :P$Topology ] := Level [
743
+ merge @@ Apply [ prop [ #1 [[1 ]], #2 [[1 ]] ]& ,
744
+ Select [AddFieldNo [top ] /. fields , ! FreeQ [# , P$NonCommuting ]& ], 1 ],
745
+ {- 1 } ]
746
+
747
+
724
748
DiagramComplement [ tops :TopologyList [info__ ][___ ],
725
749
more :TopologyList [__ ][___ ].. ] :=
726
750
Block [ {lev = ResolveLevel [InsertionLevel /. {info }][[- 1 ]]},
@@ -769,7 +793,7 @@ kinematical expression (for a G[-]). If neither method resolves TheC,
769
793
Global ` PolarizationVector [ _ , mom_ , li_ ] =
770
794
Global ` PolarizationVector [mom , li ];
771
795
772
- Global ` DiracSpinor [ mom_ , mass_ , ___ ] := FeynArts ` Spinor [mom , mass ];
796
+ (* Global`DiracSpinor[ mom_, mass_, ___ ] := FeynArts`Spinor[mom, mass]; *)
773
797
774
798
Index [ Global ` Lorentz , n_ ] := Index [Global ` Lorentz , n ] =
775
799
ToExpression ["li" <> ToString [n ]];
0 commit comments