
(* 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) at NLO EW." *)

SelectInterference = {gQCD -> 2};
SetParameters = JoinOptions[{ME -> 0}];

(* O(as a^3) + O(as a^4) *)

(* ZllA *)

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

(* ZnnA *)

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

(* WA *)

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


(* 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}]}];

(* 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}]}];

(* 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}]}];

(* 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}]}];

(* 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}]}];
(* 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}]}];
(* neexuxdbbxa *) AddReal[FeynArtsProcess -> {-F[3,{1}],  F[4,{1}]} -> { V[1],  F[2,{1}], -F[1,{1}],  F[4,{3}], -F[4,{3}]}];


ChannelMap = {
  (* reals *)
  "eexccxddxa" -> "eexuuxddxa",
  "nenexccxddxa" -> "nenexuuxddxa",
};
