
(* description = "pp -> V+jets|pp -> W(->ln)+jets|pp -> lnjj|Off-shell W+/W- boson plus two jets production with leptonic decays (nf=5 and nf=6)." *)

SelectInterference = {eQED -> 4};
CreateTopologiesOptions = {ExcludeTopologies -> {Snails, WFCorrectionCTs, TadpoleCTs, Loops[6]}};
ColourCorrelations = True;
OTFColourCorrelations = True;

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


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

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

(* nf=5 *)

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

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


(* old Sherpa *)
(* nexeudxssx *) AddProcess[FeynArtsProcess -> {F[4,{2}], -F[4,{2}]} -> {F[1,{1}], -F[2,{1}], F[4,{1}], -F[3,{1}]}, SetParameters -> JoinOptions[{ME -> 0}]];
(* neexuxdssx *) AddProcess[FeynArtsProcess -> {F[4,{2}], -F[4,{2}]} -> {F[2,{1}], -F[1,{1}], F[3,{1}], -F[4,{1}]}, SetParameters -> JoinOptions[{ME -> 0}]];

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

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

ChannelMap = {
  "nexeuccxdx" -> "nexecddxsx",
  "nexeudxbbx" -> "nexecddxsx[1,2,3,6,4,5] MB=0",
  "neexuxccxd" -> "neexcxddxs",
  "neexuxdbbx" -> "neexcxddxs[1,2,3,6,4,5] MB=0",
  (* reals *)
  "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"
};
