
(* description = "pp -> V+jets|pp -> W(->ln)+jets|pp -> lnjjj|Off-shell W+/W- boson plus three jets production with leptonic decays" *)

SelectInterference = {eQED -> 4};
CreateTopologiesOptions = {ExcludeTopologies -> {Snails, WFCorrectionCTs, TadpoleCTs, Loops[7]}};
SetParameters = JoinOptions[{ME -> 0}];

(* neexuxdggg  *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], V[5], V[5], V[5]}];
(* neexuxdddxg *) AddProcess[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> {F[2,{1}], -F[1,{1}], V[5], F[4,{1}],  F[3,{1}]}];
(* neexcxddxsg *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[2,{1}], -F[1,{1}], V[5], F[3,{2}], -F[4,{2}]}];
(* neexuuxuxdg *) AddProcess[FeynArtsProcess -> { F[4,{1}],  F[3,{1}]} -> {F[2,{1}], -F[1,{1}], V[5], F[3,{1}],  F[3,{1}]}];
(* neexuxdbbxg *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], V[5], F[4,{3}], -F[4,{3}]}];

(* nexeudxggg  *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> {F[1,{1}], -F[2,{1}], V[5], V[5], V[5]}];
(* nexeuddxdxg *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], V[5], F[4,{1}], -F[3,{1}]}];
(* nexecddxsxg *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], V[5], F[4,{2}], -F[3,{2}]}];
(* nexeuuuxdxg *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> {F[1,{1}], -F[2,{1}], V[5], F[3,{1}], -F[3,{1}]}];
(* nexeudxbbxg *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], V[5], F[4,{3}], -F[4,{3}]}];

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


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

(* nexeuddxdxgg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], V[5], V[5], F[4,{1}], -F[3,{1}]}];
(* nexecddxsxgg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], V[5], V[5], F[4,{2}], -F[3,{2}]}];
(* nexeuuuxdxgg  *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> {F[1,{1}], -F[2,{1}], V[5], V[5], F[3,{1}], -F[3,{1}]}];
(* nexeudxbbxgg  *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> {F[1,{1}], -F[2,{1}], V[5], V[5], F[4,{3}], -F[4,{3}]}];

(* nexeuuuuxuxdx *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], F[3,{1}], -F[3,{1}], F[3,{1}], -F[3,{1}]}];
(* nexeudddxdxdx *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], F[4,{1}], -F[4,{1}], F[4,{1}], -F[4,{1}]}];
(* nexecdddxdxsx *) AddReal[FeynArtsProcess -> { F[3,{2}], -F[4,{2}]} -> {F[1,{1}], -F[2,{1}], F[4,{1}], -F[4,{1}], F[4,{1}], -F[4,{1}]}];
(* nexeuuuxddxdx *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], F[4,{1}], -F[4,{1}], F[3,{1}], -F[3,{1}]}];
(* nexeuuuxccxdx *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], F[3,{1}], -F[3,{1}], F[3,{2}], -F[3,{2}]}];
(* nexeuddxdxssx *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], F[4,{1}], -F[4,{1}], F[4,{2}], -F[4,{2}]}];
(* nexeuuxcddxsx *) AddReal[FeynArtsProcess -> { F[3,{2}], -F[4,{2}]} -> {F[1,{1}], -F[2,{1}], F[4,{1}], -F[4,{1}], F[3,{1}], -F[3,{1}]}];
(* nexeuddxdxbbx *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], F[4,{1}], -F[4,{1}], F[4,{3}], -F[4,{3}]}];
(* nexeuuuxdxbbx *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], F[3,{1}], -F[3,{1}], F[4,{3}], -F[4,{3}]}];
(* nexeuccxdxbbx *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], F[3,{2}], -F[3,{2}], F[4,{3}], -F[4,{3}]}];
(* nexeudxbbbxbx *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], F[4,{3}], -F[4,{3}], F[4,{3}], -F[4,{3}]}];

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

