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

SelectInterference = {eQED -> 8};
CreateTopologiesOptions = {ExcludeTopologies -> {Snails, WFCorrectionCTs, TadpoleCTs, Loops[6|7]}};

SetParameters = JoinOptions[{ME -> 0, YE -> 0, YukB -> 1, YukT -> 1}];
ColourCorrelations = True;

(* ZW- *)
(* neeexexuxdg    *) AddProcess[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    *) AddProcess[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  *) AddProcess[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  *) AddProcess[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    *) AddProcess[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    *) AddProcess[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  *) AddProcess[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  *) AddProcess[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}]];

ChannelMap = {
  "eeexexbbxg"     -> "eeexexddxg MB=0",
  "eexmmxbbxg"     -> "eexmmxddxg MB=0",
  "nmnmxeexbbxg"   -> "nmnmxeexddxg MB=0",
  "nenenexnexbbxg" -> "nenenexnexddxg MB=0",
  "nenexnmnmxbbxg" -> "nenexnmnmxddxg MB=0",
  (* reals *)
  (* ZZ 2e2e *)
  "eeexexccxddx"     -> "eeexexuuxddx",
  "eexmmxccxddx"     -> "eexmmxuuxddx",
  "nmnmxeexccxddx"   -> "nmnmxeexuuxddx",
  "nenenexnexccxddx" -> "nenenexnexuuxddx",
  "nenexnmnmxccxddx" -> "nenexnmnmxuuxddx",
  (* ZZ 2e2m *)
  "eeexexddxbbx"     -> "eeexexddxssx MB=0",
  "eexmmxddxbbx"     -> "eexmmxddxssx MB=0",
  "nmnmxeexddxbbx"   -> "nmnmxeexddxssx MB=0",
  "nenenexnexddxbbx" -> "nenenexnexddxssx MB=0",
  "nenexnmnmxddxbbx" -> "nenexnmnmxddxssx MB=0",
  (* ZZ 2e2nm *)
  "eeexexuuxbbx"     -> "eeexexuuxddx MB=0",
  "eexmmxuuxbbx"     -> "eexmmxuuxddx MB=0",
  "nmnmxeexuuxbbx"   -> "nmnmxeexuuxddx MB=0",
  "nenenexnexuuxbbx" -> "nenenexnexuuxddx MB=0",
  "nenexnmnmxuuxbbx" -> "nenexnmnmxuuxddx MB=0",
  (* ZZ 2ne2ne *)
  "eeexexbbbxbx"     -> "eeexexdddxdx MB=0",
  "eexmmxbbbxbx"     -> "eexmmxdddxdx MB=0",
  "nmnmxeexbbbxbx"   -> "nmnmxeexdddxdx MB=0",
  "nenenexnexbbbxbx" -> "nenenexnexdddxdx MB=0",
  "nenexnmnmxbbbxbx" -> "nenexnmnmxdddxdx MB=0",
  (* ZZ 2ne2nm *)
  "eeexexbbxgg"      -> "eeexexddxgg MB=0",
  "eexmmxbbxgg"      -> "eexmmxddxgg MB=0",
  "nmnmxeexbbxgg"    -> "nmnmxeexddxgg MB=0",
  "nenenexnexbbxgg"  -> "nenenexnexddxgg MB=0",
  "nenexnmnmxbbxgg"  -> "nenexnmnmxddxgg MB=0",
  (* ZW- *)
  "neeexexuxdbbx"   -> "neeexexcxddxs[1,2,3,4,5,8,6,7] MB=0",
  "nmeexmxuxdbbx"   -> "nmeexmxcxddxs[1,2,3,4,5,8,6,7] MB=0",
  "nenenexexuxdbbx" -> "nenenexexcxddxs[1,2,3,4,5,8,6,7] MB=0",
  "nenmnmxexuxdbbx" -> "nenmnmxexcxddxs[1,2,3,4,5,8,6,7] MB=0",
  (* ZW+ *)
  "nmxeexmudxbbx"   -> "nmxeexmcddxsx[1,2,3,4,5,8,6,7] MB=0",
  "nexeeexudxbbx"   -> "nexeeexcddxsx[1,2,3,4,5,8,6,7] MB=0",
  "nenexnexeudxbbx" -> "nenexnexecddxsx[1,2,3,4,5,8,6,7] MB=0",
  "nexnmnmxeudxbbx" -> "nexnmnmxecddxsx[1,2,3,4,5,8,6,7] MB=0"
};
