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.;
66 for (
int im=0; im<2; im++){
68 Hzzcoupl[ic][im] = (other.
Hzzcoupl)[ic][im];
69 Hwwcoupl[ic][im] = (other.
Hwwcoupl)[ic][im];
70 Hzzpcoupl[ic][im] = (other.
Hzzpcoupl)[ic][im];
71 Hzpzpcoupl[ic][im] = (other.
Hzpzpcoupl)[ic][im];
72 Hwwpcoupl[ic][im] = (other.
Hwwpcoupl)[ic][im];
73 Hwpwpcoupl[ic][im] = (other.
Hwpwpcoupl)[ic][im];
76 Hggcoupl[ic][im]=(other.
Hggcoupl)[ic][im];
78 H2ggcoupl[ic][im]=(other.
H2ggcoupl)[ic][im];
82 Hqqcoupl[ic][im]=(other.
Hqqcoupl)[ic][im];
83 Httcoupl[ic][im]=(other.
Httcoupl)[ic][im];
84 Hbbcoupl[ic][im]=(other.
Hbbcoupl)[ic][im];
87 H2qqcoupl[ic][im]=(other.
H2qqcoupl)[ic][im];
88 H2ttcoupl[ic][im]=(other.
H2ttcoupl)[ic][im];
89 H2bbcoupl[ic][im]=(other.
H2bbcoupl)[ic][im];
106 if (!separateWWZZcouplings && setWW)
return;
107 if (index>=
SIZE_HVV){
MELAerr <<
"Cannot set index " << index <<
", out of range for the type requested." << endl; }
108 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;
110 if (whichResonance==1){
112 Hwwcoupl[index][0] = c_real;
113 Hwwcoupl[index][1] = c_imag;
116 Hzzcoupl[index][0] = c_real;
117 Hzzcoupl[index][1] = c_imag;
122 H2wwcoupl[index][0] = c_real;
123 H2wwcoupl[index][1] = c_imag;
126 H2zzcoupl[index][0] = c_real;
127 H2zzcoupl[index][1] = c_imag;
133 if (!separateWWZZcouplings && setWW)
return;
135 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;
137 if (whichResonance==1){
138 if (setWW) HwwLambda_qsq[gType][index] =
lambda;
139 else HzzLambda_qsq[gType][index] =
lambda;
142 if (setWW) H2wwLambda_qsq[gType][index] =
lambda;
143 else H2zzLambda_qsq[gType][index] =
lambda;
148 if (!separateWWZZcouplings && setWW)
return;
149 if (index>=
SIZE_HVV_CQSQ)
MELAerr <<
"Cannot set index " << index <<
" for the c(z/w)qsq sign, out of range." << endl;
150 else if (csign>1 || csign<-1)
MELAerr <<
"Invalid csign argument. It has to be in the range [-1,1] with default to 0." << endl;
151 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;
153 if (whichResonance==1){
154 if (setWW) HwwCLambda_qsq[index] = csign;
155 else HzzCLambda_qsq[index] = csign;
158 if (setWW) H2wwCLambda_qsq[index] = csign;
159 else H2zzCLambda_qsq[index] = csign;
164 if (index>=
SIZE_HGG)
MELAerr <<
"Cannot set index " << index <<
" for Hggcoupl, out of range for the type requested." << endl;
165 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;
166 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;
168 if (whichResonance==1){
170 Hggcoupl[index][0] = c_real;
171 Hggcoupl[index][1] = c_imag;
174 Hg4g4coupl[index][0] = c_real;
175 Hg4g4coupl[index][1] = c_imag;
180 H2ggcoupl[index][0] = c_real;
181 H2ggcoupl[index][1] = c_imag;
184 H2g4g4coupl[index][0] = c_real;
185 H2g4g4coupl[index][1] = c_imag;
191 if (index>=
SIZE_HQQ)
MELAerr <<
"Cannot set index " << index <<
" for Hqqcoupl, out of range for the type requested." << endl;
192 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;
193 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;
195 if (whichResonance==1){
197 Hqqcoupl[index][0] = c_real;
198 Hqqcoupl[index][1] = c_imag;
200 else if (abs(qid)==5){
201 Hbbcoupl[index][0] = c_real;
202 Hbbcoupl[index][1] = c_imag;
204 else if (abs(qid)==6){
205 Httcoupl[index][0] = c_real;
206 Httcoupl[index][1] = c_imag;
208 else if (abs(qid)==7){
209 Hb4b4coupl[index][0] = c_real;
210 Hb4b4coupl[index][1] = c_imag;
212 else if (abs(qid)==8){
213 Ht4t4coupl[index][0] = c_real;
214 Ht4t4coupl[index][1] = c_imag;
219 H2qqcoupl[index][0] = c_real;
220 H2qqcoupl[index][1] = c_imag;
222 else if (abs(qid)==5){
223 H2bbcoupl[index][0] = c_real;
224 H2bbcoupl[index][1] = c_imag;
226 else if (abs(qid)==6){
227 H2ttcoupl[index][0] = c_real;
228 H2ttcoupl[index][1] = c_imag;
230 else if (abs(qid)==7){
231 H2b4b4coupl[index][0] = c_real;
232 H2b4b4coupl[index][1] = c_imag;
234 else if (abs(qid)==8){
235 H2t4t4coupl[index][0] = c_real;
236 H2t4t4coupl[index][1] = c_imag;
243 if (index>=
SIZE_HVV){
MELAerr <<
"Cannot set index " << index <<
", out of range for the type requested." << endl; }
244 else if (whichResonance!=1) {
MELAerr <<
"Contact terms are only for the first resonance" << endl;}
247 Hwwpcoupl[index][0] = c_real;
248 Hwwpcoupl[index][1] = c_imag;
251 Hzzpcoupl[index][0] = c_real;
252 Hzzpcoupl[index][1] = c_imag;
257 if (whichResonance!=1) {
MELAerr <<
"Contact terms are only for the first resonance" << endl; }
258 else if (index>=
SIZE_HVV){
MELAerr <<
"Cannot set index " << index <<
", out of range for the type requested." << endl; }
261 Hwpwpcoupl[index][0] = c_real;
262 Hwpwpcoupl[index][1] = c_imag;
265 Hzpzpcoupl[index][0] = c_real;
266 Hzpzpcoupl[index][1] = c_imag;
278 for (
int im=0; im<2; im++){
279 for (
int ic=0; ic<
SIZE_ZVV; ic++) Zvvcoupl[ic][im] = 0;
280 for (
int ic=0; ic<
SIZE_ZQQ; ic++) Zqqcoupl[ic][im] = 0;
289 for (
int im=0; im<2; im++){
290 for (
int ic=0; ic<
SIZE_ZVV; ic++) Zvvcoupl[ic][im] = (other.
Zvvcoupl)[ic][im];
291 for (
int ic=0; ic<
SIZE_ZQQ; ic++) Zqqcoupl[ic][im] = (other.
Zqqcoupl)[ic][im];
297 if (index>=
SIZE_ZVV)
MELAerr <<
"Cannot set index " << index <<
" for the Zvvcoupl, out of range." << endl;
299 Zvvcoupl[index][0] = c_real;
300 Zvvcoupl[index][1] = c_imag;
304 if (index>=
SIZE_ZQQ)
MELAerr <<
"Cannot set index " << index <<
" for the Zqqcoupl, out of range." << endl;
306 Zqqcoupl[index][0] = c_real;
307 Zqqcoupl[index][1] = c_imag;
318 for (
int im=0; im<2; im++){
320 Gvvcoupl[ic][im] = 0;
321 Gvvpcoupl[ic][im] = 0;
322 Gvpvpcoupl[ic][im] = 0;
324 for (
int ic=0; ic<
SIZE_GGG; ic++) Gggcoupl[ic][im] = 0;
325 for (
int ic=0; ic<
SIZE_GQQ; ic++) Gqqcoupl[ic][im] = 0;
335 for (
int im=0; im<2; im++){
336 for (
int ic=0; ic<
SIZE_GVV; ic++) Gvvcoupl[ic][im] = (other.
Gvvcoupl)[ic][im];
337 for (
int ic=0; ic<
SIZE_GGG; ic++) Gggcoupl[ic][im] = (other.
Gggcoupl)[ic][im];
338 for (
int ic=0; ic<
SIZE_GQQ; ic++) Gqqcoupl[ic][im] = (other.
Gqqcoupl)[ic][im];
344 if (index>=
SIZE_GVV)
MELAerr <<
"Cannot set index " << index <<
" for the Gvvcoupl, out of range." << endl;
346 Gvvcoupl[index][0] = c_real;
347 Gvvcoupl[index][1] = c_imag;
351 if (index>=
SIZE_GVV)
MELAerr <<
"Cannot set index " << index <<
" for the Gvvpcoupl, out of range." << endl;
353 Gvvpcoupl[index][0] = c_real;
354 Gvvpcoupl[index][1] = c_imag;
358 if (index>=
SIZE_GVV)
MELAerr <<
"Cannot set index " << index <<
" for the Gvpvpcoupl, out of range." << endl;
360 Gvpvpcoupl[index][0] = c_real;
361 Gvpvpcoupl[index][1] = c_imag;
365 if (index>=
SIZE_GQQ)
MELAerr <<
"Cannot set index " << index <<
" for the Gqqcoupl, out of range." << endl;
367 Gqqcoupl[index][0] = c_real;
368 Gqqcoupl[index][1] = c_imag;
372 if (index>=
SIZE_GGG)
MELAerr <<
"Cannot set index " << index <<
" for the Gggcoupl, out of range." << endl;
374 Gggcoupl[index][0] = c_real;
375 Gggcoupl[index][1] = c_imag;
386 for (
int im=0; im<2; im++){
393 SetZPrimeMassWidth(-1, 0);
394 SetWPrimeMassWidth(-1, 0);
397 for (
int im=0; im<2; im++){
399 Zpffcoupl[ic][im] = (other.
Zpffcoupl)[ic][im];
400 Wpffcoupl[ic][im] = (other.
Wpffcoupl)[ic][im];
412 if (whichResonance!=1){
MELAerr <<
"VprimeCouplings::SetVpffCouplings: Contact terms are only for the first resonance" << endl; }
413 else if (index>=
SIZE_Vpff){
MELAerr <<
"VprimeCouplings::SetVpffCouplings: Cannot set index " << index <<
", out of range for the type requested." << endl; }
416 Zpffcoupl[index][0] = c_real;
417 Zpffcoupl[index][1] = c_imag;
425 ) && (c_real!=0. || c_imag!=0.)
426 )
MELAerr <<
"No W' contact terms for neutrino, down, strange, or bottom; use the lepton or up-quark versions instead!" << endl;
428 Wpffcoupl[index][0] = c_real;
429 Wpffcoupl[index][1] = c_imag;
444 for (
int im=0; im<2; im++){
445 for (
int ic = 0; ic <
SIZE_ATQGC; ic++) aTQGCcoupl[ic][im]=0;
449 for (
int im=0; im<2; im++){
456 if (index>=
SIZE_ATQGC){
MELAerr <<
"aTQGCCouplings::SetATQGCCouplings: Cannot set index " << index <<
", out of range for the type requested." << endl; }
458 aTQGCcoupl[index][0] = c_real;
459 aTQGCcoupl[index][1] = c_imag;
469 for (
int im=0; im<2; im++){
470 for (
int ic = 0; ic <
SIZE_AZff; ic++) AZffcoupl[ic][im]=0;
474 for (
int im=0; im<2; im++){
481 if (index>=
SIZE_AZff){
MELAerr <<
"AZffCouplings::SetAZffCouplings: Cannot set index " << index <<
", out of range for the type requested." << endl; }
483 AZffcoupl[index][0] = c_real;
484 AZffcoupl[index][1] = c_imag;