This FeynArts filter discards topologies with more than one odd vertex:
![]()
Construction of topologies:
![mesonstop = TopologyList @@ Union[Flatten[{#, List @@ AddExternalLegs[#, ExternalPropagators -> 1], List @@ AddExternalLegs[#, ExternalPropagators -> 2]} &[CreateTopologies[1, 2 -> 1, Adjacencies -> {3, 4, 5, 6}, ExcludeTopologies -> {(* SelfEnergyCTs, WFCorrections, *) SeveralOddVertices}]]]] ;](../HTMLFiles/index_173.gif)
![]()
![]()
![]()
Field insertion:
![$VerticesSpecifications = {{VertexFields -> {PseudoScalar[0][0], PhiMeson[0]}, PhiModel -> ChPT3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {PseudoScalar[0][0], PhiMeson[0], Scalar[1][0]}, PhiModel -> ChPTW3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {PhiMeson[0], PhiMeson[0], Scalar[1][0]}, PhiModel -> ChPTW3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {PseudoScalar[0][0], PhiMeson[0], PhiMeson[0], PhiMeson[0]}, PhiModel -> ChPT3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {PhiMeson[0], PhiMeson[0], PhiMeson[0], PhiMeson[0]}, PhiModel -> ChPT3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {PhiMeson[0], PhiMeson[0], PhiMeson[0], Scalar[1][0]}, PhiModel -> ChPTW3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {PhiMeson[0], PhiMeson[0], PhiMeson[0], PhiMeson[0], Scalar[1][0]}, PhiModel -> ChPTW3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {PseudoScalar[0][0], PhiMeson[0], PhiMeson[0], PhiMeson[0], Scalar[1][0]}, PhiModel -> ChPTW3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> {"ChPTW3P00P10P10P10o2"}}} ;](../HTMLFiles/index_194.gif)
![]()
![]()
![]()
![]()
Making things look nice (may not work with newer versions of FeynArts):
![]()
![]()
![(* Vertices with a scalar leg *) (* boxrules3 = {Propagator[ty_][Vertex[l_][n_], v2 : Vertex[__][_], Field[2]] /; l > 1 -> Propagator[ty][Vertex[l, 1][n], v2, Field[2]], Propagator[ty_][v2 : Vertex[__][_], Vertex[l_][n_], Field[2]] /; l > 1 -> Propagator[ty][v2, Vertex[l, 1][n], Field[2]]} ; *)](../HTMLFiles/index_201.gif)
![(* Vertices with a scalar leg *) boxrules3 = {t : (Topology[_][__] -> _) :> (sverts = Select[List @@ t[[1]], (! FreeQ[#, Field[2], Infinity] &)] /. {Vertex[1][_] -> Sequence[], _Field -> Sequence[], _Propagator -> Sequence} ; rul = (Rule[#, #[[0, 0]][#[[0, 1]], 1][#[[1]]]] & /@ sverts) ; t /. rul)} ;](../HTMLFiles/index_202.gif)
![]()
![]()
![]()
![]()
Graphical representation of the process:
![]()
![[Graphics:../HTMLFiles/index_208.gif]](../HTMLFiles/index_208.gif)
![[Graphics:../HTMLFiles/index_209.gif]](../HTMLFiles/index_209.gif)
![[Graphics:../HTMLFiles/index_210.gif]](../HTMLFiles/index_210.gif)
![[Graphics:../HTMLFiles/index_211.gif]](../HTMLFiles/index_211.gif)
Converted by Mathematica (July 10, 2003)