
(* description = "pp -> Vtt+jets|pp -> Z/A(->ll)tt+jets|pp -> llttj|Off-shell Z/A boson plus t t-bar jet production with leptonic decays (l+l- and nn)" *)

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

(* eexttxggg    *) AddProcess[FeynArtsProcess -> {V[5]    ,  V[5]    } -> {F[2,{1}], -F[2,{1}], F[3,{3}], -F[3,{3}], V[5]}];
(* eexttxddxg   *) AddProcess[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[2,{1}], -F[2,{1}], F[3,{3}], -F[3,{3}], V[5]}];
(* eexuuxttxg   *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[2,{1}], -F[2,{1}], F[3,{3}], -F[3,{3}], V[5]}];
(* eexttxbbxg   *) AddProcess[FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {F[2,{1}], -F[2,{1}], F[3,{3}], -F[3,{3}], V[5]}];

(* nenexttxggg  *) AddProcess[FeynArtsProcess -> {V[5]    ,  V[5]    } -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}], V[5]}];
(* nenexttxddxg *) AddProcess[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}], V[5]}];
(* nenexuuxttxg *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}], V[5]}];
(* nenexttxbbxg *) AddProcess[FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}], V[5]}];

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

(* eexttxdddxdx   *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> {F[2,{1}], -F[2,{1}], F[3,{3}], -F[3,{3}],  F[4,{1}],  F[4,{1}]}];
(* eexuuxttxddx   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[2,{1}], -F[2,{1}], F[3,{3}], -F[3,{3}],  F[3,{1}], -F[3,{1}]}];
(* eexttxddxssx   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[2,{1}], -F[2,{1}], F[3,{3}], -F[3,{3}],  F[4,{2}], -F[4,{2}]}];
(* eexuuuxuxttx   *) AddReal[FeynArtsProcess -> { F[3,{1}],  F[3,{1}]} -> {F[2,{1}], -F[2,{1}], F[3,{3}], -F[3,{3}],  F[3,{1}],  F[3,{1}]}];
(* eexuuxccxttx   *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {F[2,{1}], -F[2,{1}], F[3,{3}], -F[3,{3}],  F[3,{2}], -F[3,{2}]}];
(* eexttxddxbbx   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[2,{1}], -F[2,{1}], F[3,{3}], -F[3,{3}], -F[4,{3}],  F[4,{3}]}];
(* eexuuxttxbbx   *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {F[2,{1}], -F[2,{1}], F[3,{3}], -F[3,{3}], -F[4,{3}],  F[4,{3}]}];
(* eexttxbbbxbx   *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> {F[2,{1}], -F[2,{1}], F[3,{3}], -F[3,{3}], -F[4,{3}],  F[4,{3}]}];

(* nenexttxgggg   *) AddReal[FeynArtsProcess -> { V[5]    ,  V[5]    } -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}], V[5], V[5]}];
(* nenexuuxttxgg  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}], V[5], V[5]}];
(* nenexttxddxgg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}], V[5], V[5]}];
(* nenexttxbbxgg  *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}], V[5], V[5]}];

(* nenexttxdddxdx *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}],  F[4,{1}],  F[4,{1}]}];
(* nenexuuxttxddx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}],  F[3,{1}], -F[3,{1}]}];
(* nenexttxddxssx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}],  F[4,{2}], -F[4,{2}]}];
(* nenexuuuxuxttx *) AddReal[FeynArtsProcess -> { F[3,{1}],  F[3,{1}]} -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}],  F[3,{1}],  F[3,{1}]}];
(* nenexuuxccxttx *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}],  F[3,{2}], -F[3,{2}]}];
(* nenexttxddxbbx *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}], -F[4,{3}],  F[4,{3}]}];
(* nenexuuxttxbbx *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}], -F[4,{3}],  F[4,{3}]}];
(* nenexttxbbbxbx *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> {F[1,{1}], -F[1,{1}], F[3,{3}], -F[3,{3}], -F[4,{3}],  F[4,{3}]}];

ChannelMap = {
  "eexttxbbxg"   -> "eexttxddxg MB=0",
  "nenexttxbbxg" -> "nenexttxddxg MB=0",
  (* real *)
  "eexccxttxddx"   -> "eexuuxttxddx",
  "eexttxddxbbx"   -> "eexttxddxssx MB=0",
  "eexuuxttxbbx"   -> "eexuuxttxddx MB=0",
  "eexttxbbbxbx"   -> "eexttxdddxdx MB=0",
  "eexttxbbxgg"    -> "eexttxddxgg MB=0",
  "nenexccxttxddx" -> "nenexuuxttxddx",
  "nenexttxddxbbx" -> "nenexttxddxssx MB=0",
  "nenexuuxttxbbx" -> "nenexuuxttxddx MB=0",
  "nenexttxbbbxbx" -> "nenexttxdddxdx MB=0",
  "nenexttxbbxgg"  -> "nenexttxddxgg MB=0"
};
