
(* description = "pp -> VVVV+jets|pp -> VVVV+jets|pp -> VVVV|Production of four on-shell vector bosons (Photon, W, Z in all combinations)." *)

SelectInterference = {eQED -> 8};

(* uuxaaaa   *) AddProcess[FeynArtsProcess -> {-F[3,{1}],  F[3,{1}]} -> { V[1],  V[1],  V[1], V[1]}];
(* ddxaaaa   *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1],  V[1],  V[1], V[1]}];
(* bbxaaaa   *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1],  V[1],  V[1], V[1]}];

(* uuxaaaz   *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2],  V[1],  V[1], V[1]}];
(* ddxaaaz   *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  V[1],  V[1], V[1]}];
(* bbxaaaz   *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2],  V[1],  V[1], V[1]}];

(* uuxaazz   *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2],  V[2],  V[1], V[1]}];
(* ddxaazz   *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  V[2],  V[1], V[1]}];
(* bbxaazz   *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2],  V[2],  V[1], V[1]}];

(* uuxazzz   *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2],  V[2],  V[2], V[1]}];
(* ddxazzz   *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  V[2],  V[2], V[1]}];
(* bbxazzz   *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2],  V[2],  V[2], V[1]}];

(* uuxzzzz   *) AddProcess[FeynartsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2],  V[2],  V[2], V[2]}];
(* ddxzzzz   *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  V[2],  V[2], V[2]}];
(* bbxzzzz   *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2],  V[2],  V[2], V[2]}];

(* udxaaaw   *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> {-V[3],  V[1],  V[1], V[1]}];
(* uxdaaawx  *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[1],  V[1],  V[3], V[1]}];

(* udxaazw   *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[2], -V[3],  V[1], V[1]}];
(* uxdaazwx  *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[2],  V[3],  V[1], V[1]}];

(* udxazzw   *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[2], V[2], -V[3],  V[1]}];
(* uxdazzwx  *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[2], V[2],  V[3],  V[1]}];

(* udxzzzw   *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[2], V[2], -V[3],  V[2]}];
(* uxdzzzwx  *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[2], V[2],  V[3],  V[2]}];

(* ddxaawwx  *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[3], -V[3],  V[1], V[1]}];
(* uuxaawwx  *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[3], -V[3],  V[1], V[1]}];
(* bbxaawwx  *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[3], -V[3],  V[1], V[1]}];

(* ddxazwwx  *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  V[3], -V[3], V[1]}];
(* uuxazwwx  *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2],  V[3], -V[3], V[1]}];
(* bbxazwwx  *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2],  V[3], -V[3], V[1]}];

(* ddxzzwwx  *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  V[3], -V[3], V[2]}];
(* uuxzzwwx  *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2],  V[3], -V[3], V[2]}];
(* bbxzzwwx  *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2],  V[3], -V[3], V[2]}];

(* udxawwwx  *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[3], -V[3], -V[3], V[1]}];
(* uxdawwxwx *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3],  V[3], -V[3], V[1]}];

(* udxawwwx  *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[3], -V[3], -V[3], V[2]}];
(* uxdawwxwx *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3],  V[3], -V[3], V[2]}];


(* uuxaaaag   *) AddReal[FeynArtsProcess -> {-F[3,{1}],  F[3,{1}]} -> { V[1],  V[1],  V[1], V[1], V[5]}];
(* ddxaaaag   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1],  V[1],  V[1], V[1], V[5]}];
(* bbxaaaag   *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1],  V[1],  V[1], V[1], V[5]}];

(* uuxaaazg   *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2],  V[1],  V[1], V[1], V[5]}];
(* ddxaaazg   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  V[1],  V[1], V[1], V[5]}];
(* bbxaaazg   *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2],  V[1],  V[1], V[1], V[5]}];

(* uuxaazzg   *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2],  V[2],  V[1], V[1], V[5]}];
(* ddxaazzg   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  V[2],  V[1], V[1], V[5]}];
(* bbxaazzg   *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2],  V[2],  V[1], V[1], V[5]}];

(* uuxazzzg   *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2],  V[2],  V[2], V[1], V[5]}];
(* ddxazzzg   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  V[2],  V[2], V[1], V[5]}];
(* bbxazzzg   *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2],  V[2],  V[2], V[1], V[5]}];

(* uuxzzzzg   *) AddReal[FeynartsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2],  V[2],  V[2], V[2], V[5]}];
(* ddxzzzzg   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  V[2],  V[2], V[2], V[5]}];
(* bbxzzzzg   *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2],  V[2],  V[2], V[2], V[5]}];

(* udxaaawg   *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> {-V[3],  V[1],  V[1], V[1], V[5]}];
(* uxdaaawxg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[1],  V[1],  V[3], V[1], V[5]}];

(* udxaazwg   *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[2], -V[3],  V[1], V[1], V[5]}];
(* uxdaazwxg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[2],  V[3],  V[1], V[1], V[5]}];

(* udxazzwg   *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[2], V[2], -V[3],  V[1], V[5]}];
(* uxdazzwxg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[2], V[2],  V[3],  V[1], V[5]}];

(* udxzzzwg   *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[2], V[2], -V[3],  V[2], V[5]}];
(* uxdzzzwxg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[2], V[2],  V[3],  V[2], V[5]}];

(* ddxaawwxg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[3], -V[3],  V[1], V[1], V[5]}];
(* uuxaawwxg  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[3], -V[3],  V[1], V[1], V[5]}];
(* bbxaawwxg  *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[3], -V[3],  V[1], V[1], V[5]}];

(* ddxazwwxg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  V[3], -V[3], V[1], V[5]}];
(* uuxazwwxg  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2],  V[3], -V[3], V[1], V[5]}];
(* bbxazwwxg  *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2],  V[3], -V[3], V[1], V[5]}];

(* ddxzzwwxg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  V[3], -V[3], V[2], V[5]}];
(* uuxzzwwxg  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2],  V[3], -V[3], V[2], V[5]}];
(* bbxzzwwxg  *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2],  V[3], -V[3], V[2], V[5]}];

(* udxawwwxg  *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[3], -V[3], -V[3], V[1], V[5]}];
(* uxdawwxwxg *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3],  V[3], -V[3], V[1], V[5]}];

(* udxawwwxg  *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[3], -V[3], -V[3], V[2], V[5]}];
(* uxdawwxwxg *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3],  V[3], -V[3], V[2], V[5]}];






ChannelMap = {
  "bbxaaaa" -> "ddxaaaa MB=0",
  "bbxaaaz" -> "ddxaaaz MB=0",
  "bbxaazz" -> "ddxaazz MB=0",
  "bbxazzz" -> "ddxazzz MB=0",
  "bbxzzzz" -> "ddxzzzz MB=0",
(* reals *)
  "bbxaaaag" -> "ddxaaaag MB=0",
  "bbxaaazg" -> "ddxaaazg MB=0",
  "bbxaazzg" -> "ddxaazzg MB=0",
  "bbxazzzg" -> "ddxazzzg MB=0",
  "bbxzzzzg" -> "ddxzzzzg MB=0"
};
