
(* description = "pp -> V+jets|pp -> V+jets|pp -> V(j)|Loop-squared on-shell vector boson (Z/Photon) plus zero and jet production." *)

SelectInterference = {eQED -> 2};


(* zgg *) AddProcess[FeynArtsProcess -> {V[5], V[5]} -> {V[2]}];


loop2approxzz = {
  SelectLoopDiagrams -> (ContainsFermionLoop[##] && ParticlesOnLoop[V[2],1][##] &),
  SelectTreeDiagrams -> (False &),
  SelectCTDiagrams -> NFieldPropagators[V[5],1]
};

(* zggg  *) AddProcess[FeynArtsProcess -> {V[5]    ,  V[5]    } -> {V[2], V[5]}];
(* uuxzg *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {V[2], V[5]}, Sequence @@ loop2approxzz];
(* bbxzg *) AddProcess[FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {V[2], V[5]}, Sequence @@ loop2approxzz];

(* aggg *) AddProcess[FeynArtsProcess -> {V[5], V[5]} -> {V[1], V[5]}, SelectLoopDiagrams -> NLegsOnLoop[4]];


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


(* zgg *) AddProcess[FeynArtsProcess -> {V[5], V[5]} -> {V[2]}, Sequence @@ nf5];

(* zggg  *) AddProcess[FeynArtsProcess -> {V[5]    ,  V[5]    } -> {V[2], V[5]}, Sequence @@ nf5];
(* uuxzg *) AddProcess[FeynArtsProcess -> {F[3,{1}], -F[3,{1}]} -> {V[2], V[5]}, Sequence @@ loop2approxzz, Sequence @@ nf5];
(* bbxzg *) AddProcess[FeynArtsProcess -> {F[4,{3}], -F[4,{3}]} -> {V[2], V[5]}, Sequence @@ loop2approxzz, Sequence @@ nf5];

(* aggg *) AddProcess[FeynArtsProcess -> {V[5], V[5]} -> {V[1], V[5]}, SelectLoopDiagrams -> NLegsOnLoop[4], Sequence @@ nf5];




ChannelMap = {
  "ddxzg" -> "uuxzg"
  "bbxzg" -> "uuxzg MB=0"
};
