
(* description = "pp -> V+jets|pp -> Z+jets|pp -> Zjjj|On-shell Z boson plus three jets production" *)

SelectInterference = {eQED -> 2};

(* ddxzggg  *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2], V[5], V[5], V[5]}];
(* uuxzggg  *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2], V[5], V[5], V[5]}];
(* bbxzggg  *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2], V[5], V[5], V[5]}];
(* dddxdxzg *) AddProcess[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> { V[2], V[5],  F[4,{1}],  F[4,{1}]}];
(* uuxddxzg *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2], V[5],  F[3,{1}], -F[3,{1}]}];
(* ddxssxzg *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2], V[5],  F[4,{2}], -F[4,{2}]}];
(* uuuxuxzg *) AddProcess[FeynArtsProcess -> { F[3,{1}],  F[3,{1}]} -> { V[2], V[5],  F[3,{1}],  F[3,{1}]}];
(* uuxccxzg *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2], V[5],  F[3,{2}], -F[3,{2}]}];
(* ddxbbxzg *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2], V[5], -F[4,{3}],  F[4,{3}]}];
(* uuxbbxzg *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2], V[5], -F[4,{3}],  F[4,{3}]}];
(* bbbxbxzg *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2], V[5], -F[4,{3}],  F[4,{3}]}];

(* uuxzgggg   *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {V[2], V[5], V[5], V[5], V[5]}];
(* ddxzgggg   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {V[2], V[5], V[5], V[5], V[5]}];
(* bbxzgggg   *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> {V[2], V[5], V[5], V[5], V[5]}];
(* dddxdxzgg  *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> {V[2], V[5], V[5],  F[4,{1}],  F[4,{1}]}];
(* uuxddxzgg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {V[2], V[5], V[5],  F[3,{1}], -F[3,{1}]}];
(* ddxssxzgg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {V[2], V[5], V[5],  F[4,{2}], -F[4,{2}]}];
(* uuuxuxzgg  *) AddReal[FeynArtsProcess -> { F[3,{1}],  F[3,{1}]} -> {V[2], V[5], V[5],  F[3,{1}],  F[3,{1}]}];
(* uuxccxzgg  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {V[2], V[5], V[5],  F[3,{2}], -F[3,{2}]}];
(* ddxbbxzgg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {V[2], V[5], V[5], -F[4,{3}],  F[4,{3}]}];
(* uuxbbxzgg  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {V[2], V[5], V[5], -F[4,{3}],  F[4,{3}]}];
(* bbbxbxzgg  *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> {V[2], V[5], V[5], -F[4,{3}],  F[4,{3}]}];
(* uuuuxuxuxz *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {F[3,{1}], -F[3,{1}], F[3,{1}], -F[3,{1}], V[2]}];
(* ddddxdxdxz *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[4,{1}], -F[4,{1}], F[4,{1}], -F[4,{1}], V[2]}];
(* uuuxuxddxz *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[3,{1}], -F[3,{1}], F[3,{1}], -F[3,{1}], V[2]}];
(* uuxdddxdxz *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[4,{1}], -F[4,{1}], F[3,{1}], -F[3,{1}], V[2]}];
(* uuuxuxccxz *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {F[3,{1}], -F[3,{1}], F[3,{2}], -F[3,{2}], V[2]}];
(* dddxdxssxz *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[4,{1}], -F[4,{1}], F[4,{2}], -F[4,{2}], V[2]}];
(* uuxddxssxz *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[3,{1}], -F[3,{1}], F[4,{2}], -F[4,{2}], V[2]}];
(* uuxccxddxz *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[3,{1}], -F[3,{1}], F[3,{2}], -F[3,{2}], V[2]}];
(* ddxssxbbxz *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[4,{2}], -F[4,{2}], F[4,{3}], -F[4,{3}], V[2]}];
(* bbbbxbxbxz *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> {F[4,{3}], -F[4,{3}], F[4,{3}], -F[4,{3}], V[2]}];
(* uuuxuxbbxz *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {F[3,{1}], -F[3,{1}], F[4,{3}], -F[4,{3}], V[2]}];
(* dddxdxbbxz *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[4,{1}], -F[4,{1}], F[4,{3}], -F[4,{3}], V[2]}];
(* uuxbbbxbxz *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {F[4,{3}], -F[4,{3}], F[4,{3}], -F[4,{3}], V[2]}];
(* ddxbbbxbxz *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[4,{3}], -F[4,{3}], F[4,{3}], -F[4,{3}], V[2]}];
(* uuxccxbbxz *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {F[3,{2}], -F[3,{2}], F[4,{3}], -F[4,{3}], V[2]}];
(* uuxddxbbxz *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[3,{1}], -F[3,{1}], F[4,{3}], -F[4,{3}], V[2]}];

ChannelMap = {
  "bbxzggg"  -> "ddxzggg MB=0",
  "ccxddxzg" -> "uuxddxzg",
  "ddxbbxzg" -> "ddxssxzg MB=0",
  "uuxbbxzg" -> "uuxddxzg MB=0",
  "bbbxbxzg" -> "dddxdxzg MB=0",
  (* reals *)
  "bbxzgggg"   -> "ddxzgggg MB=0",

  "ccxddxzgg"  -> "uuxddxzgg",
  "ddxbbxzgg"  -> "ddxssxzgg MB=0",
  "uuxbbxzgg"  -> "uuxddxzgg MB=0",
  "bbbxbxzgg"  -> "dddxdxzgg MB=0",

  "bbbbxbxbxz" -> "ddddxdxdxz MB=0",
  "uuuxuxbbxz" -> "uuuxuxddxz MB=0",
  "dddxdxbbxz" -> "dddxdxssxz MB=0",
  "uuxbbbxbxz" -> "uuxdddxdxz MB=0",
  "ddxbbbxbxz" -> "dddxdxssxz[5,6,1,2,3,4,7] MB=0",
  "uuxccxbbxz" -> "uuxccxddxz MB=0",
  "uuxddxbbxz" -> "uuxddxssxz MB=0",
  "ccxdddxdxz" -> "uuxdddxdxz",
  "cccxcxddxz" -> "uuuxuxddxz",
  "ccxddxbbxz" -> "uuxddxbbxz"
};
