
(* description = "pp -> VV+jets|pp -> Z/A/W(->ll)A+jets|pp -> llAj|Off-shell Z/A/W boson and on-shell photon production plus jet with leptonic decays (l+l-/nn/l+n/l-n)" *)

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

(* ZllA *)

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

(* ZnnA *)

(* nenexddxag *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], V[5]}];
(* nenexuuxag *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], V[5]}];
(* nenexbbxag *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], F[1,{1}], -F[1,{1}], V[5]}];

(* WA *)

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


(* eexdddxdxa   *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], F[4,{1}],  F[4,{1}]}];
(* eexuuuxuxa   *) AddReal[FeynArtsProcess -> { F[3,{1}],  F[3,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], F[3,{1}],  F[3,{1}]}];
(* eexuuxddxa   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], F[3,{1}], -F[3,{1}]}];
(* eexddxssxa   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], F[4,{2}], -F[4,{2}]}];
(* eexuuxccxa   *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], F[3,{2}], -F[3,{2}]}];
(* eexddxagg    *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]    ,  V[5]    }];
(* eexuuxagg    *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]    ,  V[5]    }];

(* eexbbbxbxa   *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], F[2,{1}], -F[2,{1}], F[4,{3}], -F[4,{3}]}];
(* eexuuxbbxa   *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], F[4,{3}], -F[4,{3}]}];
(* eexddxbbxa   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], F[4,{3}], -F[4,{3}]}];
(* eexbbxagg    *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]    ,  V[5]    }];

(* nenexdddxdxa *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], F[4,{1}],  F[4,{1}]}];
(* nenexuuuxuxa *) AddReal[FeynArtsProcess -> { F[3,{1}],  F[3,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], F[3,{1}],  F[3,{1}]}];
(* nenexuuxddxa *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], F[3,{1}], -F[3,{1}]}];
(* nenexddxssxa *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], F[4,{2}], -F[4,{2}]}];
(* nenexuuxccxa *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], F[3,{2}], -F[3,{2}]}];
(* nenexddxagg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], V[5]    ,  V[5]    }];
(* nenexuuxagg  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], V[5]    ,  V[5]    }];

(* nenexbbbxbxa *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], F[1,{1}], -F[1,{1}], F[4,{3}], -F[4,{3}]}];
(* nenexuuxbbxa *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], F[4,{3}], -F[4,{3}]}];
(* nenexddxbbxa *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], F[4,{3}], -F[4,{3}]}];
(* nenexbbxagg  *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], F[1,{1}], -F[1,{1}], V[5]    ,  V[5]    }];

(* W+ A *)
(* nexeuddxdxa *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], -F[2,{1}],  F[1,{1}],  F[4,{1}], -F[3,{1}]}];
(* nexecddxsxa *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], -F[2,{1}],  F[1,{1}],  F[4,{2}], -F[3,{2}]}];
(* nexeuuuxdxa *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[1], -F[2,{1}],  F[1,{1}],  F[3,{1}], -F[3,{1}]}];
(* nexeuccxdxa *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[1], -F[2,{1}],  F[1,{1}],  F[3,{2}], -F[3,{2}]}];
(* nexeudxagg  *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[1], -F[2,{1}],  F[1,{1}],  V[5]    ,  V[5]    }];
(* nexeudxbbxa *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> { V[1], -F[2,{1}],  F[1,{1}],  F[4,{3}], -F[4,{3}]}];

(* W- A *)
(* neexuxdddxa *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> { V[1],  F[2,{1}], -F[1,{1}],  F[4,{1}],  F[3,{1}]}];
(* neexcxddxsa *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1],  F[2,{1}], -F[1,{1}],  F[3,{2}], -F[4,{2}]}];
(* neexuuxuxda *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[3,{1}]} -> { V[1],  F[2,{1}], -F[1,{1}],  F[3,{1}],  F[3,{1}]}];
(* neexuxccxda *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[1],  F[2,{1}], -F[1,{1}],  F[3,{2}], -F[3,{2}]}];
(* neexuxdagg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[1],  F[2,{1}], -F[1,{1}],  V[5]    ,  V[5]    }];
(* neexuxdbbxa *) AddReal[FeynArtsProcess -> {-F[3,{1}],  F[4,{1}]} -> { V[1],  F[2,{1}], -F[1,{1}],  F[4,{3}], -F[4,{3}]}];


ChannelMap = {
  "eexbbxag"   -> "eexddxag MB=0",
  "nenexbbxag" -> "nenexddxag MB=0",
  (* reals *)
  "eexccxddxa" -> "eexuuxddxa",
  "eexddxbbxa" -> "eexddxssxa MB=0",
  "eexuuxbbxa" -> "eexuuxddxa MB=0",
  "eexbbbxbxa" -> "eexdddxdxa MB=0",
  "eexbbxagg"  -> "eexddxagg MB=0",
  "nenexccxddxa" -> "nenexuuxddxa",
  "nenexddxbbxa" -> "nenexddxssxa MB=0",
  "nenexuuxbbxa" -> "nenexuuxddxa MB=0",
  "nenexbbbxbxa" -> "nenexdddxdxa MB=0",
  "nenexbbxagg"  -> "nenexddxagg MB=0",
  "nexeudxbbxa" -> "nexecddxsxa[1,2,3,6,4,5,7] MB=0",
  "neexuxdbbxa" -> "neexcxddxsa[1,2,3,6,4,5,7] MB=0"
};
