
(* description = "pp -> V+jets|pp -> Z/A(->ll)+jets|pp -> llj|Off-shell Z/W/A boson plus one jet production with leptonic decays (l+l-/nn/l+n/l-n), nf=5 (no top loops)." *)

SelectInterference = {eQED -> 4};
CreateTopologiesOptions = {ExcludeTopologies -> {Snails, WFCorrectionCTs, TadpoleCTs, Loops[5]}};

InsertFieldsOptions = {Restrictions -> {ExcludeParticles -> {F[3,{3}]}, NoQuarkMixing}};
SetParameters = JoinOptions[{nf -> 5, ME -> 0}];


(* eexddxg   *) AddProcess[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[2,{1}], -F[2,{1}], V[5]}];
(* eexuuxg   *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[2,{1}], -F[2,{1}], V[5]}];
(* nenexddxg *) AddProcess[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[1,{1}], V[5]}];
(* nenexuuxg *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[1,{1}], -F[1,{1}], V[5]}];

(* eexdddxdx   *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> {F[2,{1}], -F[2,{1}], F[4,{1}],  F[4,{1}]}];
(* eexuuxddx   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[2,{1}], -F[2,{1}], F[3,{1}], -F[3,{1}]}];
(* eexddxssx   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[2,{1}], -F[2,{1}], F[4,{2}], -F[4,{2}]}];
(* eexddxgg    *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[2,{1}], -F[2,{1}], V[5]    ,  V[5]    }];
(* eexuuuxux   *) AddReal[FeynArtsProcess -> { F[3,{1}],  F[3,{1}]} -> {F[2,{1}], -F[2,{1}], F[3,{1}],  F[3,{1}]}];
(* eexuuxccx   *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {F[2,{1}], -F[2,{1}], F[3,{2}], -F[3,{2}]}];
(* eexuuxgg    *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {F[2,{1}], -F[2,{1}], V[5]    ,  V[5]    }];
(* nenexdddxdx *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> {F[1,{1}], -F[1,{1}], F[4,{1}],  F[4,{1}]}];
(* nenexuuxddx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[1,{1}], F[3,{1}], -F[3,{1}]}];
(* nenexddxssx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[1,{1}], F[4,{2}], -F[4,{2}]}];
(* nenexddxgg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[1,{1}], V[5]    ,  V[5]    }];
(* nenexuuuxux *) AddReal[FeynArtsProcess -> { F[3,{1}],  F[3,{1}]} -> {F[1,{1}], -F[1,{1}], F[3,{1}],  F[3,{1}]}];
(* nenexuuxccx *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {F[1,{1}], -F[1,{1}], F[3,{2}], -F[3,{2}]}];
(* nenexuuxgg  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {F[1,{1}], -F[1,{1}], V[5]    ,  V[5]    }];


(* neexuxdg *) AddProcess[FeynArtsProcess -> {F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], V[5]}];
(* nexeudxg *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], V[5]}];

(* neexuxdgg  *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], V[5], V[5]}];
(* neexuxdddx *) AddReal[FeynArtsProcess -> {F[4,{1}],  F[4,{1}]} -> {F[2,{1}], -F[1,{1}], F[4,{1}],  F[3,{1}]}];
(* neexcxddxs *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[2,{1}], -F[1,{1}], F[3,{2}], -F[4,{2}]}];
(* neexuuxuxd *) AddReal[FeynArtsProcess -> {F[3,{1}],  F[4,{1}]} -> {F[2,{1}], -F[1,{1}], F[3,{1}],  F[3,{1}]}];
(* neexuxdbbx *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[1,{1}], F[4,{3}], -F[4,{3}]}];

(* nexeudxgg  *) AddReal[FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], V[5], V[5]}];
(* nexeuddxdx *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], F[4,{1}], -F[3,{1}]}];
(* nexecddxsx *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], F[4,{2}], -F[3,{2}]}];
(* nexeuuuxdx *) AddReal[FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], F[3,{1}], -F[3,{1}]}];
(* nexeudxbbx *) AddReal[FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[2,{1}], F[4,{3}], -F[4,{3}]}];


ChannelMap = {
  "eexbbxg"   -> "eexddxg MB=0",
  "nenexbbxg" -> "nenexddxg MB=0",
  (* reals *)
  "eexccxddx"   -> "eexuuxddx",
  "eexddxbbx"   -> "eexddxssx MB=0",
  "eexuuxbbx"   -> "eexuuxddx MB=0",
  "eexbbbxbx"   -> "eexdddxdx MB=0",
  "eexbbxgg"    -> "eexddxgg MB=0",
  "nenexccxddx" -> "nenexuuxddx",
  "nenexddxbbx" -> "nenexddxssx MB=0",
  "nenexuuxbbx" -> "nenexuuxddx MB=0",
  "nenexbbbxbx" -> "nenexdddxdx MB=0",
  "nenexbbxgg"  -> "nenexddxgg MB=0",
  (* reals Wj*)
  "nexeuccxdx" -> "nexecddxsx",
  "nexeudxbbx" -> "nexecddxsx[1,2,3,6,4,5] MB=0",
  "neexuxccxd" -> "neexcxddxs",
  "neexuxdbbx" -> "neexcxddxs[1,2,3,6,4,5] MB=0"
};
