
(* description = "pp -> V+jets|pp -> W+jets|pp -> Wjjj|On-shell W+/W- boson plus three jets production" *)

SelectInterference = {eQED -> 2};

(* udxwggg   *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> {-V[3], V[5], V[5], V[5]}];
(* uddxdxwg  *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {-V[3], V[5], F[4,{1}], -F[3,{1}]}];
(* cddxsxwg  *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {-V[3], V[5], F[4,{2}], -F[3,{2}]}];
(* uuuxdxwg  *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> {-V[3], V[5], F[3,{1}], -F[3,{1}]}];
(* udxbbxwg  *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> {-V[3], V[5], F[4,{3}], -F[4,{3}]}];

(* uxdwxggg  *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3], V[5], V[5], V[5]}];
(* uxdddxwxg *) AddProcess[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> { V[3], V[5], F[4,{1}],  F[3,{1}]}];
(* cxddxswxg *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[3], V[5], F[3,{2}], -F[4,{2}]}];
(* uuxuxdwxg *) AddProcess[FeynArtsProcess -> { F[4,{1}],  F[3,{1}]} -> { V[3], V[5], F[3,{1}],  F[3,{1}]}];
(* uxdbbxwxg *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3], V[5], F[4,{3}], -F[4,{3}]}];

(* old Sherpa *)
(* udxssxwg  *) AddProcess[FeynArtsProcess -> { F[4,{2}], -F[4,{2}]} -> {-V[3], V[5], F[4,{1}], -F[3,{1}]}];
(* uxdssxwxg *) AddProcess[FeynArtsProcess -> { F[4,{2}], -F[4,{2}]} -> { V[3], V[5], F[3,{1}], -F[4,{1}]}];


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

(* uddxdxwgg   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {-V[3], V[5], V[5], F[4,{1}], -F[3,{1}]}];
(* cddxsxwgg   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {-V[3], V[5], V[5], F[4,{2}], -F[3,{2}]}];
(* uuuxdxwgg   *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> {-V[3], V[5], V[5], F[3,{1}], -F[3,{1}]}];
(* udxbbxwgg   *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> {-V[3], V[5], V[5], F[4,{3}], -F[4,{3}]}];

(* uuuuxuxdxw  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {-V[3], F[3,{1}], -F[3,{1}], F[3,{1}], -F[3,{1}]}];
(* udddxdxdxw  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {-V[3], F[4,{1}], -F[4,{1}], F[4,{1}], -F[4,{1}]}];
(* cdddxdxsxw  *) AddReal[FeynArtsProcess -> { F[3,{2}], -F[4,{2}]} -> {-V[3], F[4,{1}], -F[4,{1}], F[4,{1}], -F[4,{1}]}];
(* uuuxddxdxw  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {-V[3], F[4,{1}], -F[4,{1}], F[3,{1}], -F[3,{1}]}];
(* uuuxccxdxw  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {-V[3], F[3,{1}], -F[3,{1}], F[3,{2}], -F[3,{2}]}];
(* uddxdxssxw  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {-V[3], F[4,{1}], -F[4,{1}], F[4,{2}], -F[4,{2}]}];
(* uuxcddxsxw  *) AddReal[FeynArtsProcess -> { F[3,{2}], -F[4,{2}]} -> {-V[3], F[4,{1}], -F[4,{1}], F[3,{1}], -F[3,{1}]}];
(* uddxdxbbxw  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {-V[3], F[4,{1}], -F[4,{1}], F[4,{3}], -F[4,{3}]}];
(* uuuxdxbbxw  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {-V[3], F[3,{1}], -F[3,{1}], F[4,{3}], -F[4,{3}]}];
(* uccxdxbbxw  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {-V[3], F[3,{2}], -F[3,{2}], F[4,{3}], -F[4,{3}]}];
(* udxbbbxbxw  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {-V[3], F[4,{3}], -F[4,{3}], F[4,{3}], -F[4,{3}]}];

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

