(* photon self-energies are excluded *)

OpenLoopsModel = "SMpions";
AllowAmplitudePrefactors = True;

QED = 2;
SetParameters = JoinOptions[{MM -> MM, ME -> ME, nf -> 0, nfl -> 1}];

(* Approximation: L<power of Q_Pi in loop dia><power of Q_e in loop dia>(N<number of loop propagators>)(additional loop diagram specifications)T<power of Q_Pi in tree dia><power of Q_e in tree dia> (D<number of disperon loop propagators if not 0>) *)
(* SG: seagull *)

qed01 = {
  SelectInterference -> {gQCD -> 0},
  SelectLoopDiagrams -> ( Not[(ContainsFermionLoop[##]||ContainsScalarLoop[##]) && NLoopPropagators[2][##]] &&                   (* No photon self-energy *)
                          Not[ParticlesInLoop[V[1]][##] && ParticlesInLoop[S[7]][##] && NLoopPropagators[2][##]] &&              (* No pion self-energy *)
                          Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] &),
  SelectCTDiagrams   -> ( NFieldPropagators[V[6|7],0][##] &),
  Approximation      -> ""
};

(* ***************************************************************************************************** *)
(* Approximations for e+e- ->pi-pi+                                                                      *)
(* ***************************************************************************************************** *)

qed01L31T11 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 2},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##]  && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L31T11"
};
qed01L31T11D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 2},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##]  && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L31T11D1"
};


qed01L13T11 = {
  SelectInterference -> {gQCD -> 0, QPi -> 2, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] &),
  SelectCTDiagrams   -> ( NFieldPropagators[V[6|7],0][##] &),
  Approximation      -> "L13T11"
};
qed01L13T11D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 2, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] &),
  SelectCTDiagrams   -> ( NFieldPropagators[V[6|7],0][##] &),
  Approximation      -> "L13T11D1"
};


qed01L22T11 = {
  SelectInterference -> {gQCD -> 0, QPi -> 3, Qel -> 3},
  SelectLoopDiagrams -> ( NLegsOnLoop[4][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L22T11"
};
qed01L22T11D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 3, Qel -> 3},
  SelectLoopDiagrams -> ( NLegsOnLoop[4][##] && ParticlesInLoop[V[1]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L22T11D1"
};
qed01L22T11D2 = {
  SelectInterference -> {gQCD -> 0, QPi -> 3, Qel -> 3},
  SelectLoopDiagrams -> ( NLegsOnLoop[4][##] && ParticlesInLoop[V[6]][##] && ParticlesInLoop[V[7]][##] && Not[ParticlesInLoop[V[1]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L22T11D2"
};

(* ***************************************************************************************************** *)
(* Approximations for e+e- ->pi-pi+ a                                                                    *)
(* ***************************************************************************************************** *)

qed01L14T21 = {
  SelectInterference -> {gQCD -> 0, QPi -> 3, Qel -> 5},
  SelectLoopDiagrams -> ( ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( NFieldPropagators[V[6|7],0][##] &),
  Approximation      -> "L14T21"
};
qed01L14T12 = {
  SelectInterference -> {gQCD -> 0, QPi -> 2, Qel -> 6},
  SelectLoopDiagrams -> ( ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( NFieldPropagators[V[6|7],0][##] &),
  Approximation      -> "L14T12"
};

qed01L41N3offT21 = {
  SelectInterference -> {gQCD -> 0, QPi -> 6, Qel -> 2},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && SelectVertexbyPart[{S[7], -S[7]}, {V[1]}, {}][##] && NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3offT21"
};
qed01L41N3offT12 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && SelectVertexbyPart[{S[7], -S[7]}, {V[1]}, {}][##] && NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3offT12"
};

qed01L41N3onT21 = {
  SelectInterference -> {gQCD -> 0, QPi -> 6, Qel -> 2},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && SelectVertexbyPart[{S[7], -S[7]}, {}, {V[1]}][##] && NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3onT21"
};
qed01L41N3onT12 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && SelectVertexbyPart[{S[7], -S[7]}, {}, {V[1]}][##] && NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3onT12"
};

qed01L41N3SGeT21 = {
  SelectInterference -> {gQCD -> 0, QPi -> 6, Qel -> 2},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] &&
                          (SelectVertexbyPart[{S[7], V[1]}, {}, {-S[7], V[1]}][##] || SelectVertexbyPart[{-S[7], V[1]}, {}, {S[7], V[1]}][##]) &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3SGeT21"
};
qed01L41N3SGeT12 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] &&
                          (SelectVertexbyPart[{S[7], V[1]}, {}, {-S[7], V[1]}][##] || SelectVertexbyPart[{-S[7], V[1]}, {}, {S[7], V[1]}][##]) &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3SGeT12"
};

qed01L41N3SGgT21 = {
  SelectInterference -> {gQCD -> 0, QPi -> 6, Qel -> 2},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] &&
                          (SelectVertexbyPart[{S[7], -S[7]}, {V[1]}, {V[1]}][##]) &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3SGgT21"
};
qed01L41N3SGgT12 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] &&
                          (SelectVertexbyPart[{S[7], -S[7]}, {V[1]}, {V[1]}][##]) &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3SGgT12"
};

qed01L41N3SGiT21 = {
  SelectInterference -> {gQCD -> 0, QPi -> 6, Qel -> 2},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] &&
                          (SelectVertexbyPart[{S[7], V[1]}, {V[1]}, {-S[7]}][##] || SelectVertexbyPart[{-S[7], V[1]}, {V[1]}, {S[7]}][##]) &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3SGiT21"
};
qed01L41N3SGiT12 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] &&
                          (SelectVertexbyPart[{S[7], V[1]}, {V[1]}, {-S[7]}][##] || SelectVertexbyPart[{-S[7], V[1]}, {V[1]}, {S[7]}][##]) &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3SGiT12"
};

qed01L41N4T21 = {
  SelectInterference -> {gQCD -> 0, QPi -> 6, Qel -> 2},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N4T21"
};
qed01L41N4T12 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N4T12"
};

qed01L32N3T21 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] &&                    Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N3T21"
};
qed01L32N3T12 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N3T12"
};

qed01L32N4T21 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && NLegsOnLoop[4][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N4T21"
};
qed01L32N4T12 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && NLegsOnLoop[4][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N4T12"
};

qed01L32N3SGT21 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[4][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] &&                    Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N3SGT21"
};
qed01L32N3SGT12 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[4][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N3SGT12"
};

qed01L32N4SGT21 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && NLegsOnLoop[5][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N4SGT21"
};
qed01L32N4SGT12 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && NLegsOnLoop[5][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N4SGT12"
};

qed01L32N5T21 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[5][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N5T21"
};
qed01L32N5T12 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[5][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N5T12"
};

qed01L23N543SGT21 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> (( NLegsOnLoop[5][##] || NLegsOnLoop[4][##] ) && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L23N543SGT21"
};
qed01L23N543SGT12 = {
  SelectInterference -> {gQCD -> 0, QPi -> 3, Qel -> 5},
  SelectLoopDiagrams -> (( NLegsOnLoop[5][##] || NLegsOnLoop[4][##] ) && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L23N543SGT12"
};

qed01L23N3T21 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( NFieldPropagators[V[6|7],0][##] &),
  Approximation      -> "L23N3T21"
};
qed01L23N3T12 = {
  SelectInterference -> {gQCD -> 0, QPi -> 3, Qel -> 5},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[1]][##] && Not[ParticlesInLoop[V[6|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( NFieldPropagators[V[6|7],0][##] &),
  Approximation      -> "L23N3T12"
};


(* ******* 1 disperon ******** *)


qed01L14T21D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 3, Qel -> 5},
  SelectLoopDiagrams -> ( ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( NFieldPropagators[V[6|7],0][##] &),
  Approximation      -> "L14T21D1"
};
qed01L14T12D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 2, Qel -> 6},
  SelectLoopDiagrams -> ( ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( NFieldPropagators[V[6|7],0][##] &),
  Approximation      -> "L14T12D1"
};

qed01L41N3offT21D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 6, Qel -> 2},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] && SelectVertexbyPart[{S[7], -S[7]}, {V[1]}, {}][##] && NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3offT21D1"
};
qed01L41N3offT12D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] && SelectVertexbyPart[{S[7], -S[7]}, {V[1]}, {}][##] && NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3offT12D1"
};

qed01L41N3onT21D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 6, Qel -> 2},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] && SelectVertexbyPart[{S[7], -S[7]}, {}, {V[1]}][##] && NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3onT21D1"
};
qed01L41N3onT12D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] && SelectVertexbyPart[{S[7], -S[7]}, {}, {V[1]}][##] && NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3onT12D1"
};

qed01L41N3SGeT21D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 6, Qel -> 2},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] &&
                          (SelectVertexbyPart[{S[7], V[6]}, {}, {-S[7], V[1]}][##] || SelectVertexbyPart[{-S[7], V[6]}, {}, {S[7], V[1]}][##]) &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3SGeT21D1"
};
qed01L41N3SGeT12D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] &&
                          (SelectVertexbyPart[{S[7], V[6]}, {}, {-S[7], V[1]}][##] || SelectVertexbyPart[{-S[7], V[6]}, {}, {S[7], V[1]}][##]) &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3SGeT12D1"
};

qed01L41N3SGgT21D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 6, Qel -> 2},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] &&
                          (SelectVertexbyPart[{S[7], -S[7]}, {V[1]}, {V[1]}][##]) &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3SGgT21D1"
};
qed01L41N3SGgT12D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] &&
                          (SelectVertexbyPart[{S[7], -S[7]}, {V[1]}, {V[1]}][##]) &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3SGgT12D1"
};

qed01L41N3SGiT21D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 6, Qel -> 2},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] &&
                          (SelectVertexbyPart[{S[7], V[6]}, {V[1]}, {-S[7]}][##] || SelectVertexbyPart[{-S[7], V[6]}, {V[1]}, {S[7]}][##]) &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3SGiT21D1"
};
qed01L41N3SGiT12D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] &&
                          (SelectVertexbyPart[{S[7], V[6]}, {V[1]}, {-S[7]}][##] || SelectVertexbyPart[{-S[7], V[6]}, {V[1]}, {S[7]}][##]) &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N3SGiT12D1"
};

qed01L41N4T21D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 6, Qel -> 2},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N4T21D1"
};
qed01L41N4T12D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] &&
                          NFieldPropagators[F[2,{1}],0][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L41N4T12D1"
};

qed01L32N3T21D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[1|7]][##]] &&                    Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N3T21D1"
};
qed01L32N3T12D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N3T12D1"
};

qed01L32N4T21D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && NLegsOnLoop[4][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N4T21D1"
};
qed01L32N4T12D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && NLegsOnLoop[4][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N4T12D1"
};

qed01L32N3SGT21D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[4][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[1]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[7]][##]] &&                    Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N3SGT21D1"
};
qed01L32N3SGT12D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[4][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[1]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N3SGT12D1"
};

qed01L32N4SGT21D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && NLegsOnLoop[5][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N4SGT21D1"
};
qed01L32N4SGT12D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && NLegsOnLoop[5][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N4SGT12D1"
};

qed01L32N5T21D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[5][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N5T21D1"
};
qed01L32N5T12D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[5][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[1]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N5T12D1"
};

qed01L23N543SGT21D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> (( NLegsOnLoop[5][##] || NLegsOnLoop[4][##] ) && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[1]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L23N543SGT21D1"
};
qed01L23N543SGT12D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 3, Qel -> 5},
  SelectLoopDiagrams -> (( NLegsOnLoop[5][##] || NLegsOnLoop[4][##] ) && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[1]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L23N543SGT12D1"
};

qed01L23N3T21D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( NFieldPropagators[V[6|7],0][##] &),
  Approximation      -> "L23N3T21D1"
};
qed01L23N3T12D1 = {
  SelectInterference -> {gQCD -> 0, QPi -> 3, Qel -> 5},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[3][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[6]][##] && Not[ParticlesInLoop[V[1|7]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( NFieldPropagators[V[6|7],0][##] &),
  Approximation      -> "L23N3T12D1"
};


(* ******* 2 disperons ******** *)


qed01L32N4T21D2 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && NLegsOnLoop[4][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] && ParticlesInLoop[V[7]][##] && Not[ParticlesInLoop[V[1]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N4T21D2"
};
qed01L32N4T12D2 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && NLegsOnLoop[4][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] && ParticlesInLoop[V[7]][##] && Not[ParticlesInLoop[V[1]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N4T12D2"
};

qed01L32N3SGT21D2 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[4][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[6]][##] && ParticlesInLoop[V[7]][##] && Not[ParticlesInLoop[V[1]][##]] &&                    Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N3SGT21D2"
};
qed01L32N3SGT12D2 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[3][##] && NLegsOnLoop[4][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[6]][##] && ParticlesInLoop[V[7]][##] && Not[ParticlesInLoop[V[1]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N3SGT12D2"
};

qed01L32N4SGT21D2 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && NLegsOnLoop[5][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] && ParticlesInLoop[V[7]][##] && Not[ParticlesInLoop[V[1]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N4SGT21D2"
};
qed01L32N4SGT12D2 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[4][##] && NLegsOnLoop[5][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] && ParticlesInLoop[V[7]][##] && Not[ParticlesInLoop[V[1]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N4SGT12D2"
};

qed01L32N5T21D2 = {
  SelectInterference -> {gQCD -> 0, QPi -> 5, Qel -> 3},
  SelectLoopDiagrams -> ( NLoopPropagators[5][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] && ParticlesInLoop[V[7]][##] && Not[ParticlesInLoop[V[1]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N5T21D2"
};
qed01L32N5T12D2 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> ( NLoopPropagators[5][##] && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[S[7]][##] && ParticlesInLoop[V[6]][##] && ParticlesInLoop[V[7]][##] && Not[ParticlesInLoop[V[1]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L32N5T12D2"
};

qed01L23N543SGT21D2 = {
  SelectInterference -> {gQCD -> 0, QPi -> 4, Qel -> 4},
  SelectLoopDiagrams -> (( NLegsOnLoop[5][##] || NLegsOnLoop[4][##] ) && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[6]][##] && ParticlesInLoop[V[7]][##] && Not[ParticlesInLoop[V[1]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],0][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L23N543SGT21D2"
};
qed01L23N543SGT12D2 = {
  SelectInterference -> {gQCD -> 0, QPi -> 3, Qel -> 5},
  SelectLoopDiagrams -> (( NLegsOnLoop[5][##] || NLegsOnLoop[4][##] ) && ParticlesInLoop[F[2,{1}]][##] && ParticlesInLoop[V[6]][##] && ParticlesInLoop[V[7]][##] && Not[ParticlesInLoop[V[1]][##]] && Not[ParticlesOutsideLoop[V[6|7]][##]] &) ,
  SelectTreeDiagrams -> ( NFieldPropagators[V[6|7],0][##] && NFieldPropagators[F[2,{1}],1][##] &),
  SelectCTDiagrams   -> ( False &),
  Approximation      -> "L23N543SGT12D2"
};


(* ***************************************************************************************************** *)
(* e+e- ->pi-pi+                                                                                         *)
(* ***************************************************************************************************** *)

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7]}, Sequence @@ qed01];


AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7]}, Sequence @@ qed01L31T11];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7]}, Sequence @@ qed01L31T11D1];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7]}, Sequence @@ qed01L13T11];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7]}, Sequence @@ qed01L13T11D1];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7]}, Sequence @@ qed01L22T11];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7]}, Sequence @@ qed01L22T11D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7]}, Sequence @@ qed01L22T11D2];

