(* description = "pp -> V+jets|pp -> V+jets|pp -> V(j)|On-shell Z/W/Photon production and zero or one jet at NLO EW." *)

(* O(a) + O(a^2) *)

AddProcess[FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {-V[3]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 0}, OnTheFlyMode -> 1];
AddProcess[FeynArtsProcess -> {-F[3,{1}], F[4,{1}]} -> {V[3]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 0}, OnTheFlyMode -> 1];

AddProcess[FeynArtsProcess -> {-F[3,{1}], F[3,{1}]} -> {V[2]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 0}, OnTheFlyMode -> 1];
AddProcess[FeynArtsProcess -> {-F[4,{1}], F[4,{1}]} -> {V[2]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 0}, OnTheFlyMode -> 1];
AddProcess[FeynArtsProcess -> {-F[4,{3}], F[4,{3}]} -> {V[2]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 0}, OnTheFlyMode -> 1];

AddReal[FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {-V[3], V[1]}, SelectInterference -> {gQCD -> 0}];
AddReal[FeynArtsProcess -> {-F[3,{1}], F[4,{1}]} -> {V[3], V[1]}, SelectInterference -> {gQCD -> 0}];

AddReal[FeynArtsProcess -> {-F[3,{1}], F[3,{1}]} -> {V[2], V[1]}, SelectInterference -> {gQCD -> 0}];
AddReal[FeynArtsProcess -> {-F[4,{1}], F[4,{1}]} -> {V[2], V[1]}, SelectInterference -> {gQCD -> 0}];
AddReal[FeynArtsProcess -> {-F[4,{3}], F[4,{3}]} -> {V[2], V[1]}, SelectInterference -> {gQCD -> 0}];



(* O(as a) + O(as a^2) *)

AddProcess[FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {-V[3], V[5]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 2}];
AddProcess[FeynArtsProcess -> {-F[3,{1}], F[4,{1}]} -> {V[3], V[5]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 2}];

AddProcess[FeynArtsProcess -> {-F[3,{1}], F[3,{1}]} -> {V[2], V[5]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 2}];
AddProcess[FeynArtsProcess -> {-F[4,{1}], F[4,{1}]} -> {V[2], V[5]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 2}];
AddProcess[FeynArtsProcess -> {-F[4,{3}], F[4,{3}]} -> {V[2], V[5]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 2}];

AddProcess[FeynArtsProcess -> {-F[3,{1}], F[3,{1}]} -> {V[1], V[5]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 2}];
AddProcess[FeynArtsProcess -> {-F[4,{1}], F[4,{1}]} -> {V[1], V[5]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 2}];
AddProcess[FeynArtsProcess -> {-F[4,{3}], F[4,{3}]} -> {V[1], V[5]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 2}];


(* Reals W *)

AddReal[FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {-V[3], V[5], V[1]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {-V[3], F[4,{1}], -F[3,{1}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {-V[3], F[4,{2}], -F[3,{2}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> {-V[3], F[3,{1}], -F[3,{1}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> {-V[3], F[4,{3}], -F[4,{3}]}, SelectInterference -> {gQCD -> 2}];

AddReal[FeynArtsProcess -> {-F[3,{1}], F[4,{1}]} -> {V[3], V[5], V[1]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> { V[3], F[4,{1}],  F[3,{1}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[3], F[3,{2}], -F[4,{2}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}],  F[3,{1}]} -> { V[3], F[3,{1}],  F[3,{1}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[3], F[4,{3}], -F[4,{3}]}, SelectInterference -> {gQCD -> 2}];

(* Reals Z *)

AddReal[FeynArtsProcess -> {-F[3,{1}], F[3,{1}]} -> {V[2], V[5], V[1]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> {-F[4,{1}], F[4,{1}]} -> {V[2], V[5], V[1]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> {-F[4,{3}], F[4,{3}]} -> {V[2], V[5], V[1]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> { V[2],  F[4,{1}],  F[4,{1}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  F[3,{1}], -F[3,{1}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  F[4,{2}], -F[4,{2}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2],  F[3,{2}], -F[3,{2}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[3,{1}],  F[3,{1}]} -> { V[2],  F[3,{1}],  F[3,{1}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2],  F[3,{2}], -F[3,{2}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2], -F[4,{3}],  F[4,{3}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2], -F[4,{3}],  F[4,{3}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2], -F[4,{3}],  F[4,{3}]}, SelectInterference -> {gQCD -> 2}];

(* Reals Photon *)

AddReal[FeynArtsProcess -> {-F[3,{1}], F[3,{1}]} -> {V[1], V[5], V[1]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> {-F[4,{1}], F[4,{1}]} -> {V[1], V[5], V[1]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> {-F[4,{3}], F[4,{3}]} -> {V[1], V[5], V[1]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> { V[1],  F[4,{1}],  F[4,{1}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1],  F[3,{1}], -F[3,{1}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1],  F[4,{2}], -F[4,{2}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1],  F[3,{2}], -F[3,{2}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[3,{1}],  F[3,{1}]} -> { V[1],  F[3,{1}],  F[3,{1}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1],  F[3,{2}], -F[3,{2}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], -F[4,{3}],  F[4,{3}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], -F[4,{3}],  F[4,{3}]}, SelectInterference -> {gQCD -> 2}];
AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], -F[4,{3}],  F[4,{3}]}, SelectInterference -> {gQCD -> 2}];


(* for democratic jet definition: WA O(a^2) + O(a^3) *)


AddProcess[FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {-V[3], V[1]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 0}];
AddProcess[FeynArtsProcess -> {-F[3,{1}], F[4,{1}]} -> {V[3], V[1]}, UnitaryGauge -> False, SelectInterference -> {gQCD -> 0}];

AddReal[FeynArtsProcess -> {F[3,{1}], -F[4,{1}]} -> {-V[3], V[1], V[1]}, SelectInterference -> {gQCD -> 0}];
AddReal[FeynArtsProcess -> {-F[3,{1}], F[4,{1}]} -> {V[3], V[1], V[1]}, SelectInterference -> {gQCD -> 0}];


