18 allow_WWZZSeparation(
false);
20 for (
int im=0; im<2; im++){
24 H2zzcoupl[ic][im] = 0;
25 H2wwcoupl[ic][im] = 0;
26 Hzzpcoupl[ic][im] = 0;
27 Hzpzpcoupl[ic][im] = 0;
28 Hwwpcoupl[ic][im] = 0;
29 Hwpwpcoupl[ic][im] = 0;
35 H2g4g4coupl[ic][im]=0;
46 H2t4t4coupl[ic][im]=0;
47 H2b4b4coupl[ic][im]=0;
53 H2zzCLambda_qsq[ik]=0;
54 H2wwCLambda_qsq[ik]=0;
56 HzzLambda_qsq[ic][ik] = 100.;
57 HwwLambda_qsq[ic][ik] = 100.;
58 H2zzLambda_qsq[ic][ik] = 100.;
59 H2wwLambda_qsq[ic][ik] = 100.;
63 SMEFTSimcoupl[ik] = 0;
69 for (
int im=0; im<2; im++){
71 Hzzcoupl[ic][im] = (other.
Hzzcoupl)[ic][im];
72 Hwwcoupl[ic][im] = (other.
Hwwcoupl)[ic][im];
73 Hzzpcoupl[ic][im] = (other.
Hzzpcoupl)[ic][im];
74 Hzpzpcoupl[ic][im] = (other.
Hzpzpcoupl)[ic][im];
75 Hwwpcoupl[ic][im] = (other.
Hwwpcoupl)[ic][im];
76 Hwpwpcoupl[ic][im] = (other.
Hwpwpcoupl)[ic][im];
79 Hggcoupl[ic][im]=(other.
Hggcoupl)[ic][im];
81 H2ggcoupl[ic][im]=(other.
H2ggcoupl)[ic][im];
85 Hqqcoupl[ic][im]=(other.
Hqqcoupl)[ic][im];
86 Httcoupl[ic][im]=(other.
Httcoupl)[ic][im];
87 Hbbcoupl[ic][im]=(other.
Hbbcoupl)[ic][im];
90 H2qqcoupl[ic][im]=(other.
H2qqcoupl)[ic][im];
91 H2ttcoupl[ic][im]=(other.
H2ttcoupl)[ic][im];
92 H2bbcoupl[ic][im]=(other.
H2bbcoupl)[ic][im];
109 if (!separateWWZZcouplings && setWW)
return;
110 if (index>=
SIZE_HVV){
MELAerr <<
"Cannot set index " << index <<
", out of range for the type requested." << endl; }
111 else if (whichResonance<=0 || whichResonance>2)
MELAerr <<
"Resonance " << whichResonance <<
" is not supported. Set it to 1 for the regular Higgs and 2 for the high-mass resonance." << endl;
113 if (whichResonance==1){
115 Hwwcoupl[index][0] = c_real;
116 Hwwcoupl[index][1] = c_imag;
119 Hzzcoupl[index][0] = c_real;
120 Hzzcoupl[index][1] = c_imag;
125 H2wwcoupl[index][0] = c_real;
126 H2wwcoupl[index][1] = c_imag;
129 H2zzcoupl[index][0] = c_real;
130 H2zzcoupl[index][1] = c_imag;
136 if (!separateWWZZcouplings && setWW)
return;
138 else if (whichResonance<=0 || whichResonance>2)
MELAerr <<
"Resonance " << whichResonance <<
" is not supported. Set it to 1 for the regular Higgs and 2 for the high-mass resonance." << endl;
140 if (whichResonance==1){
141 if (setWW) HwwLambda_qsq[gType][index] =
lambda;
142 else HzzLambda_qsq[gType][index] =
lambda;
145 if (setWW) H2wwLambda_qsq[gType][index] =
lambda;
146 else H2zzLambda_qsq[gType][index] =
lambda;
151 if (!separateWWZZcouplings && setWW)
return;
152 if (index>=
SIZE_HVV_CQSQ)
MELAerr <<
"Cannot set index " << index <<
" for the c(z/w)qsq sign, out of range." << endl;
153 else if (csign>1 || csign<-1)
MELAerr <<
"Invalid csign argument. It has to be in the range [-1,1] with default to 0." << endl;
154 else if (whichResonance<=0 || whichResonance>2)
MELAerr <<
"Resonance " << whichResonance <<
" is not supported. Set it to 1 for the regular Higgs and 2 for the high-mass resonance." << endl;
156 if (whichResonance==1){
157 if (setWW) HwwCLambda_qsq[index] = csign;
158 else HzzCLambda_qsq[index] = csign;
161 if (setWW) H2wwCLambda_qsq[index] = csign;
162 else H2zzCLambda_qsq[index] = csign;
167 if (index>=
SIZE_HGG)
MELAerr <<
"Cannot set index " << index <<
" for Hggcoupl, out of range for the type requested." << endl;
168 else if (whichResonance<=0 || whichResonance>2)
MELAerr <<
"Resonance " << whichResonance <<
" is not supported. Set it to 1 for the regular Higgs and 2 for the high-mass resonance." << endl;
169 else if (whichLoop<=0 || whichLoop>2)
MELAerr <<
"gg loop " << whichLoop <<
" is not supported. Set it to 1 for the loop that corresponds to the top/bottom couplings, or 2 for the loop that corresponds to the tprime/bprime couplings." << endl;
171 if (whichResonance==1){
173 Hggcoupl[index][0] = c_real;
174 Hggcoupl[index][1] = c_imag;
177 Hg4g4coupl[index][0] = c_real;
178 Hg4g4coupl[index][1] = c_imag;
183 H2ggcoupl[index][0] = c_real;
184 H2ggcoupl[index][1] = c_imag;
187 H2g4g4coupl[index][0] = c_real;
188 H2g4g4coupl[index][1] = c_imag;
194 if (index>=
SIZE_HQQ)
MELAerr <<
"Cannot set index " << index <<
" for Hqqcoupl, out of range for the type requested." << endl;
195 else if (whichResonance<=0 || whichResonance>2)
MELAerr <<
"Resonance " << whichResonance <<
" is not supported. Set it to 1 for the regular Higgs and 2 for the high-mass resonance." << endl;
196 else if (abs(qid)>8)
MELAerr <<
"Quark id=" << qid <<
">8 is not supported. Please change the id to 0-4 (qq), or one of 5 bottom), 6 (top), 7 (bprime), 8 (tprime)." << endl;
198 if (whichResonance==1){
200 Hqqcoupl[index][0] = c_real;
201 Hqqcoupl[index][1] = c_imag;
203 else if (abs(qid)==5){
204 Hbbcoupl[index][0] = c_real;
205 Hbbcoupl[index][1] = c_imag;
207 else if (abs(qid)==6){
208 Httcoupl[index][0] = c_real;
209 Httcoupl[index][1] = c_imag;
211 else if (abs(qid)==7){
212 Hb4b4coupl[index][0] = c_real;
213 Hb4b4coupl[index][1] = c_imag;
215 else if (abs(qid)==8){
216 Ht4t4coupl[index][0] = c_real;
217 Ht4t4coupl[index][1] = c_imag;
222 H2qqcoupl[index][0] = c_real;
223 H2qqcoupl[index][1] = c_imag;
225 else if (abs(qid)==5){
226 H2bbcoupl[index][0] = c_real;
227 H2bbcoupl[index][1] = c_imag;
229 else if (abs(qid)==6){
230 H2ttcoupl[index][0] = c_real;
231 H2ttcoupl[index][1] = c_imag;
233 else if (abs(qid)==7){
234 H2b4b4coupl[index][0] = c_real;
235 H2b4b4coupl[index][1] = c_imag;
237 else if (abs(qid)==8){
238 H2t4t4coupl[index][0] = c_real;
239 H2t4t4coupl[index][1] = c_imag;
246 if (index>=
SIZE_HVV){
MELAerr <<
"Cannot set index " << index <<
", out of range for the type requested." << endl; }
247 else if (whichResonance!=1) {
MELAerr <<
"Contact terms are only for the first resonance" << endl;}
250 Hwwpcoupl[index][0] = c_real;
251 Hwwpcoupl[index][1] = c_imag;
254 Hzzpcoupl[index][0] = c_real;
255 Hzzpcoupl[index][1] = c_imag;
260 if (whichResonance!=1) {
MELAerr <<
"Contact terms are only for the first resonance" << endl; }
261 else if (index>=
SIZE_HVV){
MELAerr <<
"Cannot set index " << index <<
", out of range for the type requested." << endl; }
264 Hwpwpcoupl[index][0] = c_real;
265 Hwpwpcoupl[index][1] = c_imag;
268 Hzpzpcoupl[index][0] = c_real;
269 Hzpzpcoupl[index][1] = c_imag;
275 if (index>=
SIZE_SMEFT){
MELAerr <<
"Cannot set index " << index <<
", out of range for the type requested." << endl; }
277 SMEFTSimcoupl[index] =
value;
286 for (
int im=0; im<2; im++){
287 for (
int ic=0; ic<
SIZE_ZVV; ic++) Zvvcoupl[ic][im] = 0;
288 for (
int ic=0; ic<
SIZE_ZQQ; ic++) Zqqcoupl[ic][im] = 0;
297 for (
int im=0; im<2; im++){
298 for (
int ic=0; ic<
SIZE_ZVV; ic++) Zvvcoupl[ic][im] = (other.
Zvvcoupl)[ic][im];
299 for (
int ic=0; ic<
SIZE_ZQQ; ic++) Zqqcoupl[ic][im] = (other.
Zqqcoupl)[ic][im];
305 if (index>=
SIZE_ZVV)
MELAerr <<
"Cannot set index " << index <<
" for the Zvvcoupl, out of range." << endl;
307 Zvvcoupl[index][0] = c_real;
308 Zvvcoupl[index][1] = c_imag;
312 if (index>=
SIZE_ZQQ)
MELAerr <<
"Cannot set index " << index <<
" for the Zqqcoupl, out of range." << endl;
314 Zqqcoupl[index][0] = c_real;
315 Zqqcoupl[index][1] = c_imag;
326 for (
int im=0; im<2; im++){
328 Gvvcoupl[ic][im] = 0;
329 Gvvpcoupl[ic][im] = 0;
330 Gvpvpcoupl[ic][im] = 0;
332 for (
int ic=0; ic<
SIZE_GGG; ic++) Gggcoupl[ic][im] = 0;
333 for (
int ic=0; ic<
SIZE_GQQ; ic++) Gqqcoupl[ic][im] = 0;
343 for (
int im=0; im<2; im++){
344 for (
int ic=0; ic<
SIZE_GVV; ic++) Gvvcoupl[ic][im] = (other.
Gvvcoupl)[ic][im];
345 for (
int ic=0; ic<
SIZE_GGG; ic++) Gggcoupl[ic][im] = (other.
Gggcoupl)[ic][im];
346 for (
int ic=0; ic<
SIZE_GQQ; ic++) Gqqcoupl[ic][im] = (other.
Gqqcoupl)[ic][im];
352 if (index>=
SIZE_GVV)
MELAerr <<
"Cannot set index " << index <<
" for the Gvvcoupl, out of range." << endl;
354 Gvvcoupl[index][0] = c_real;
355 Gvvcoupl[index][1] = c_imag;
359 if (index>=
SIZE_GVV)
MELAerr <<
"Cannot set index " << index <<
" for the Gvvpcoupl, out of range." << endl;
361 Gvvpcoupl[index][0] = c_real;
362 Gvvpcoupl[index][1] = c_imag;
366 if (index>=
SIZE_GVV)
MELAerr <<
"Cannot set index " << index <<
" for the Gvpvpcoupl, out of range." << endl;
368 Gvpvpcoupl[index][0] = c_real;
369 Gvpvpcoupl[index][1] = c_imag;
373 if (index>=
SIZE_GQQ)
MELAerr <<
"Cannot set index " << index <<
" for the Gqqcoupl, out of range." << endl;
375 Gqqcoupl[index][0] = c_real;
376 Gqqcoupl[index][1] = c_imag;
380 if (index>=
SIZE_GGG)
MELAerr <<
"Cannot set index " << index <<
" for the Gggcoupl, out of range." << endl;
382 Gggcoupl[index][0] = c_real;
383 Gggcoupl[index][1] = c_imag;
394 for (
int im=0; im<2; im++){
401 SetZPrimeMassWidth(-1, 0);
402 SetWPrimeMassWidth(-1, 0);
405 for (
int im=0; im<2; im++){
407 Zpffcoupl[ic][im] = (other.
Zpffcoupl)[ic][im];
408 Wpffcoupl[ic][im] = (other.
Wpffcoupl)[ic][im];
420 if (whichResonance!=1){
MELAerr <<
"VprimeCouplings::SetVpffCouplings: Contact terms are only for the first resonance" << endl; }
421 else if (index>=
SIZE_Vpff){
MELAerr <<
"VprimeCouplings::SetVpffCouplings: Cannot set index " << index <<
", out of range for the type requested." << endl; }
424 Zpffcoupl[index][0] = c_real;
425 Zpffcoupl[index][1] = c_imag;
433 ) && (c_real!=0. || c_imag!=0.)
434 )
MELAerr <<
"No W' contact terms for neutrino, down, strange, or bottom; use the lepton or up-quark versions instead!" << endl;
436 Wpffcoupl[index][0] = c_real;
437 Wpffcoupl[index][1] = c_imag;
452 for (
int im=0; im<2; im++){
453 for (
int ic = 0; ic <
SIZE_ATQGC; ic++) aTQGCcoupl[ic][im]=0;
457 for (
int im=0; im<2; im++){
464 if (index>=
SIZE_ATQGC){
MELAerr <<
"aTQGCCouplings::SetATQGCCouplings: Cannot set index " << index <<
", out of range for the type requested." << endl; }
466 aTQGCcoupl[index][0] = c_real;
467 aTQGCcoupl[index][1] = c_imag;
477 for (
int im=0; im<2; im++){
478 for (
int ic = 0; ic <
SIZE_AZff; ic++) AZffcoupl[ic][im]=0;
482 for (
int im=0; im<2; im++){
489 if (index>=
SIZE_AZff){
MELAerr <<
"AZffCouplings::SetAZffCouplings: Cannot set index " << index <<
", out of range for the type requested." << endl; }
491 AZffcoupl[index][0] = c_real;
492 AZffcoupl[index][1] = c_imag;