•Generation of topologies and insertion of fields

Construction of topologies:

mesonstop = TopologyList @@ Union[Flatten[{{#}, List @@ AddExternalLegs[#, ExternalPropagators -> 1], List @@ AddExternalLegs[#, ExternalPropagators -> 2]} &[CreateTopologies[0, 2 -> 1, Adjacencies -> {3, 4}, ExcludeTopologies -> {SelfEnergyCTs, WFCorrectionCTs}]]]] ;

Paint[mesonstop, AutoEdit -> False, SheetHeader -> False, Numbering -> True, ColumnsXRows -> {3, 1}] ;

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}} ;

InitializeModel["Automatic", GenericModel -> "Automatic", Reinitialize -> True] ;

mesontreeinsert = InsertFields[mesonstop, {PseudoScalar[0][0, {i1}], Scalar[1][0]} -> {PseudoScalar[0][0, {i3}]}, Model -> "Automatic", GenericModel -> "Automatic", InsertionLevel -> Classes] ;

mesonins = DiscardTopologies[mesontreeinsert] ;

Making things look nice (may not work with newer versions of FeynArts):

(* Odd internal vertices *) boxrules1 = {Propagator[Internal][Vertex[l_ ? OddQ][n_], v2 : Vertex[__][_], f_] -> Propagator[Internal][Vertex[l, 1][n], v2, f], Propagator[Internal][v2 : Vertex[__][_], Vertex[l_ ? OddQ][n_], f_] -> Propagator[Internal][v2, Vertex[l, 1][n], f]} ;

(* Odd vertices attaching to a vertex with more than 2 legs *) boxrules2 = {Propagator[ty_][Vertex[l_ ? OddQ][n_], v2 : Vertex[__][_], f_] /; l > 2 -> Propagator[ty][Vertex[l, 1][n], v2, f], Propagator[ty_][v2 : Vertex[__][_], Vertex[l_ ? OddQ][n_], f_] /; l > 2 -> Propagator[ty][v2, Vertex[l, 1][n], f]} ;

(* 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]]} ;

Graphical representation of the process:

Paint[mesonins /. boxrules1 //. boxrules2 /. boxrules3, PaintLevel -> {Classes}, AutoEdit -> False, SheetHeader -> False, Numbering -> False, ColumnsXRows -> {2, 1}] ;

[Graphics:../HTMLFiles/index_38.gif]

[Graphics:../HTMLFiles/index_39.gif]


Converted by Mathematica  (July 10, 2003)