
(* description = "pp -> VV+jets|pp -> llll+jets|pp -> llllj|Production of four leptons (all combinations of leptons and neutrinos) and a jet." *)

SelectCoupling = (Exponent[#1, gQCD] == 1+2*#2 &);
SelectInterference = {eQED -> 8};
CreateTopologiesOptions = {ExcludeTopologies -> {Snails, WFCorrectionCTs, TadpoleCTs, Loops[6|7]}};

(* ZZ 2e2e *)
(* eeexexddxg     *) SubProcess[ 1] = {FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[2,{1}],  F[2,{1}], -F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0}]};
(* eeexexuuxg     *) SubProcess[ 2] = {FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[2,{1}],  F[2,{1}], -F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0}]};
(* eeexexbbxg     *) SubProcess[ 3] = {FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {F[2,{1}],  F[2,{1}], -F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0}]};

(* ZZ 2e2m *)
(* eexmmxddxg     *) SubProcess[ 4] = {FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[2,{1}],  F[2,{2}], -F[2,{1}], -F[2,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};
(* eexmmxuuxg     *) SubProcess[ 5] = {FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[2,{1}],  F[2,{2}], -F[2,{1}], -F[2,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};
(* eexmmxbbxg     *) SubProcess[ 6] = {FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {F[2,{1}],  F[2,{2}], -F[2,{1}], -F[2,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};

(* W+W-, ZZ ee *)
(* nenexeexddxg   *) SubProcess[ 7] = {FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[2,{1}],  F[1,{1}], -F[2,{1}], -F[1,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0}]};
(* nenexeexuuxg   *) SubProcess[ 8] = {FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[2,{1}],  F[1,{1}], -F[2,{1}], -F[1,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0}]};
(* nenexeexbbxg   *) SubProcess[ 9] = {FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {F[2,{1}],  F[1,{1}], -F[2,{1}], -F[1,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0}]};

(* W+W- em *)
(* nexnmemxddxg   *) SubProcess[10] = {FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[2,{2}],  F[1,{1}], -F[2,{1}], -F[1,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};
(* nexnmemxuuxg   *) SubProcess[11] = {FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[2,{2}],  F[1,{1}], -F[2,{1}], -F[1,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};
(* nexnmemxbbxg   *) SubProcess[12] = {FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {F[2,{2}],  F[1,{1}], -F[2,{1}], -F[1,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};

(* ZZ 2e2nm *)
(* nmnmxeexuuxg   *) SubProcess[13] = {FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[2,{1}],  F[1,{2}], -F[2,{1}], -F[1,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};
(* nmnmxeexddxg   *) SubProcess[14] = {FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[2,{1}],  F[1,{2}], -F[2,{1}], -F[1,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};
(* nmnmxeexbbxg   *) SubProcess[15] = {FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {F[2,{1}],  F[1,{2}], -F[2,{1}], -F[1,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};

(* ZZ 2ne2ne *)
(* nenenexnexddxg *) SubProcess[16] = {FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[1,{1}],  F[1,{1}], -F[1,{1}], -F[1,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0}]};
(* nenenexnexuuxg *) SubProcess[17] = {FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[1,{1}],  F[1,{1}], -F[1,{1}], -F[1,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0}]};
(* nenenexnexbbxg *) SubProcess[18] = {FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {F[1,{1}],  F[1,{1}], -F[1,{1}], -F[1,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0}]};

(* ZZ 2ne2nm *)
(* nenexnmnmxddxg *) SubProcess[19] = {FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[1,{1}],  F[1,{2}], -F[1,{1}], -F[1,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};
(* nenexnmnmxuuxg *) SubProcess[20] = {FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[1,{1}],  F[1,{2}], -F[1,{1}], -F[1,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};
(* nenexnmnmxbbxg *) SubProcess[21] = {FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {F[1,{1}],  F[1,{2}], -F[1,{1}], -F[1,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};

(* ZW- *)
(* neeexexuxdg    *) SubProcess[22] = {FeynArtsProcess -> {F[4,{1}], -F[3,{1}]} -> {F[2,{1}],  F[2,{1}], -F[2,{1}], -F[1,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0}]};
(* nmeexmxuxdg    *) SubProcess[23] = {FeynArtsProcess -> {F[4,{1}], -F[3,{1}]} -> {F[2,{1}], -F[2,{1}],  F[2,{2}], -F[1,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};
(* nenenexexuxdg  *) SubProcess[24] = {FeynArtsProcess -> {F[4,{1}], -F[3,{1}]} -> {F[1,{1}], -F[1,{1}], -F[1,{1}],  F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0}]};
(* nenmnmxexuxdg  *) SubProcess[25] = {FeynArtsProcess -> {F[4,{1}], -F[3,{1}]} -> {F[1,{2}], -F[1,{2}],  F[2,{1}], -F[1,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};

(* ZW+ *)
(* nmxeexmudxg    *) SubProcess[26] = {FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {F[2,{1}], -F[2,{1}],  F[1,{2}], -F[2,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};
(* nexeeexudxg    *) SubProcess[27] = {FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {F[2,{1}], -F[2,{1}], -F[2,{1}],  F[1,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0}]};
(* nenexnexeudxg  *) SubProcess[28] = {FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {F[1,{1}],  F[1,{1}], -F[1,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0}]};
(* nexnmnmxeudxg  *) SubProcess[29] = {FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {F[1,{2}], -F[1,{2}],  F[1,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};

(* old Sherpa *)
(* nenmxexmuuxg   *) SubProcess[30] = {FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[2,{1}],  F[1,{2}], -F[2,{2}], -F[1,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};
(* nenmxexmddxg   *) SubProcess[31] = {FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[2,{1}],  F[1,{2}], -F[2,{2}], -F[1,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};
(* nenmxexmbbxg   *) SubProcess[32] = {FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {F[2,{1}],  F[1,{2}], -F[2,{2}], -F[1,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};
(* nenexnmmxuxdg  *) SubProcess[33] = {FeynArtsProcess -> {F[4,{1}], -F[3,{1}]} -> {F[1,{1}], -F[1,{1}],  F[2,{2}], -F[1,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};
(* nenexnmxmudxg  *) SubProcess[34] = {FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {F[1,{1}], -F[1,{1}],  F[1,{2}], -F[2,{2}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MM -> 0}]};

ChannelMap = {
  "eeexexbbxg"     -> "eeexexddxg MB=0",
  "eexmmxbbxg"     -> "eexmmxddxg MB=0",
  "nmnmxeexbbxg"   -> "nmnmxeexddxg MB=0",
  "nenenexnexbbxg" -> "nenenexnexddxg MB=0",
  "nenexnmnmxbbxg" -> "nenexnmnmxddxg MB=0"
};
