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

(* ZllA *)

(* olmode=1 *)

(* eexddxag   *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MB -> 0}], OnTheFlyMode -> 1];
(* eexuuxag   *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MB -> 0}], OnTheFlyMode -> 1];
(* eexbbxag   *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MB -> 0}], OnTheFlyMode -> 1];

(* eexddxag   *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MB -> 0, nf -> 5}], OnTheFlyMode -> 1, InsertFieldsOptions -> {Restrictions -> {ExcludeParticles -> {F[3,{3}]}, NoQuarkMixing}}];
(* eexuuxag   *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MB -> 0, nf -> 5}], OnTheFlyMode -> 1, InsertFieldsOptions -> {Restrictions -> {ExcludeParticles -> {F[3,{3}]}, NoQuarkMixing}}];
(* eexbbxag   *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MB -> 0, nf -> 5}], OnTheFlyMode -> 1, InsertFieldsOptions -> {Restrictions -> {ExcludeParticles -> {F[3,{3}]}, NoQuarkMixing}}];

(* eexddxag   *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MB -> 0, nf -> 4}], OnTheFlyMode -> 1, InsertFieldsOptions -> {Restrictions -> {ExcludeParticles -> {F[3,{3|4}]}, NoQuarkMixing}}];
(* eexuuxag   *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MB -> 0, nf -> 4}], OnTheFlyMode -> 1, InsertFieldsOptions -> {Restrictions -> {ExcludeParticles -> {F[3,{3|4}]}, NoQuarkMixing}}];
(* eexbbxag   *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MB -> 0, nf -> 4}], OnTheFlyMode -> 1, InsertFieldsOptions -> {Restrictions -> {ExcludeParticles -> {F[3,{3|4}]}, NoQuarkMixing}}];

(* olmode=3 *)

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

(* eexddxag   *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MB -> 0}], OnTh4FlyMode -> 3];
(* eexuuxag   *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MB -> 0}], OnTheFlyMode -> 3];
(* eexbbxag   *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, MB -> 0}], OnTheFlyMode -> 3];

(* eexddxag   *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, nf -> 4}], OnTheFlyMode -> 3, InsertFieldsOptions -> {Restrictions -> {ExcludeParticles -> {F[3,{3|4}]}, NoQuarkMixing}}];
(* eexuuxag   *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, nf -> 4}], OnTheFlyMode -> 3, InsertFieldsOptions -> {Restrictions -> {ExcludeParticles -> {F[3,{3|4}]}, NoQuarkMixing}}];
(* eexbbxag   *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]}, SetParameters -> JoinOptions[{ME -> 0, nf -> 4}], OnTheFlyMode -> 3, InsertFieldsOptions -> {Restrictions -> {ExcludeParticles -> {F[3,{3|4}]}, NoQuarkMixing}}];

(* ZnnA *)

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

(* WA *)

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


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

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

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

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

(* 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}]}, SetParameters -> JoinOptions[{ME -> 0}]];
(* nexecddxsxa *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], -F[2,{1}],  F[1,{1}],  F[4,{2}], -F[3,{2}]}, SetParameters -> JoinOptions[{ME -> 0}]];
(* nexeuuuxdxa *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[1], -F[2,{1}],  F[1,{1}],  F[3,{1}], -F[3,{1}]}, SetParameters -> JoinOptions[{ME -> 0}]];
(* nexeuccxdxa *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[1], -F[2,{1}],  F[1,{1}],  F[3,{2}], -F[3,{2}]}, SetParameters -> JoinOptions[{ME -> 0}]];
(* nexeudxagg  *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[1], -F[2,{1}],  F[1,{1}],  V[5]    ,  V[5]    }, SetParameters -> JoinOptions[{ME -> 0}]];
(* nexeudxbbxa *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[4,{1}]} -> { V[1], -F[2,{1}],  F[1,{1}],  F[4,{3}], -F[4,{3}]}, SetParameters -> JoinOptions[{ME -> 0}]];

(* 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}]}, SetParameters -> JoinOptions[{ME -> 0}]];
(* neexcxddxsa *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1],  F[2,{1}], -F[1,{1}],  F[3,{2}], -F[4,{2}]}, SetParameters -> JoinOptions[{ME -> 0}]];
(* neexuuxuxda *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[3,{1}]} -> { V[1],  F[2,{1}], -F[1,{1}],  F[3,{1}],  F[3,{1}]}, SetParameters -> JoinOptions[{ME -> 0}]];
(* neexuxccxda *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[1],  F[2,{1}], -F[1,{1}],  F[3,{2}], -F[3,{2}]}, SetParameters -> JoinOptions[{ME -> 0}]];
(* neexuxdagg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[1],  F[2,{1}], -F[1,{1}],  V[5]    ,  V[5]    }, SetParameters -> JoinOptions[{ME -> 0}]];
(* neexuxdbbxa *) AddReal[FeynArtsProcess -> {-F[3,{1}],  F[4,{1}]} -> { V[1],  F[2,{1}], -F[1,{1}],  F[4,{3}], -F[4,{3}]}, SetParameters -> JoinOptions[{ME -> 0}]];


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"
};
