
(* description = "pp -> H+jets|pp -> H+jets|pp -> Hjj|Loop induced Higgs plus two jets production (massive b quarks allowed, but not as external states; Yukawas allowed)." *)

(* loop induced pp --> hjj massive b quarks, no pp --> hbb *)
(* pp --> hbb loop^2 is only finite if the Higgs couples to the quark loop, *)
(* but not to the external b-quarks; also corrections to tree hbb x t-loop *)
(* and tree x t-2-loop could be of similar size --> probably no good approximation *)

OpenLoopsModel = "SM_yuksel";

(* hgggg   *) AddProcess[FeynArtsProcess -> {V[5]    ,  V[5]    } -> {S[1], V[5]    ,  V[5]    }, SetParameters -> JoinOptions[{YukT -> 1, MB -> 0, YB -> 0}], SelectInterference -> {eQED -> 2}];
(* uuxhgg  *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {S[1], V[5]    ,  V[5]    }, SetParameters -> JoinOptions[{YukT -> 1, MB -> 0, YB -> 0}], SelectInterference -> {eQED -> 2}];
(* uuuxuxh *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {S[1], F[3,{1}], -F[3,{1}]}, SetParameters -> JoinOptions[{YukT -> 1, MB -> 0, YB -> 0}], SelectInterference -> {eQED -> 2}];
(* uuxddxh *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {S[1], F[4,{1}], -F[4,{1}]}, SetParameters -> JoinOptions[{YukT -> 1, MB -> 0, YB -> 0}], SelectInterference -> {eQED -> 2}];

(* hgggg   *) AddProcess[FeynArtsProcess -> {V[5]    ,  V[5]    } -> {S[1], V[5]    ,  V[5]    }, SetParameters -> JoinOptions[{YukT -> 1, YukB -> 1}], SelectInterference -> {eQED -> 2}];
(* uuxhgg  *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {S[1], V[5]    ,  V[5]    }, SetParameters -> JoinOptions[{YukT -> 1, YukB -> 1}], SelectInterference -> {eQED -> 2}];
(* uuuxuxh *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {S[1], F[3,{1}], -F[3,{1}]}, SetParameters -> JoinOptions[{YukT -> 1, YukB -> 1}], SelectInterference -> {eQED -> 2}];
(* uuxddxh *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {S[1], F[4,{1}], -F[4,{1}]}, SetParameters -> JoinOptions[{YukT -> 1, YukB -> 1}], SelectInterference -> {eQED -> 2}];

higgsapprox = {
	SelectTreeDiagrams -> (False &),
	SelectLoopDiagrams -> ( NFieldPropagators[S[1],1,"Type"->Internal][##]  &),
	SelectCTDiagrams   -> ( NFieldPropagators[S[1],1,"Type"->Internal][##]  &)
};

(* hgggg   *) AddProcess[FeynArtsProcess -> {V[5]    ,  V[5]    } -> {F[2,{2}], -F[2,{2}], V[5]    ,  V[5]    }, SetParameters -> JoinOptions[{YukT -> 1, MB -> 0, YB -> 0}], SelectInterference -> {eQED -> 4}, Sequence @@ higgsapprox];
(* uuxhgg  *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[2,{2}], -F[2,{2}], V[5]    ,  V[5]    }, SetParameters -> JoinOptions[{YukT -> 1, MB -> 0, YB -> 0}], SelectInterference -> {eQED -> 4}, Sequence @@ higgsapprox];
(* uuuxuxh *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[2,{2}], -F[2,{2}], F[3,{1}], -F[3,{1}]}, SetParameters -> JoinOptions[{YukT -> 1, MB -> 0, YB -> 0}], SelectInterference -> {eQED -> 4}, Sequence @@ higgsapprox];
(* uuxddxh *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {F[2,{2}], -F[2,{2}], F[4,{1}], -F[4,{1}]}, SetParameters -> JoinOptions[{YukT -> 1, MB -> 0, YB -> 0}], SelectInterference -> {eQED -> 4}, Sequence @@ higgsapprox];

(*
(* aagggg *) AddProcess[FeynArtsProcess -> {V[5], V[5]} -> {V[1],V[1], V[5]}, SelectInterference -> {DOI ->0}, SelectCoupling -> (Exponent[#1, gQCD] == 4 && Exponent[#1, eQED] == 1 &), OpenLoopsModel -> "HEFTAAH", Sequence @@ higgsapprox];
(* uuxaagg *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {V[1],V[1], V[5]}, SelectInterference -> {DOI ->0}, SelectCoupling -> (Exponent[#1, gQCD] == 4 && Exponent[#1, eQED] == 1 &), OpenLoopsModel -> "HEFTAAH", Sequence @@ higgsapprox];
(* uuuxuxaa *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {V[1],V[1], F[3,{1}], -F[3,{1}]}, SelectInterference -> {DOI ->0}, SelectCoupling -> (Exponent[#1, gQCD] == 4 && Exponent[#1, eQED] == 1 &), OpenLoopsModel -> "HEFTAAH", Sequence @@ higgsapprox];
(* dddxdxaa *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {V[1],V[1], F[3,{1}], -F[4,{1}]}, SelectInterference -> {DOI ->0}, SelectCoupling -> (Exponent[#1, gQCD] == 4 && Exponent[#1, eQED] == 1 &), OpenLoopsModel -> "HEFTAAH", Sequence @@ higgsapprox];
*)






ChannelMap = {
  "ddxhgg"  -> "uuxhgg",
  "dddxdxh" -> "uuuxuxh",
  "ddxssxh" -> "uuxddxh",
  "uuxccxh" -> "uuxddxh",
  "ccxddxh" -> "uuxddxh",
  "bbxhgg"  -> "uuxhgg MB=0 YB=0",
  "ddxbbxh" -> "uuxddxh MB=0 YB=0",
  "uuxbbxh" -> "uuxddxh MB=0 YB=0",
  "bbbxbxh" -> "uuuxuxh MB=0 YB=0",

  "mmxddxgg"  -> "mmxuuxgg",
  "mmxdddxdx" -> "mmxuuuxux",
  "mmxddxssx" -> "mmxuuxddx",
  "mmxuuxccx" -> "mmxuuxddx",
  "mmxccxddx" -> "mmxuuxddx",
  "mmxbbxgg"  -> "mmxuuxgg MB=0 YB=0",
  "mmxddxbbx" -> "mmxuuxddx MB=0 YB=0",
  "mmxuuxbbx" -> "mmxuuxddx MB=0 YB=0",
  "mmxbbbxbx" -> "mmxuuuxux MB=0 YB=0",

  "ddxaagg"  -> "uuxaagg",
  "dddxdxaa" -> "uuuxuxaa",
  "ddxssxaa" -> "uuxddxaa",
  "uuxccxaa" -> "uuxddxaa",
  "ccxddxaa" -> "uuxddxaa",
  "bbxaagg"  -> "uuxaagg MB=0 YB=0",
  "ddxbbxaa" -> "uuxddxaa MB=0 YB=0",
  "uuxbbxaa" -> "uuxddxaa MB=0 YB=0",
  "bbbxbxaa" -> "uuuxuxaa MB=0 YB=0"
};
