•Generation of topologies and insertion of fields

This FeynArts filter discards topologies with more than one odd vertex:

$ExcludeTopologies[SeveralOddVertices] = ((Length[Union[Cases[#, Vertex[_ ? (OddQ[#] &), ___][_], Infinity]]] < 6) &) ;

Construction of topologies:

mesonstop = TopologyList @@ Union[Flatten[{#, List @@ AddExternalLegs[#, ExternalPropagators -> 1], List @@ AddExternalLegs[#, ExternalPropagators -> 2]} &[CreateCTTopologies[2, 2 -> 2, Adjacencies -> {3, 4, 5, 6}, ExcludeTopologies -> {SelfEnergyCTs, WFCorrectionCTs, WFCorrections, SeveralOddVertices}] // DiscardCT]]] ;

Length[mesonstop]

44

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

Field insertion:

$VerticesSpecifications = {{VertexFields -> {PhiMeson[0]}, PhiModel -> ChPTW3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {AxialVector[0][0], PhiMeson[0]}, PhiModel -> ChPT3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {PhiMeson[0], Scalar[1][0]}, PhiModel -> ChPTW3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {AxialVector[0][0], PhiMeson[0], PhiMeson[0]}, PhiModel -> ChPTW3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {PhiMeson[0], PhiMeson[0], PhiMeson[0]}, PhiModel -> ChPTW3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {AxialVector[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 -> {AxialVector[0][0], PhiMeson[0], PhiMeson[0], Scalar[1][0]}, PhiModel -> ChPTW3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {AxialVector[0][0], PhiMeson[0], PhiMeson[0], PhiMeson[0], PhiMeson[0]}, PhiModel -> ChPTW3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {PhiMeson[0], PhiMeson[0], PhiMeson[0], PhiMeson[0], PhiMeson[0]}, PhiModel -> ChPTW3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {AxialVector[0][0], PhiMeson[0], PhiMeson[0], PhiMeson[0], PhiMeson[0], PhiMeson[0]}, PhiModel -> ChPT3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {PhiMeson[0], PhiMeson[0], PhiMeson[0], PhiMeson[0], PhiMeson[0], PhiMeson[0]}, PhiModel -> ChPT3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}, {VertexFields -> {AxialVector[0][0], PhiMeson[0], 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], PhiMeson[0], Scalar[1][0]}, PhiModel -> ChPTW3, PerturbationOrder -> {2}, CouplingSign -> 1, XFileName -> Automatic}} ;

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

mesonsinsert = InsertFields[mesonstop, {AxialVector[0][0, {in1}], Scalar[1][0]} -> {PhiMeson[0, {in3}], PhiMeson[0, {in4}]}, Model -> "Automatic", GenericModel -> "Automatic", InsertionLevel -> Classes] ;

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

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

Graphical representation of the process:

Paint[mesonsinsert /. {in1 -> i1, in2 -> i2, in3 -> i3} /. boxrules1 //. boxrules2, PaintLevel -> {Classes}, AutoEdit -> True, SheetHeader -> False, Numbering -> False, ColumnsXRows -> {2, 2}] ;


Converted by Mathematica  (July 10, 2003)