(* uxdddxwxgg  *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> { V[3], V[5], V[5], F[4,{1}],  F[3,{1}]}];
(* cxddxswxgg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[3], V[5], V[5], F[3,{2}], -F[4,{2}]}];
(* uuxuxdwxgg  *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[3,{1}]} -> { V[3], V[5], V[5], F[3,{1}],  F[3,{1}]}];
(* uxdbbxwxgg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3], V[5], V[5], F[4,{3}], -F[4,{3}]}];

(* uxddddxdxwx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3], F[4,{1}], -F[4,{1}], F[4,{1}], -F[4,{1}]}];
(* uuuxuxuxdwx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3], F[3,{1}], -F[3,{1}], F[3,{1}], -F[3,{1}]}];
(* uxcccxcxdwx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3], F[3,{2}], -F[3,{2}], F[3,{2}], -F[3,{2}]}];
(* uuxuxdddxwx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3], F[4,{1}], -F[4,{1}], F[3,{1}], -F[3,{1}]}];
(* uuxuxccxdwx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3], F[3,{1}], -F[3,{1}], F[3,{2}], -F[3,{2}]}];
(* uxdddxssxwx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3], F[4,{1}], -F[4,{1}], F[4,{2}], -F[4,{2}]}];
(* uuxcxddxswx *) AddReal[FeynArtsProcess -> { F[4,{2}], -F[3,{2}]} -> { V[3], F[4,{1}], -F[4,{1}], F[3,{1}], -F[3,{1}]}];
(* uuxuxdbbxwx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3], F[3,{1}], -F[3,{1}], F[4,{3}], -F[4,{3}]}];
(* uxdddxbbxwx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3], F[4,{1}], -F[4,{1}], F[4,{3}], -F[4,{3}]}];
(* uxccxdbbxwx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3], F[3,{2}], -F[3,{2}], F[4,{3}], -F[4,{3}]}];
(* uxdbbbxbxwx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3], F[4,{3}], -F[4,{3}], F[4,{3}], -F[4,{3}]}];

ChannelMap = {
  "uccxdxwg"  -> "cddxsxwg",
  "udxbbxwg"  -> "cddxsxwg[1,4,2,3,5,6] MB=0",
  "uxccxdwxg" -> "cxddxswxg",
  "uxdbbxwxg" -> "cxddxswxg[1,4,2,3,5,6] MB=0",
  (* reals *)
  "uccxdxwgg"   -> "cddxsxwgg",
  "udxbbxwgg"   -> "cddxsxwgg[1,4,2,3,5,6,7] MB=0",

  "ucccxcxdxw"  -> "cdddxdxsxw",
  "cccxddxsxw"  -> "uuuxccxdxw",
  "uccxddxdxw"  -> "uddxdxssxw[1,5,6,2,3,4,7]",
  "cddxsxbbxw"  -> "uccxdxbbxw",
  "uddxdxbbxw"  -> "uddxdxssxw MB=0",
  "uuuxdxbbxw"  -> "uuuxccxdxw[1,2,3,6,4,5,7] MB=0",
  "uccxdxbbxw"  -> "uuxcddxsxw[3,1,2,6,4,5,7] MB=0",
  "udxbbbxbxw"  -> "cdddxdxsxw[1,6,2,3,4,5,7] MB=0",

  "uxccxdwxgg"  -> "cxddxswxgg",
  "uxdbbxwxgg"  -> "cxddxswxgg[1,4,2,3,5,6,7] MB=0",

  "cxdddxdxswx" -> "uxcccxcxdwx",
  "ccxcxddxswx" -> "uuxuxccxdwx",
  "uxccxdddxwx" -> "uxdddxssxwx[1,5,6,2,3,4,7]",
  "cxddxsbbxwx" -> "uxccxdbbxwx",
  "uxdddxbbxwx" -> "uxdddxssxwx MB=0",
  "uuxuxdbbxwx" -> "uuxuxccxdwx[1,2,3,6,4,5,7] MB=0",
  "uxccxdbbxwx" -> "uuxcxddxswx[3,1,2,6,4,5,7] MB=0",
  "uxdbbbxbxwx" -> "uxcccxcxdwx[1,6,2,3,4,5,7] MB=0"
};