(* neexuxdddxgg  *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> {F[2,{1}], -F[1,{1}], V[5], V[5], F[4,{1}],  F[3,{1}]}];
(* neexcxddxsgg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[2,{1}], -F[1,{1}], V[5], V[5], F[3,{2}], -F[4,{2}]}];
(* neexuuxuxdgg  *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[3,{1}]} -> {F[2,{1}], -F[1,{1}], V[5], V[5], F[3,{1}],  F[3,{1}]}];
(* neexuxdbbxgg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], V[5], V[5], F[4,{3}], -F[4,{3}]}];

(* neexuxddddxdx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], F[4,{1}], -F[4,{1}], F[4,{1}], -F[4,{1}]}];
(* neexuuuxuxuxd *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], F[3,{1}], -F[3,{1}], F[3,{1}], -F[3,{1}]}];
(* neexuxcccxcxd *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], F[3,{2}], -F[3,{2}], F[3,{2}], -F[3,{2}]}];
(* neexuuxuxdddx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], F[4,{1}], -F[4,{1}], F[3,{1}], -F[3,{1}]}];
(* neexuuxuxccxd *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], F[3,{1}], -F[3,{1}], F[3,{2}], -F[3,{2}]}];
(* neexuxdddxssx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], F[4,{1}], -F[4,{1}], F[4,{2}], -F[4,{2}]}];
(* neexuuxcxddxs *) AddReal[FeynArtsProcess -> { F[4,{2}], -F[3,{2}]} -> {F[2,{1}], -F[1,{1}], F[4,{1}], -F[4,{1}], F[3,{1}], -F[3,{1}]}];
(* neexuuxuxdbbx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], F[3,{1}], -F[3,{1}], F[4,{3}], -F[4,{3}]}];
(* neexuxdddxbbx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], F[4,{1}], -F[4,{1}], F[4,{3}], -F[4,{3}]}];
(* neexuxccxdbbx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], F[3,{2}], -F[3,{2}], F[4,{3}], -F[4,{3}]}];
(* neexuxdbbbxbx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], F[4,{3}], -F[4,{3}], F[4,{3}], -F[4,{3}]}];

ChannelMap = {
  "nexeuccxdxg" -> "nexecddxsxg",
  "nexeudxbbxg" -> "nexecddxsxg[1,2,3,6,4,5,7] MB=0",
  "neexuxccxdg" -> "neexcxddxsg",
  "neexuxdbbxg" -> "neexcxddxsg[1,2,3,6,4,5,7] MB=0",
  (* reals *)
  "nexeuccxdxgg"  -> "nexecddxsxgg",
  "nexeudxbbxgg"  -> "nexecddxsxgg[1,2,3,6,4,5,7,8] MB=0",

  "nexeucccxcxdx" -> "nexecdddxdxsx",
  "nexecccxddxsx" -> "nexeuuuxccxdx",
  "nexeuccxddxdx" -> "nexeuddxdxssx[1,2,3,7,8,4,5,6]",
  "nexecddxsxbbx" -> "nexeuccxdxbbx",
  "nexeuddxdxbbx" -> "nexeuddxdxssx MB=0",
  "nexeuuuxdxbbx" -> "nexeuuuxccxdx[1,2,3,4,5,8,6,7] MB=0",
  "nexeuccxdxbbx" -> "nexeuuxcddxsx[1,2,5,3,4,8,6,7] MB=0",
  "nexeudxbbbxbx" -> "nexecdddxdxsx[1,2,3,8,4,5,6,7] MB=0",

  "neexuxccxdgg"  -> "neexcxddxsgg",
  "neexuxdbbxgg"  -> "neexcxddxsgg[1,2,3,6,4,5,7,8] MB=0",

  "neexcxdddxdxs" -> "neexuxcccxcxd",
  "neexccxcxddxs" -> "neexuuxuxccxd",
  "neexuxccxdddx" -> "neexuxdddxssx[1,2,3,7,8,4,5,6]",
  "neexcxddxsbbx" -> "neexuxccxdbbx",
  "neexuxdddxbbx" -> "neexuxdddxssx MB=0",
  "neexuuxuxdbbx" -> "neexuuxuxccxd[1,2,3,4,5,8,6,7] MB=0",
  "neexuxccxdbbx" -> "neexuuxcxddxs[1,2,5,3,4,8,6,7] MB=0",
  "neexuxdbbbxbx" -> "neexuxcccxcxd[1,2,3,8,4,5,6,7] MB=0"
};
