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

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

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

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

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

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

(* eexdddxdxag   *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], F[4,{1}],  F[4,{1}], V[5]}];
(* eexuuuxuxag   *) AddReal[FeynArtsProcess -> { F[3,{1}],  F[3,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], F[3,{1}],  F[3,{1}], V[5]}];
(* eexuuxddxag   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], F[3,{1}], -F[3,{1}], V[5]}];
(* eexddxssxag   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], F[4,{2}], -F[4,{2}], V[5]}];
(* eexuuxccxag   *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], F[3,{2}], -F[3,{2}], V[5]}];
(* eexddxaggg    *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]    ,  V[5]    , V[5]}];
(* eexuuxaggg    *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]    ,  V[5]    , V[5]}];

(* eexbbbxbxag   *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], F[2,{1}], -F[2,{1}], F[4,{3}], -F[4,{3}], V[5]}];
(* eexuuxbbxag   *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], F[4,{3}], -F[4,{3}], V[5]}];
(* eexddxbbxag   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[2,{1}], -F[2,{1}], F[4,{3}], -F[4,{3}], V[5]}];
(* eexbbxaggg    *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], F[2,{1}], -F[2,{1}], V[5]    ,  V[5]    , V[5]}];

(* nenexdddxdxag *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], F[4,{1}],  F[4,{1}], V[5]}];
(* nenexuuuxuxag *) AddReal[FeynArtsProcess -> { F[3,{1}],  F[3,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], F[3,{1}],  F[3,{1}], V[5]}];
(* nenexuuxddxag *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], F[3,{1}], -F[3,{1}], V[5]}];
(* nenexddxssxag *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], F[4,{2}], -F[4,{2}], V[5]}];
(* nenexuuxccxag *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], F[3,{2}], -F[3,{2}], V[5]}];
(* nenexddxaggg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], V[5]    ,  V[5]    , V[5]}];
(* nenexuuxaggg  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], V[5]    ,  V[5]    , V[5]}];

(* nenexbbbxbxag *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], F[1,{1}], -F[1,{1}], F[4,{3}], -F[4,{3}], V[5]}];
(* nenexuuxbbxag *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], F[4,{3}], -F[4,{3}], V[5]}];
(* nenexddxbbxag *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], F[1,{1}], -F[1,{1}], F[4,{3}], -F[4,{3}], V[5]}];
(* nenexbbxaggg  *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], F[1,{1}], -F[1,{1}], V[5]    ,  V[5]    , V[5]}];

ChannelMap = {
  "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",
  (* reals *)
  "eexccxddxag" -> "eexuuxddxag",
  "eexddxbbxag" -> "eexddxssxag MB=0",
  "eexuuxbbxag" -> "eexuuxddxag MB=0",
  "eexbbbxbxag" -> "eexdddxdxag MB=0",
  "eexbbxaggg"  -> "eexddxaggg MB=0",
  "nenexccxddxag" -> "nenexuuxddxag",
  "nenexddxbbxag" -> "nenexddxssxag MB=0",
  "nenexuuxbbxag" -> "nenexuuxddxag MB=0",
  "nenexbbbxbxag" -> "nenexdddxdxag MB=0",
  "nenexbbxaggg"  -> "nenexddxaggg MB=0"
};