(* ***************************************************************************************************** *)
(* e+e- ->pi-pi+ a                                                                                       *)
(* ***************************************************************************************************** *)

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L14T21];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L14T12];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3offT21];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3offT12];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3onT21];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3onT12];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3SGeT21];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3SGeT12];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3SGgT21];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3SGgT12];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3SGiT21];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3SGiT12];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N4T21];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N4T12];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N3T21];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N3T12];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N4T21];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N4T12];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N4SGT21];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N4SGT12];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N3SGT21];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N3SGT12];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N5T21];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N5T12];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L23N543SGT21];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L23N543SGT12];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L23N3T21];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L23N3T12];

(* ***************************************************************************************************** *)

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L14T21D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L14T12D1];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3offT21D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3offT12D1];


AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3onT21D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3onT12D1];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3SGeT21D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3SGeT12D1];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3SGgT21D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3SGgT12D1];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3SGiT21D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N3SGiT12D1];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N4T21D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L41N4T12D1];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N3T21D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N3T12D1];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N4T21D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N4T12D1];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N4SGT21D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N4SGT12D1];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N3SGT21D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N3SGT12D1];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N5T21D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N5T12D1];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L23N543SGT21D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L23N543SGT12D1];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L23N3T21D1];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L23N3T12D1];

(* ***************************************************************************************************** *)


AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N4T21D2];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N4T12D2];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N4SGT21D2];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N4SGT12D2];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N3SGT21D2];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N3SGT12D2];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N5T21D2];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L32N5T12D2];

AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L23N543SGT21D2];
AddProcess[FeynArtsProcess -> {F[2,{1}], -F[2,{1}]} -> {S[7], -S[7], V[1]}, Sequence @@ qed01L23N543SGT12D2];

(* *)
