
(* description = "pp -> H+jets|pp -> Hbb+jets|pp -> Hbbj|Higgs production plus three jets with b/c quarks in the initial and/or final state. Can be used with massless b/c quarks with finite Yukawa coupling." *)

OpenLoopsModel = "SM_yuksel";
SelectInterference = {eQED -> 2};
SetParameters = JoinOptions[{YukB -> 1, YukC -> 1, MB -> MB, MC -> MC, YB -> YB, YC -> YC}];
OnTheFlyMode=0;


(* bbxhggg  *) AddProcess[FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {S[1], V[5]    ,  V[5]    , V[5]}];
(* ddxbbxhg *) AddProcess[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {S[1], F[4,{3}], -F[4,{3}], V[5]}];
(* bbbxbxhg *) AddProcess[FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {S[1], F[4,{3}], -F[4,{3}], V[5]}];

(* ccxhggg  *) AddProcess[FeynArtsProcess -> {F[3,{2}], -F[3,{2}]} -> {S[1], V[5]    ,  V[5]    , V[5]}];
(* ccxddxhg *) AddProcess[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {S[1], F[3,{2}], -F[3,{2}], V[5]}];
(* cccxcxhg *) AddProcess[FeynArtsProcess -> {F[3,{2}], -F[3,{2}]} -> {S[1], F[3,{2}], -F[3,{2}], V[5]}];

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

(* bbxhgggg   *) AddReal[FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {S[1], V[5], V[5], V[5], V[5]}];
(* bbbxbxhgg  *) AddReal[FeynArtsProcess -> {F[4,{3}],  F[4,{3}]} -> {S[1], F[4,{3}],  F[4,{3}], V[5], V[5]}];
(* ddxbbxhgg  *) AddReal[FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {S[1], F[4,{1}], -F[4,{1}], V[5], V[5]}];
(* bbbbxbxbxh *) AddReal[FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {S[1], F[4,{3}], -F[4,{3}], F[4,{3}], -F[4,{3}]}];
(* uuuxuxbbxh *) AddReal[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {S[1], F[3,{1}], -F[3,{1}], F[4,{3}], -F[4,{3}]}];
(* uuxbbbxbxh *) AddReal[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {S[1], F[4,{3}], -F[4,{3}], F[4,{3}], -F[4,{3}]}];
(* uuxddxbbxh *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {S[1], F[3,{1}], -F[3,{1}], F[4,{3}], -F[4,{3}]}];

(* ccxhgggg   *) AddReal[FeynArtsProcess -> {F[3,{2}], -F[3,{2}]} -> {S[1], V[5], V[5], V[5], V[5]}];
(* cccxcxhgg  *) AddReal[FeynArtsProcess -> {F[3,{2}],  F[3,{2}]} -> {S[1], F[3,{2}],  F[3,{2}], V[5], V[5]}];
(* ccxddxhgg  *) AddReal[FeynArtsProcess -> {F[3,{2}], -F[3,{2}]} -> {S[1], F[4,{1}], -F[4,{1}], V[5], V[5]}];
(* ccccxcxcxh *) AddReal[FeynArtsProcess -> {F[3,{2}], -F[3,{2}]} -> {S[1], F[3,{2}], -F[3,{2}], F[3,{2}], -F[3,{2}]}];
(* uuuxuxccxh *) AddReal[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {S[1], F[3,{1}], -F[3,{1}], F[3,{2}], -F[3,{2}]}];
(* uuxcccxcxh *) AddReal[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {S[1], F[3,{2}], -F[3,{2}], F[3,{2}], -F[3,{2}]}];
(* uuxccxddxh *) AddReal[FeynArtsProcess -> {F[4,{1}], -F[4,{1}]} -> {S[1], F[3,{1}], -F[3,{1}], F[3,{2}], -F[3,{2}]}];


(* ccxbbxhgg *)  AddReal[FeynArtsProcess -> {F[3,{2}], -F[3,{2}]} -> {S[1], F[4,{3}], -F[4,{3}], V[5], V[5]}];
(* cccxcxbbxh *) AddReal[FeynArtsProcess -> {F[3,{2}], -F[3,{2}]} -> {S[1], F[3,{2}], -F[3,{2}], F[4,{3}], -F[4,{3}]}];
(* ccxbbbxbxh *) AddReal[FeynArtsProcess -> {F[3,{2}], -F[3,{2}]} -> {S[1], F[4,{3}], -F[4,{3}], F[4,{3}], -F[4,{3}]}];
(* ccxddxbbxh *) AddReal[FeynArtsProcess -> {F[3,{2}], -F[3,{2}]} -> {S[1], F[4,{1}], -F[4,{1}], F[4,{3}], -F[4,{3}]}];



ChannelMap = {
  "uuxbbxhg" -> "ddxbbxhg",
  "uuxccxhg" -> "ccxddxhg[3,4,1,2,5,6]",
  (* real *)
  "uuxbbxhgg" -> "ddxbbxhgg",
  "dddxdxbbxh" -> "uuuxuxbbxh",
  "ddxbbbxbxh" -> "uuxbbbxbxh",
  "uuxccxbbxh" -> "uuxddxbbxh",
  "ddxssxbbxh" -> "uuxddxbbxh",
  "ccxddxbbxh" -> "uuxddxbbxh",
  "uuxccxhgg" -> "ccxddxhgg[3,4,1,2,5,6,7]",
  "ccxdddxdxh" -> "uuuxuxccxh[5,6,1,2,3,4,7]",
  "cccxcxddxh" -> "uuxcccxcxh[3,4,5,6,1,2,7]",
  "ddxssxccxh" -> "uuxccxddxh[5,6,1,2,3,4,7]",
  "uuxccxbbxh" -> "ccxddxbbxh[3,4,1,2,5,6,7]",
  "ccxddxbbxh" -> "uuxddxbbxh MC=0 YC=0",
  "uuxccxbbxh" -> "uuxddxbbxh MC=0 YC=0",
  "ccxddxbbxh" -> "uuxddxbbxh MC=0 YC=0"
};


[NLO]
ccxbbxh
ccxbbxhg
[Real]
ccxbbxhg
ccxbbxhgg
cccxcxbbxh
ccxbbbxbxh
ccxddxbbxh
uuxccxbbxh = ccxddxbbxh[3,4,1,2,5,6,7]
ccxddxbbxh MC=0 YC=0 = uuxddxbbxh
uuxccxbbxh MC=0 YC=0 = uuxddxbbxh
ccxddxbbxh MC=0 YC=0 = uuxddxbbxh
