
(* description = "pp -> V+jets|pp -> A+jets|pp -> Ajjj|Photon plus three jets production" *)

SelectInterference = {eQED -> 2};

(* dddxdxag *) AddProcess[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> { V[1], V[5],  F[4,{1}],  F[4,{1}]}];
(* uuxddxag *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], V[5],  F[3,{1}], -F[3,{1}]}];
(* ddxssxag *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], V[5],  F[4,{2}], -F[4,{2}]}];
(* ddxaggg  *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], V[5],  V[5]    ,  V[5]    }];
(* uuxaggg  *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], V[5],  V[5]    ,  V[5]    }];
(* uuuxuxag *) AddProcess[FeynArtsProcess -> { F[3,{1}],  F[3,{1}]} -> { V[1], V[5],  F[3,{1}],  F[3,{1}]}];
(* uuxccxag *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], V[5],  F[3,{2}], -F[3,{2}]}];

(* ddxbbxag *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], V[5], -F[4,{3}],  F[4,{3}]}];
(* uuxbbxag *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], V[5], -F[4,{3}],  F[4,{3}]}];
(* bbbxbxag *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], V[5], -F[4,{3}],  F[4,{3}]}];
(* bbxaggg  *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], V[5],  V[5]    ,  V[5]    }];


(* dddxdxagg  *) AddReal[FeynArtsProcess -> { F[4,{1}],  F[4,{1}]} -> { V[1], V[5], V[5],  F[4,{1}],  F[4,{1}]}];
(* uuxddxagg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], V[5], V[5],  F[3,{1}], -F[3,{1}]}];
(* ddxssxagg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], V[5], V[5],  F[4,{2}], -F[4,{2}]}];
(* ddxagggg   *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], V[5], V[5],  V[5]    ,  V[5]    }];
(* uuxagggg   *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], V[5], V[5],  V[5]    ,  V[5]    }];
(* uuuxuxagg  *) AddReal[FeynArtsProcess -> { F[3,{1}],  F[3,{1}]} -> { V[1], V[5], V[5],  F[3,{1}],  F[3,{1}]}];
(* uuxccxagg  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], V[5], V[5],  F[3,{2}], -F[3,{2}]}];

(* ddxbbxagg  *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], V[5], V[5], -F[4,{3}],  F[4,{3}]}];
(* uuxbbxagg  *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], V[5], V[5], -F[4,{3}],  F[4,{3}]}];
(* bbbxbxagg  *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], V[5], V[5], -F[4,{3}],  F[4,{3}]}];
(* bbxagggg   *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], V[5], V[5],  V[5]    ,  V[5]    }];

(* uuuuxuxuxa *) AddReal[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[3,{1}], -F[3,{1}], F[3,{1}], -F[3,{1}], V[1]}];
(* ddddxdxdxa *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[4,{1}], -F[4,{1}], F[4,{1}], -F[4,{1}], V[1]}];
(* uuuxuxddxa *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[3,{1}], -F[3,{1}], F[3,{1}], -F[3,{1}], V[1]}];
(* uuxdddxdxa *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[4,{1}], -F[4,{1}], F[3,{1}], -F[3,{1}], V[1]}];
(* uuuxuxccxa *) AddReal[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[3,{1}], -F[3,{1}], F[3,{2}], -F[3,{2}], V[1]}];
(* dddxdxssxa *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[4,{1}], -F[4,{1}], F[4,{2}], -F[4,{2}], V[1]}];
(* uuxddxssxa *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[3,{1}], -F[3,{1}], F[4,{2}], -F[4,{2}], V[1]}];
(* uuxccxddxa *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[3,{1}], -F[3,{1}], F[3,{2}], -F[3,{2}], V[1]}];
(* ddxssxbbxa *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[4,{2}], -F[4,{2}], F[4,{3}], -F[4,{3}], V[1]}];

(* bbbbxbxbxa *) AddReal[FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {F[4,{3}], -F[4,{3}], F[4,{3}], -F[4,{3}], V[1]}];
(* uuuxuxbbxa *) AddReal[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[3,{1}], -F[3,{1}], F[4,{3}], -F[4,{3}], V[1]}];
(* dddxdxbbxa *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[4,{1}], -F[4,{1}], F[4,{3}], -F[4,{3}], V[1]}];
(* uuxbbbxbxa *) AddReal[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[4,{3}], -F[4,{3}], F[4,{3}], -F[4,{3}], V[1]}];
(* ddxbbbxbxa *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[4,{3}], -F[4,{3}], F[4,{3}], -F[4,{3}], V[1]}];
(* uuxccxbbxa *) AddReal[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[3,{2}], -F[3,{2}], F[4,{3}], -F[4,{3}], V[1]}];
(* uuxddxbbxa *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {F[3,{1}], -F[3,{1}], F[4,{3}], -F[4,{3}], V[1]}];

ChannelMap = {
  "ccxddxag" -> "uuxddxag",
  "ddxbbxag" -> "ddxssxag MB=0",
  "uuxbbxag" -> "uuxddxag MB=0",
  "bbbxbxag" -> "dddxdxag MB=0",
  "bbxaggg"  -> "ddxaggg MB=0"
  (* reals *)
  "bbxagggg"   -> "ddxagggg MB=0",

  "ccxddxagg"  -> "uuxddxagg",
  "ddxbbxagg"  -> "ddxssxagg MB=0",
  "uuxbbxagg"  -> "uuxddxagg MB=0",
  "bbbxbxagg"  -> "dddxdxagg MB=0",

  "bbbbxbxbxa" -> "ddddxdxdxa MB=0",
  "uuuxuxbbxa" -> "uuuxuxddxa MB=0",
  "dddxdxbbxa" -> "dddxdxssxa MB=0",
  "uuxbbbxbxa" -> "uuxdddxdxa MB=0",
  "ddxbbbxbxa" -> "dddxdxssxa[5,6,1,2,3,4,7] MB=0",
  "uuxccxbbxa" -> "uuxccxddxa MB=0",
  "uuxddxbbxa" -> "uuxddxssxa MB=0",
  "ccxdddxdxa" -> "uuxdddxdxa",
  "cccxcxddxa" -> "uuuxuxddxa",
  "ccxddxbbxa" -> "uuxddxbbxa"
};
