
(* description = "pp -> HVV+jets|pp -> HVV+jets|pp -> HVV|On-shell boson pair (Photon, W, Z in all combinations)i plus Higgs production." *)

SelectInterference = {eQED -> 6};

nf5 = {
	SetParameters -> JoinOptions[{ME -> 0, MB -> 0, nf -> 5}],
	InsertFieldsOptions -> {Restrictions -> {ExcludeParticles -> {F[3,{3}]}, NoQuarkMixing}}
};


(* ZZ *)

(* ddxhzz *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2], V[2], S[1]}];
(* uuxhzz *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2], V[2], S[1]}];
(* bbxhzz *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2], V[2], S[1]}];

(* ddxhzz *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2], V[2], S[1]}, Sequence @@ nf5];
(* uuxhzz *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2], V[2], S[1]}, Sequence @@ nf5];
(* bbxhzz *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2], V[2], S[1]}, Sequence @@ nf5];


(* ddxhzzg *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[2], V[2], V[5], S[1]}];
(* uuxhzzg *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[2], V[2], V[5], S[1]}];
(* bbxhzzg *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[2], V[2], V[5], S[1]}];

(* WW *)

(* ddxhwwx *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {-V[3], V[3], S[1]}];
(* uuxhwwx *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {-V[3], V[3], S[1]}];
(* bbxhwwx *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> {-V[3], V[3], S[1]}];

(* ddxhwwx *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {-V[3], V[3], S[1]}, Sequence @@ nf5];
(* uuxhwwx *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {-V[3], V[3], S[1]}, Sequence @@ nf5];
(* bbxhwwx *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> {-V[3], V[3], S[1]}, Sequence @@ nf5];

(* ddxhwwxg *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> {-V[3], V[3], V[5], S[1]}];
(* uuxhwwxg *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> {-V[3], V[3], V[5], S[1]}];
(* bbxhwwxg *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> {-V[3], V[3], V[5], S[1]}];

(* ZW *)

(* udxhzw  *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[2], -V[3], S[1]}];
(* uxdhzwx *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[2],  V[3], S[1]}];

(* udxhzw  *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[2], -V[3], S[1]}, Sequence @@ nf5];
(* uxdhzwx *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[2],  V[3], S[1]}, Sequence @@ nf5];

(* udxhzwg  *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[2], -V[3], V[5], S[1]}];
(* uxdhzwxg *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[2],  V[3], V[5], S[1]}];


(* ZA *)

(* ddxhaz *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], V[2], S[1]}];
(* uuxhaz *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], V[2], S[1]}];
(* bbxhaz *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], V[2], S[1]}];

(* ddxhaz *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], V[2], S[1]}, Sequence @@ nf5];
(* uuxhaz *) AddProcess[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], V[2], S[1]}, Sequence @@ nf5];
(* bbxhaz *) AddProcess[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], V[2], S[1]}, Sequence @@ nf5];

(* ddxhazg *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[4,{1}]} -> { V[1], V[2], V[5], S[1]}];
(* uuxhazg *) AddReal[FeynArtsProcess -> { F[3,{1}], -F[3,{1}]} -> { V[1], V[2], V[5], S[1]}];
(* bbxhazg *) AddReal[FeynArtsProcess -> { F[4,{3}], -F[4,{3}]} -> { V[1], V[2], V[5], S[1]}];

(* WA *)

(* udxhaw  *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[1], -V[3], S[1]}];
(* uxdhawx *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[1],  V[3], S[1]}];

(* udxhaw  *) AddProcess[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[1], -V[3], S[1]}, Sequence @@ nf5];
(* uxdhawx *) AddProcess[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[1],  V[3], S[1]}, Sequence @@ nf5];

(* udxhawg  *) AddReal[FeynArtsProcess -> {-F[4,{1}],  F[3,{1}]} -> { V[1], -V[3], V[5], S[1]}];
(* uxdhawxg *) AddReal[FeynArtsProcess -> { F[4,{1}], -F[3,{1}]} -> { V[1],  V[3], V[5], S[1]}];

ChannelMap = {
  "bbxhzz" -> "ddxhzz MB=0",
  "bbxhaz" -> "ddxhaz MB=0",
  (* real *)
  "bbxhzzg" -> "ddxhzzg MB=0",
  "bbxhazg" -> "ddxhazg MB=0"
};
