
(* description = "pp -> VV+jets|pp -> AA+jets|pp -> AAjjj|Photon pair plus three jets production" *)

SelectInterference = {eQED -> 4};

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

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


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

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

ChannelMap = {
  "ccxddxaag" -> "uuxddxaag",
  "ddxbbxaag" -> "ddxssxaag MB=0",
  "uuxbbxaag" -> "uuxddxaag MB=0",
  "bbbxbxaag" -> "dddxdxaag MB=0",
  "bbxaaggg"  -> "ddxaaggg MB=0"
  (* reals *)
  "bbxaagggg"   -> "ddxaagggg MB=0",

  "ccxddxaagg"  -> "uuxddxaagg",
  "ddxbbxaagg"  -> "ddxssxaagg MB=0",
  "uuxbbxaagg"  -> "uuxddxaagg MB=0",
  "bbbxbxaagg"  -> "dddxdxaagg MB=0",

  "bbbbxbxbxaa" -> "ddddxdxdxaa MB=0",
  "uuuxuxbbxaa" -> "uuuxuxddxaa MB=0",
  "dddxdxbbxaa" -> "dddxdxssxaa MB=0",
  "uuxbbbxbxaa" -> "uuxdddxdxaa MB=0",
  "ddxbbbxbxaa" -> "dddxdxssxaa[5,6,1,2,3,4,7,8] MB=0",
  "uuxccxbbxaa" -> "uuxccxddxaa MB=0",
  "uuxddxbbxaa" -> "uuxddxssxaa MB=0",
  "ccxdddxdxaa" -> "uuxdddxdxaa",
  "cccxcxddxaa" -> "uuuxuxddxaa",
  "ccxddxbbxaa" -> "uuxddxbbxaa"
};
