10 #include "SigmaSUSY.h"
23 void Sigma2qqbar2chi0chi0::initProc() {
26 coupSUSYPtr = (CoupSUSY*) couplingsPtr;
29 nameSave =
"q qbar' -> " + particleDataPtr->name(id3) +
" "
30 + particleDataPtr->name(id4);
33 openFracPair = particleDataPtr->resOpenFrac(id3, id4);
41 void Sigma2qqbar2chi0chi0::sigmaKin() {
44 sigma0 = M_PI /3.0/ sH2 / pow2(coupSUSYPtr->sin2W) * pow2(alpEM)
52 double sV= sH - pow2(coupSUSYPtr->mZpole);
53 double d = pow2(sV) + pow2(coupSUSYPtr->mZpole * coupSUSYPtr->wZpole);
54 propZ = complex( sV / d, coupSUSYPtr->mZpole * coupSUSYPtr->wZpole / d);
62 double Sigma2qqbar2chi0chi0::sigmaHat() {
70 if ((id1+id2) % 2 != 0) {
74 if(id1<0) swapTU =
true;
77 int idAbs1 = abs(id1);
78 int idAbs2 = abs(id2);
81 complex QuLL(0.0),QtLL(0.0),QuRR(0.0),QtRR(0.0);
82 complex QuLR(0.0),QtLR(0.0),QuRL(0.0),QtRL(0.0);
85 if (idAbs1 == idAbs2) {
86 QuLL = coupSUSYPtr->LqqZ[idAbs1] * coupSUSYPtr->OLpp[id3chi][id4chi]
88 QtLL = coupSUSYPtr->LqqZ[idAbs1] * coupSUSYPtr->ORpp[id3chi][id4chi]
90 QuRR = coupSUSYPtr->RqqZ[idAbs1] * coupSUSYPtr->ORpp[id3chi][id4chi]
92 QtRR = coupSUSYPtr->RqqZ[idAbs1] * coupSUSYPtr->OLpp[id3chi][id4chi]
97 int ifl1 = (idAbs1+1) / 2;
98 int ifl2 = (idAbs2+1) / 2;
101 for (
int ksq=1; ksq<=6; ksq++) {
104 int idsq=((ksq+2)/3)*1000000 + 2*((ksq-1) % 3) + (idAbs1+1) % 2 + 1;
105 double msq2 = pow(particleDataPtr->m0(idsq),2);
106 double usq = uH - msq2;
107 double tsq = tH - msq2;
110 complex Lsqq1X3 = coupSUSYPtr->LsuuX[ksq][ifl1][id3chi];
111 complex Lsqq1X4 = coupSUSYPtr->LsuuX[ksq][ifl1][id4chi];
112 complex Lsqq2X3 = coupSUSYPtr->LsuuX[ksq][ifl2][id3chi];
113 complex Lsqq2X4 = coupSUSYPtr->LsuuX[ksq][ifl2][id4chi];
114 complex Rsqq1X3 = coupSUSYPtr->RsuuX[ksq][ifl1][id3chi];
115 complex Rsqq1X4 = coupSUSYPtr->RsuuX[ksq][ifl1][id4chi];
116 complex Rsqq2X3 = coupSUSYPtr->RsuuX[ksq][ifl2][id3chi];
117 complex Rsqq2X4 = coupSUSYPtr->RsuuX[ksq][ifl2][id4chi];
118 if (idAbs1 % 2 != 0) {
119 Lsqq1X3 = coupSUSYPtr->LsddX[ksq][ifl1][id3chi];
120 Lsqq1X4 = coupSUSYPtr->LsddX[ksq][ifl1][id4chi];
121 Lsqq2X3 = coupSUSYPtr->LsddX[ksq][ifl2][id3chi];
122 Lsqq2X4 = coupSUSYPtr->LsddX[ksq][ifl2][id4chi];
123 Rsqq1X3 = coupSUSYPtr->RsddX[ksq][ifl1][id3chi];
124 Rsqq1X4 = coupSUSYPtr->RsddX[ksq][ifl1][id4chi];
125 Rsqq2X3 = coupSUSYPtr->RsddX[ksq][ifl2][id3chi];
126 Rsqq2X4 = coupSUSYPtr->RsddX[ksq][ifl2][id4chi];
130 QuLL += conj(Lsqq1X4)*Lsqq2X3/usq;
131 QuRR += conj(Rsqq1X4)*Rsqq2X3/usq;
132 QuLR += conj(Lsqq1X4)*Rsqq2X3/usq;
133 QuRL += conj(Rsqq1X4)*Lsqq2X3/usq;
137 QtLL -= conj(Lsqq1X3)*Lsqq2X4/tsq;
138 QtRR -= conj(Rsqq1X3)*Rsqq2X4/tsq;
139 QtLR += conj(Lsqq1X3)*Rsqq2X4/tsq;
140 QtRL += conj(Rsqq1X3)*Lsqq2X4/tsq;
145 double fac = (1.0-coupSUSYPtr->sin2W);
146 if(abs(id3)==abs(id4)) fac *= sqrt(2.);
150 double facLR = uH*tH - s3*s4;
151 double facMS = m3*m4*sH;
155 weight += norm(QuLL) * ui * uj + norm(QtLL) * ti * tj
156 + 2 * real(conj(QuLL) * QtLL) * facMS;
158 weight += norm(QtRR) * ti * tj + norm(QuRR) * ui * uj
159 + 2 * real(conj(QuRR) * QtRR) * facMS;
161 weight += norm(QuRL) * ui * uj + norm(QtRL) * ti * tj
162 + real(conj(QuRL) * QtRL) * facLR;
164 weight += norm(QuLR) * ui * uj + norm(QtLR) * ti * tj
165 + real(conj(QuLR) * QtLR) * facLR;
168 double sigma = sigma0 * weight / pow2(fac);
179 void Sigma2qqbar2chi0chi0::setIdColAcol() {
182 setId( id1, id2, id3, id4);
185 if (abs(id1) < 9) setColAcol( 1, 0, 0, 1, 0, 0, 0, 0);
186 else setColAcol( 0, 0, 0, 0, 0, 0, 0, 0);
187 if (id1 < 0) swapColAcol();
200 void Sigma2qqbar2charchi0::sigmaKin() {
204 sigma0 = M_PI / sH2 / 3.0 / pow2(coupSUSYPtr->sin2W) * pow2(alpEM) ;
205 sigma0 /= 2.0 * (1 - coupSUSYPtr->sin2W) ;
212 double sW = sH - pow2(coupSUSYPtr->mWpole);
213 double d = pow2(sW) + pow2(coupSUSYPtr->mWpole * coupSUSYPtr->wWpole);
214 propW = complex( sW / d, coupSUSYPtr->mWpole * coupSUSYPtr->wWpole / d);
222 double Sigma2qqbar2charchi0::sigmaHat() {
230 if (abs(id1) % 2 == abs(id2) % 2)
return 0.0;
231 int isPos = (id3chi > 0 ? 1 : 0);
232 if (id1 < 0 && id1 > -10 && abs(id1) % 2 == 1-isPos )
return 0.0;
233 else if (id1 > 0 && id1 < 10 && abs(id1) % 2 == isPos )
return 0.0;
236 int idAbs1 = abs(id1);
237 int iChar = abs(id3chi);
238 int iNeut = abs(id4chi);
240 complex QuLL(0.0),QtLL(0.0),QuRR(0.0),QtRR(0.0);
241 complex QuLR(0.0),QtLR(0.0),QuRL(0.0),QtRL(0.0);
248 int iGu = abs(id1)/2;
249 int iGd = abs(id2+1)/2;
251 if (idAbs1 % 2 != 0) {
258 QuLL = conj(coupSUSYPtr->LudW[iGu][iGd])
259 * conj(coupSUSYPtr->OL[iNeut][abs(iChar)])
261 QtLL = conj(coupSUSYPtr->LudW[iGu][iGd])
262 * conj(coupSUSYPtr->OR[iNeut][iChar])
266 for (
int jsq=1; jsq<=6; jsq++) {
268 int idsu=((jsq+2)/3)*1000000 + 2*((jsq-1) % 3) + 2;
269 int idsd=((jsq+2)/3)*1000000 + 2*((jsq-1) % 3) + 1;
270 double msd2 = pow(particleDataPtr->m0(idsd),2);
271 double msu2 = pow(particleDataPtr->m0(idsu),2);
272 double tsq = tH - msd2;
273 double usq = uH - msu2;
275 QuLL += conj(coupSUSYPtr->LsuuX[jsq][iGu][iNeut])
276 * conj(coupSUSYPtr->LsudX[jsq][iGd][iChar])/usq;
277 QuLR += conj(coupSUSYPtr->LsuuX[jsq][iGu][iNeut])
278 * conj(coupSUSYPtr->RsudX[jsq][iGd][iChar])/usq;
279 QuRR += conj(coupSUSYPtr->RsuuX[jsq][iGu][iNeut])
280 * conj(coupSUSYPtr->RsudX[jsq][iGd][iChar])/usq;
281 QuRL += conj(coupSUSYPtr->RsuuX[jsq][iGu][iNeut])
282 * conj(coupSUSYPtr->LsudX[jsq][iGd][iChar])/usq;
284 QtLL -= conj(coupSUSYPtr->LsduX[jsq][iGu][iChar])
285 * coupSUSYPtr->LsddX[jsq][iGd][iNeut]/tsq;
286 QtRR -= conj(coupSUSYPtr->RsduX[jsq][iGu][iChar])
287 * coupSUSYPtr->RsddX[jsq][iGd][iNeut]/tsq;
288 QtLR += conj(coupSUSYPtr->LsduX[jsq][iGu][iChar])
289 * coupSUSYPtr->RsddX[jsq][iGd][iNeut]/tsq;
290 QtRL += conj(coupSUSYPtr->RsduX[jsq][iGu][iChar])
291 * coupSUSYPtr->LsddX[jsq][iGd][iNeut]/tsq;
300 weight += norm(QuLL) * ui * uj + norm(QtLL) * ti * tj
301 + 2 * real(conj(QuLL) * QtLL) * m3 * m4 * sH;
303 weight += norm(QtRR) * ti * tj + norm(QuRR) * ui * uj
304 + 2 * real(conj(QuRR) * QtRR) * m3 * m4 * sH;
306 weight += norm(QuRL) * ui * uj + norm(QtRL) * ti * tj
307 + real(conj(QuRL) * QtRL) * (uH * tH - s3 * s4);
309 weight += norm(QuLR) * ui * uj + norm(QtLR) * ti * tj
310 + real(conj(QuLR) * QtLR) * (uH * tH - s3 * s4);
313 double sigma = sigma0 * weight;
314 if (idAbs1 < 9) sigma /= 3.;
330 void Sigma2qqbar2charchar::sigmaKin() {
333 sigma0 = M_PI / 3.0 / sH2 / pow2(coupSUSYPtr->sin2W) * pow2(alpEM) ;
340 double sV= sH - pow2(coupSUSYPtr->mZpole);
341 double d = pow2(sV) + pow2(coupSUSYPtr->mZpole * coupSUSYPtr->wZpole);
342 propZ = complex( sV / d, coupSUSYPtr->mZpole * coupSUSYPtr->wZpole / d);
350 double Sigma2qqbar2charchar::sigmaHat() {
358 if ((id1+id2) % 2 != 0) {
365 swapTU = (id1 < 0 ?
true :
false);
368 int idAbs1 = abs(id1);
369 int idAbs2 = abs(id2);
370 int i3 = abs(id3chi);
371 int i4 = abs(id4chi);
374 complex QuLL(0.0),QtLL(0.0),QuRR(0.0),QtRR(0.0);
375 complex QuLR(0.0),QtLR(0.0),QuRL(0.0),QtRL(0.0);
378 if (idAbs1 == idAbs2) {
380 QuLL = -coupSUSYPtr->LqqZ[idAbs1]*conj(coupSUSYPtr->ORp[i3][i4]);
381 QtLL = -coupSUSYPtr->LqqZ[idAbs1]*conj(coupSUSYPtr->OLp[i3][i4]);
382 QuRR = -coupSUSYPtr->RqqZ[idAbs1]*conj(coupSUSYPtr->OLp[i3][i4]);
383 QtRR = -coupSUSYPtr->RqqZ[idAbs1]*conj(coupSUSYPtr->ORp[i3][i4]);
385 QuLL *= propZ / 2.0 / (1.0-coupSUSYPtr->sin2W);
386 QtLL *= propZ / 2.0 / (1.0-coupSUSYPtr->sin2W);
387 QuRR *= propZ / 2.0 / (1.0-coupSUSYPtr->sin2W);
388 QtRR *= propZ / 2.0 / (1.0-coupSUSYPtr->sin2W);
395 if (idAbs1 % 2 == 1) q = -1.0/3.0;
396 QuLL += q * coupSUSYPtr->sin2W / sH;
397 QuRR += q * coupSUSYPtr->sin2W / sH;
398 QtLL += q * coupSUSYPtr->sin2W / sH;
399 QtRR += q * coupSUSYPtr->sin2W / sH;
404 int iG1 = (abs(id1)+1)/2;
405 int iG2 = (abs(id2)+1)/2;
408 for (
int ksq=1; ksq<=6; ksq++) {
415 int idsd = ((ksq+2)/3)*1000000 + 2*((ksq-1) % 3) + 1;
416 double msq = particleDataPtr->m0(idsd);
417 double ufac = 2.0 * (uH - pow2(msq));
420 QuLL += coupSUSYPtr->LsduX[ksq][iG2][i3]
421 * conj(coupSUSYPtr->LsduX[ksq][iG1][i4]) / ufac;
422 QuRR += coupSUSYPtr->RsduX[ksq][iG2][i3]
423 * conj(coupSUSYPtr->RsduX[ksq][iG1][i4]) / ufac;
424 QuLR += coupSUSYPtr->RsduX[ksq][iG2][i3]
425 * conj(coupSUSYPtr->LsduX[ksq][iG1][i4]) / ufac;
426 QuRL += coupSUSYPtr->LsduX[ksq][iG2][i3]
427 * conj(coupSUSYPtr->RsduX[ksq][iG1][i4]) / ufac;
434 int idsu = ((ksq+2)/3)*1000000 + 2*((ksq-1) % 3) + 2;
435 double msq = particleDataPtr->m0(idsu);
436 double tfac = 2.0 * (tH - pow2(msq));
439 QtLL -= coupSUSYPtr->LsudX[ksq][iG1][i3]
440 * conj(coupSUSYPtr->LsudX[ksq][iG2][i4]) / tfac;
441 QtRR -= coupSUSYPtr->RsudX[ksq][iG1][i3]
442 * conj(coupSUSYPtr->RsudX[ksq][iG2][i4]) / tfac;
443 QtLR += coupSUSYPtr->LsudX[ksq][iG1][i3]
444 * conj(coupSUSYPtr->RsudX[ksq][iG2][i4]) / tfac;
445 QtRL += coupSUSYPtr->RsudX[ksq][iG1][i3]
446 * conj(coupSUSYPtr->LsudX[ksq][iG2][i4]) / tfac;
455 weight += norm(QuLL) * ui * uj + norm(QtLL) * ti * tj
456 + 2 * real(conj(QuLL) * QtLL) * m3 * m4 * sH;
458 weight += norm(QtRR) * ti * tj + norm(QuRR) * ui * uj
459 + 2 * real(conj(QuRR) * QtRR) * m3 * m4 * sH;
461 weight += norm(QuRL) * ui * uj + norm(QtRL) * ti * tj
462 + real(conj(QuRL) * QtRL) * (uH * tH - s3 * s4);
464 weight += norm(QuLR) * ui * uj + norm(QtLR) * ti * tj
465 + real(conj(QuLR) * QtLR) * (uH * tH - s3 * s4);
468 double sigma = sigma0 * weight;
484 void Sigma2qg2chi0squark::initProc() {
487 coupSUSYPtr = (CoupSUSY*) couplingsPtr;
491 nameSave =
"q g -> " + particleDataPtr->name(id3) +
" "
492 + particleDataPtr->name(id4) +
" + c.c. (q=u,c)";
495 nameSave =
"q g -> " + particleDataPtr->name(id3) +
" "
496 + particleDataPtr->name(id4) +
" + c.c. (q=d,s,b)";
500 openFracPair = particleDataPtr->resOpenFrac(id3, id4);
508 void Sigma2qg2chi0squark::sigmaKin() {
512 sigma0 = M_PI / sH2 / coupSUSYPtr->sin2W * alpEM * alpS
527 double Sigma2qg2chi0squark::sigmaHat() {
531 if (id1 == 21 || id1 == 22) idq = id2;
542 int iGq = (abs(idq)+1)/2;
545 if (particleDataPtr->chargeType(idq) != particleDataPtr->chargeType(id4))
549 complex LsqqX, RsqqX;
551 LsqqX = coupSUSYPtr->LsuuX[id4sq][iGq][id3chi];
552 RsqqX = coupSUSYPtr->RsuuX[id4sq][iGq][id3chi];
555 LsqqX = coupSUSYPtr->LsddX[id4sq][iGq][id3chi];
556 RsqqX = coupSUSYPtr->RsddX[id4sq][iGq][id3chi];
562 fac1 = -ui/sH + 2.0 * ( uH*tH - s4*s3 )/sH/tj;
563 fac2 = ti/tj * ( (tH + s4)/tj + (ti - uj)/sH );
565 fac1 = -ti/sH + 2.0 * ( uH*tH - s4*s3 )/sH/uj;
566 fac2 = ui/uj * ( (uH + s4)/uj + (ui - tj)/sH );
575 weight += fac2 * norm(LsqqX) / 2.0;
577 weight += fac2 * norm(RsqqX) / 2.0;
579 weight += fac2 * norm(RsqqX) / 2.0 + fac1 * norm(RsqqX);
581 weight += fac2 * norm(LsqqX) / 2.0 + fac1 * norm(LsqqX);
583 double sigma = sigma0 * weight;
584 if (abs(idq) < 9) sigma /= 3.;
595 void Sigma2qg2chi0squark::setIdColAcol() {
598 setId( id1, id2, id3, (id1*id2 > 0 ? abs(id4) : -abs(id4)));
601 if (id1 != 21) setColAcol( 1, 0, 2, 1, 0, 0, 2, 0);
602 else setColAcol( 1, 2, 2, 0, 0, 0, 1, 0);
603 if (id1*id2 < 0) swapColAcol();
616 void Sigma2qg2charsquark::initProc() {
619 coupSUSYPtr = (CoupSUSY*) couplingsPtr;
623 nameSave =
"q g -> " + particleDataPtr->name(id3) +
" "
624 + particleDataPtr->name(id4) +
" + c.c. (q=d,s,b)";
627 nameSave =
"q g -> " + particleDataPtr->name(id3) +
" "
628 + particleDataPtr->name(id4) +
" + c.c. (q=u,c)";
632 openFracPair = particleDataPtr->resOpenFrac(id3Sav, id4Sav);
640 double Sigma2qg2charsquark::sigmaHat() {
643 int idq = (id1 == 21) ? id2 : id1;
653 if (particleDataPtr->chargeType(idq) == particleDataPtr->chargeType(id4))
657 int iGq = (abs(idq)+1)/2;
660 complex LsqqX, RsqqX;
662 LsqqX = coupSUSYPtr->LsduX[id4sq][iGq][id3chi];
663 RsqqX = coupSUSYPtr->RsduX[id4sq][iGq][id3chi];
666 LsqqX = coupSUSYPtr->LsduX[id4sq][iGq][id3chi];
667 RsqqX = coupSUSYPtr->RsduX[id4sq][iGq][id3chi];
673 fac1 = -ui/sH + 2.0 * ( uH*tH - s4*s3 )/sH/tj;
674 fac2 = ti/tj * ( (tH + s4)/tj + (ti - uj)/sH );
676 fac1 = -ti/sH + 2.0 * ( uH*tH - s4*s3 )/sH/uj;
677 fac2 = ui/uj * ( (uH + s4)/uj + (ui - tj)/sH );
686 weight += fac2 * norm(LsqqX) / 2.0;
688 weight += fac2 * norm(RsqqX) / 2.0;
690 weight += fac2 * norm(RsqqX) / 2.0 + fac1 * norm(RsqqX);
692 weight += fac2 * norm(LsqqX) / 2.0 + fac1 * norm(LsqqX);
694 double sigma = sigma0 * weight;
695 if (abs(idq) < 9) sigma /= 3.;
698 return sigma * openFracPair;
706 void Sigma2qg2charsquark::setIdColAcol() {
709 if (id1 > 0 && id2 > 0) {
710 setId( id1, id2, id3Sav, id4Sav);
712 setId( id1, id2,-id3Sav,-id4Sav);
716 if (id1 != 21) setColAcol( 1, 0, 2, 1, 0, 0, 2, 0);
717 else setColAcol( 1, 2, 2, 0, 0, 0, 1, 0);
718 if (id1 < 0 || id2 < 0) swapColAcol();
731 void Sigma2qq2squarksquark::initProc() {
734 coupSUSYPtr = (CoupSUSY*) couplingsPtr;
737 iGen3 = 3*(abs(id3Sav)/2000000) + (abs(id3Sav)%10+1)/2;
738 iGen4 = 3*(abs(id4Sav)/2000000) + (abs(id4Sav)%10+1)/2;
741 if (abs(id3Sav) % 2 == abs(id4Sav) % 2) isUD =
false;
745 nameSave =
"q q' -> "+particleDataPtr->name(abs(id3Sav))+
" "
746 +particleDataPtr->name(abs(id4Sav))+
" + c.c.";
749 nNeut = (coupSUSYPtr->isNMSSM ? 5 : 4);
752 m2Glu = pow2(particleDataPtr->m0(1000021));
753 m2Neut.resize(nNeut+1);
754 for (
int iNeut=1;iNeut<=nNeut;iNeut++) {
755 m2Neut[iNeut] = pow2(particleDataPtr->m0(coupSUSYPtr->idNeut(iNeut)));
758 m2Char[1] = pow2(particleDataPtr->m0(coupSUSYPtr->idChar(1)));
759 m2Char[2] = pow2(particleDataPtr->m0(coupSUSYPtr->idChar(2)));
762 tNeut.resize(nNeut+1);
763 uNeut.resize(nNeut+1);
768 openFracPair = particleDataPtr->resOpenFrac(id3Sav, id4Sav);
775 void Sigma2qq2squarksquark::sigmaKin() {
778 double xW = coupSUSYPtr->sin2W;
781 double comFacHat = M_PI/sH2 * openFracPair;
784 sigmaNeut = comFacHat * pow2(alpEM) / pow2(xW) / pow2(1-xW);
785 sigmaGlu = comFacHat * 2.0 * pow2(alpS) / 9.0;
787 sigmaChar = comFacHat * pow2(alpEM) / 4.0 / pow2(xW);
788 sigmaCharNeut = comFacHat * pow2(alpEM) / 3.0 / pow2(xW) / (1-xW);
789 sigmaCharGlu = comFacHat * 4.0 * alpEM * alpS / 9.0 / xW;
795 sigmaNeutGlu = comFacHat * 8.0 * alpEM * alpS / 9.0 / xW/(1-xW);
804 double Sigma2qq2squarksquark::sigmaHat() {
807 if (id1 * id2 < 0)
return 0.0;
810 if (isUD && abs(id1) %2 == abs(id2) % 2)
return 0.0;
811 if (!isUD && abs(id1) % 2 != abs(id2) % 2)
return 0.0;
812 if (!isUD && abs(id1) % 2 != abs(id3Sav) % 2)
return 0.0;
815 swapTU = (isUD and abs(id1) % 2 == 0);
816 int idIn1A = (swapTU) ? abs(id2) : abs(id1);
817 int idIn2A = (swapTU) ? abs(id1) : abs(id2);
822 for (
int i=1; i<= nNeut; i++) {
823 tNeut[i] = tH - m2Neut[i];
824 uNeut[i] = uH - m2Neut[i];
825 if (isUD && i <= 2) {
826 tChar[i] = tH - m2Char[i];
827 uChar[i] = uH - m2Char[i];
832 int iGen1 = (abs(idIn1A)+1)/2;
833 int iGen2 = (abs(idIn2A)+1)/2;
842 sumInterference = 0.0;
845 double facTU = uH*tH-s3*s4;
851 for (
int k=1;k<=2;k++) {
854 if (settingsPtr->flag(
"SUSY:qq2squarksquark:onlyQCD"))
continue;
856 for (
int l=1;l<=2;l++) {
859 double facMS = sH*sqrt(m2Char[k]*m2Char[l]);
865 * coupSUSYPtr->LsudX[iGen4][iGen2][k]
866 * conj(coupSUSYPtr->LsduX[iGen3][iGen1][k])
867 * conj(coupSUSYPtr->LsudX[iGen4][iGen2][l])
868 * coupSUSYPtr->LsduX[iGen3][iGen1][l];
870 * coupSUSYPtr->RsudX[iGen4][iGen2][k]
871 * conj(coupSUSYPtr->LsduX[iGen3][iGen1][k])
872 * conj(coupSUSYPtr->RsudX[iGen4][iGen2][l])
873 * coupSUSYPtr->LsduX[iGen3][iGen1][l];
875 * coupSUSYPtr->LsudX[iGen4][iGen2][k]
876 * conj(coupSUSYPtr->RsduX[iGen3][iGen1][k])
877 * conj(coupSUSYPtr->LsudX[iGen4][iGen2][l])
878 * coupSUSYPtr->RsduX[iGen3][iGen1][l];
880 * coupSUSYPtr->RsudX[iGen4][iGen2][k]
881 * conj(coupSUSYPtr->RsduX[iGen3][iGen1][k])
882 * conj(coupSUSYPtr->RsudX[iGen4][iGen2][l])
883 * coupSUSYPtr->RsduX[iGen3][iGen1][l];
886 sumCt += sigmaChar * real(Ckl[1][1] + Ckl[1][2] + Ckl[2][1]
887 + Ckl[2][2]) / tChar[k] / tChar[l];
893 for (
int k=1;k<=nNeut;k++) {
896 if (settingsPtr->flag(
"SUSY:qq2squarksquark:onlyQCD"))
continue;
898 for (
int l=1;l<=nNeut;l++) {
901 double facMS = sH*sqrt(m2Neut[k]*m2Neut[l]);
907 * conj(coupSUSYPtr->LsuuX[iGen4][iGen1][k])
908 * conj(coupSUSYPtr->LsddX[iGen3][iGen2][k])
909 * coupSUSYPtr->LsuuX[iGen4][iGen1][l]
910 * coupSUSYPtr->LsddX[iGen3][iGen2][l];
912 * conj(coupSUSYPtr->LsuuX[iGen4][iGen1][k])
913 * conj(coupSUSYPtr->RsddX[iGen3][iGen2][k])
914 * coupSUSYPtr->LsuuX[iGen4][iGen1][l]
915 * coupSUSYPtr->RsddX[iGen3][iGen2][l];
917 * conj(coupSUSYPtr->RsuuX[iGen4][iGen1][k])
918 * conj(coupSUSYPtr->LsddX[iGen3][iGen2][k])
919 * coupSUSYPtr->RsuuX[iGen4][iGen1][l]
920 * coupSUSYPtr->LsddX[iGen3][iGen2][l];
922 * conj(coupSUSYPtr->RsuuX[iGen4][iGen1][k])
923 * conj(coupSUSYPtr->RsddX[iGen3][iGen2][k])
924 * coupSUSYPtr->RsuuX[iGen4][iGen1][l]
925 * coupSUSYPtr->RsddX[iGen3][iGen2][l];
928 sumNu += sigmaNeut / uNeut[k] / uNeut[l]
929 * real(Nkl[1][1] + Nkl[1][2] + Nkl[2][1] + Nkl[2][2]);
938 Gij[1][1] = norm(coupSUSYPtr->LsuuG[iGen4][iGen1]
939 * coupSUSYPtr->LsddG[iGen3][iGen2]);
940 Gij[1][2] = norm(coupSUSYPtr->LsuuG[iGen4][iGen1]
941 * coupSUSYPtr->RsddG[iGen3][iGen2]);
942 Gij[2][1] = norm(coupSUSYPtr->RsuuG[iGen4][iGen1]
943 * coupSUSYPtr->LsddG[iGen3][iGen2]);
944 Gij[2][2] = norm(coupSUSYPtr->RsuuG[iGen4][iGen1]
945 * coupSUSYPtr->RsddG[iGen3][iGen2]);
946 Gij[1][1] *= sH*m2Glu;
949 Gij[2][2] *= sH*m2Glu;
951 sumGu += sigmaGlu * (Gij[1][1] + Gij[1][2] + Gij[2][1] + Gij[2][2])
955 for (
int k=1;k<=2;k++) {
956 for (
int l=1;l<=nNeut;l++) {
959 if (settingsPtr->flag(
"SUSY:qq2squarksquark:onlyQCD"))
continue;
964 CNkl[1][1] = real(coupSUSYPtr->LsudX[iGen4][iGen2][k]
965 * conj(coupSUSYPtr->LsduX[iGen3][iGen1][k])
966 * coupSUSYPtr->LsuuX[iGen4][iGen1][l]
967 * coupSUSYPtr->LsddX[iGen3][iGen2][l]);
968 CNkl[1][2] = real(coupSUSYPtr->RsudX[iGen4][iGen2][k]
969 * conj(coupSUSYPtr->LsduX[iGen3][iGen1][k])
970 * coupSUSYPtr->LsuuX[iGen4][iGen1][l]
971 * coupSUSYPtr->RsddX[iGen3][iGen2][l]);
972 CNkl[2][1] = real(coupSUSYPtr->LsudX[iGen4][iGen2][k]
973 * conj(coupSUSYPtr->RsduX[iGen3][iGen1][k])
974 * coupSUSYPtr->RsuuX[iGen4][iGen1][l]
975 * coupSUSYPtr->LsddX[iGen3][iGen2][l]);
976 CNkl[2][2] = real(coupSUSYPtr->RsudX[iGen4][iGen2][k]
977 * conj(coupSUSYPtr->RsduX[iGen3][iGen1][k])
978 * coupSUSYPtr->RsuuX[iGen4][iGen1][l]
979 * coupSUSYPtr->RsddX[iGen3][iGen2][l]);
980 CNkl[1][1] *= sH*sqrt(m2Char[k]*m2Neut[l]);
981 CNkl[1][2] *= uH*tH-s3*s4;
982 CNkl[2][1] *= uH*tH-s3*s4;
983 CNkl[2][2] *= sH*sqrt(m2Char[k]*m2Neut[l]);
985 sumInterference += sigmaCharNeut * (CNkl[1][1] + CNkl[1][2]
986 + CNkl[2][1] + CNkl[2][2]) / tChar[k] / uNeut[l];
991 for (
int k=1;k<=2;k++) {
994 if (settingsPtr->flag(
"SUSY:qq2squarksquark:onlyQCD"))
continue;
999 CGk[1][1] = real(coupSUSYPtr->LsudX[iGen4][iGen2][k]
1000 * conj(coupSUSYPtr->LsduX[iGen3][iGen1][k])
1001 * conj(coupSUSYPtr->LsuuG[iGen4][iGen1])
1002 * conj(coupSUSYPtr->LsddG[iGen3][iGen2]));
1003 CGk[1][2] = real(coupSUSYPtr->RsudX[iGen4][iGen2][k]
1004 * conj(coupSUSYPtr->LsduX[iGen3][iGen1][k])
1005 * conj(coupSUSYPtr->LsuuG[iGen4][iGen1])
1006 * conj(coupSUSYPtr->RsddG[iGen3][iGen2]));
1007 CGk[2][1] = real(coupSUSYPtr->LsudX[iGen4][iGen2][k]
1008 * conj(coupSUSYPtr->RsduX[iGen3][iGen1][k])
1009 * conj(coupSUSYPtr->RsuuG[iGen4][iGen1])
1010 * conj(coupSUSYPtr->LsddG[iGen3][iGen2]));
1011 CGk[2][2] = real(coupSUSYPtr->RsudX[iGen4][iGen2][k]
1012 * conj(coupSUSYPtr->RsduX[iGen3][iGen1][k])
1013 * conj(coupSUSYPtr->RsuuG[iGen4][iGen1])
1014 * conj(coupSUSYPtr->RsddG[iGen3][iGen2]));
1015 CGk[1][1] *= sH*sqrt(m2Glu*m2Char[k]);
1016 CGk[1][2] *= uH*tH-s3*s4;
1017 CGk[2][1] *= uH*tH-s3*s4;
1018 CGk[2][2] *= sH*sqrt(m2Glu*m2Char[k]);
1020 sumInterference += sigmaGlu * (CGk[1][1] + CGk[1][2] + CGk[2][1]
1021 + CGk[2][2]) / uGlu / tChar[k];
1029 for (
int k=1;k<=nNeut;k++) {
1032 if (settingsPtr->flag(
"SUSY:qq2squarksquark:onlyQCD"))
continue;
1034 for (
int l=1;l<=nNeut;l++) {
1037 double facMS = sH * particleDataPtr->m0(coupSUSYPtr->idNeut(k))
1038 * particleDataPtr->m0(coupSUSYPtr->idNeut(l));
1042 complex NTkl[3][3], NUkl[3][3], NTUkl[3][3];
1044 * conj(coupSUSYPtr->getLsqqX(iGen4,idIn2A,k))
1045 * conj(coupSUSYPtr->getLsqqX(iGen3,idIn1A,k))
1046 * coupSUSYPtr->getLsqqX(iGen4,idIn2A,l)
1047 * coupSUSYPtr->getLsqqX(iGen3,idIn1A,l);
1049 * conj(coupSUSYPtr->getRsqqX(iGen4,idIn2A,k))
1050 * conj(coupSUSYPtr->getLsqqX(iGen3,idIn1A,k))
1051 * coupSUSYPtr->getRsqqX(iGen4,idIn2A,l)
1052 * coupSUSYPtr->getLsqqX(iGen3,idIn1A,l);
1054 * conj(coupSUSYPtr->getLsqqX(iGen4,idIn2A,k))
1055 * conj(coupSUSYPtr->getRsqqX(iGen3,idIn1A,k))
1056 * coupSUSYPtr->getLsqqX(iGen4,idIn2A,l)
1057 * coupSUSYPtr->getRsqqX(iGen3,idIn1A,l);
1059 * conj(coupSUSYPtr->getRsqqX(iGen4,idIn2A,k))
1060 * conj(coupSUSYPtr->getRsqqX(iGen3,idIn1A,k))
1061 * coupSUSYPtr->getRsqqX(iGen4,idIn2A,l)
1062 * coupSUSYPtr->getRsqqX(iGen3,idIn1A,l);
1064 * conj(coupSUSYPtr->getLsqqX(iGen3,idIn2A,k))
1065 * conj(coupSUSYPtr->getLsqqX(iGen4,idIn1A,k))
1066 * coupSUSYPtr->getLsqqX(iGen3,idIn2A,l)
1067 * coupSUSYPtr->getLsqqX(iGen4,idIn1A,l);
1069 * conj(coupSUSYPtr->getRsqqX(iGen3,idIn2A,k))
1070 * conj(coupSUSYPtr->getLsqqX(iGen4,idIn1A,k))
1071 * coupSUSYPtr->getRsqqX(iGen3,idIn2A,l)
1072 * coupSUSYPtr->getLsqqX(iGen4,idIn1A,l);
1074 * conj(coupSUSYPtr->getLsqqX(iGen3,idIn2A,k))
1075 * conj(coupSUSYPtr->getRsqqX(iGen4,idIn1A,k))
1076 * coupSUSYPtr->getLsqqX(iGen3,idIn2A,l)
1077 * coupSUSYPtr->getRsqqX(iGen4,idIn1A,l);
1079 * conj(coupSUSYPtr->getRsqqX(iGen3,idIn2A,k))
1080 * conj(coupSUSYPtr->getRsqqX(iGen4,idIn1A,k))
1081 * coupSUSYPtr->getRsqqX(iGen3,idIn2A,l)
1082 * coupSUSYPtr->getRsqqX(iGen4,idIn1A,l);
1084 * real( conj(coupSUSYPtr->getLsqqX(iGen4,idIn2A,k))
1085 * conj(coupSUSYPtr->getLsqqX(iGen3,idIn1A,k))
1086 * coupSUSYPtr->getLsqqX(iGen3,idIn2A,l)
1087 * coupSUSYPtr->getLsqqX(iGen4,idIn1A,l) );
1089 * real( conj(coupSUSYPtr->getRsqqX(iGen4,idIn2A,k))
1090 * conj(coupSUSYPtr->getLsqqX(iGen3,idIn1A,k))
1091 * coupSUSYPtr->getRsqqX(iGen3,idIn2A,l)
1092 * coupSUSYPtr->getLsqqX(iGen4,idIn1A,l) );
1094 * real( conj(coupSUSYPtr->getLsqqX(iGen4,idIn2A,k))
1095 * conj(coupSUSYPtr->getRsqqX(iGen3,idIn1A,k))
1096 * coupSUSYPtr->getLsqqX(iGen3,idIn2A,l)
1097 * coupSUSYPtr->getRsqqX(iGen4,idIn1A,l) );
1099 * real( conj(coupSUSYPtr->getRsqqX(iGen4,idIn2A,k))
1100 * conj(coupSUSYPtr->getRsqqX(iGen3,idIn1A,k))
1101 * coupSUSYPtr->getRsqqX(iGen3,idIn2A,l)
1102 * coupSUSYPtr->getRsqqX(iGen4,idIn1A,l) );
1105 sumNt += sigmaNeut / tNeut[k] / tNeut[l]
1106 * real(NTkl[1][1] + NTkl[1][2] + NTkl[2][1] + NTkl[2][2]);
1107 sumNu += sigmaNeut / uNeut[k] / uNeut[l]
1108 * real(NUkl[1][1] + NUkl[1][2] + NUkl[2][1] + NUkl[2][2]);
1109 sumInterference += 2.0 / 3.0 * sigmaNeut
1110 * real(NTUkl[1][1] + NTUkl[1][2] + NTUkl[2][1] + NTUkl[2][2])
1111 / tNeut[k] / uNeut[l];
1117 double facMS = sH * particleDataPtr->m0(coupSUSYPtr->idNeut(k))
1118 * particleDataPtr->m0(1000021);
1122 complex NGA[3][3], NGB[3][3];
1124 * real( conj(coupSUSYPtr->getLsqqX(iGen4,idIn2A,k))
1125 * conj(coupSUSYPtr->getLsqqX(iGen3,idIn1A,k))
1126 * conj(coupSUSYPtr->getLsqqG(iGen3,idIn2A))
1127 * conj(coupSUSYPtr->getLsqqG(iGen4,idIn1A)) );
1129 * real( conj(coupSUSYPtr->getRsqqX(iGen4,idIn2A,k))
1130 * conj(coupSUSYPtr->getLsqqX(iGen3,idIn1A,k))
1131 * conj(coupSUSYPtr->getLsqqG(iGen3,idIn2A))
1132 * conj(coupSUSYPtr->getRsqqG(iGen4,idIn1A)) );
1134 * real( conj(coupSUSYPtr->getLsqqX(iGen4,idIn2A,k))
1135 * conj(coupSUSYPtr->getRsqqX(iGen3,idIn1A,k))
1136 * conj(coupSUSYPtr->getRsqqG(iGen3,idIn2A))
1137 * conj(coupSUSYPtr->getLsqqG(iGen4,idIn1A)) );
1139 * real( conj(coupSUSYPtr->getRsqqX(iGen4,idIn2A,k))
1140 * conj(coupSUSYPtr->getRsqqX(iGen3,idIn1A,k))
1141 * conj(coupSUSYPtr->getRsqqG(iGen3,idIn2A))
1142 * conj(coupSUSYPtr->getRsqqG(iGen4,idIn1A)) );
1144 * real( conj(coupSUSYPtr->getLsqqX(iGen3,idIn2A,k))
1145 * conj(coupSUSYPtr->getLsqqX(iGen4,idIn1A,k))
1146 * conj(coupSUSYPtr->getLsqqG(iGen4,idIn2A))
1147 * conj(coupSUSYPtr->getLsqqG(iGen3,idIn1A)) );
1149 * real( conj(coupSUSYPtr->getRsqqX(iGen3,idIn2A,k))
1150 * conj(coupSUSYPtr->getLsqqX(iGen4,idIn1A,k))
1151 * conj(coupSUSYPtr->getRsqqG(iGen4,idIn2A))
1152 * conj(coupSUSYPtr->getLsqqG(iGen3,idIn1A)) );
1154 * real( conj(coupSUSYPtr->getLsqqX(iGen3,idIn2A,k))
1155 * conj(coupSUSYPtr->getRsqqX(iGen4,idIn1A,k))
1156 * conj(coupSUSYPtr->getLsqqG(iGen4,idIn2A))
1157 * conj(coupSUSYPtr->getRsqqG(iGen3,idIn1A)) );
1159 * real( conj(coupSUSYPtr->getRsqqX(iGen3,idIn2A,k))
1160 * conj(coupSUSYPtr->getRsqqX(iGen4,idIn1A,k))
1161 * conj(coupSUSYPtr->getRsqqG(iGen4,idIn2A))
1162 * conj(coupSUSYPtr->getRsqqG(iGen3,idIn1A)) );
1165 sumInterference += sigmaNeutGlu *
1166 ( real(NGA[1][1] + NGA[1][2] + NGA[2][1] + NGA[2][2])
1168 + real(NGB[1][1] + NGB[1][2] + NGB[2][1] + NGB[2][2])
1169 / uNeut[k] / tGlu );
1175 double facMS = sH * m2Glu;
1179 complex GT[3][3], GU[3][3], GTU[3][3];
1181 * norm(coupSUSYPtr->getLsqqG(iGen4,idIn2A)
1182 * coupSUSYPtr->getLsqqG(iGen3,idIn1A));
1184 * norm(coupSUSYPtr->getRsqqG(iGen4,idIn2A)
1185 * coupSUSYPtr->getLsqqG(iGen3,idIn1A));
1187 * norm(coupSUSYPtr->getLsqqG(iGen4,idIn2A)
1188 * coupSUSYPtr->getRsqqG(iGen3,idIn1A));
1190 * norm(coupSUSYPtr->getRsqqG(iGen4,idIn2A)
1191 * coupSUSYPtr->getRsqqG(iGen3,idIn1A));
1193 * norm(coupSUSYPtr->getLsqqG(iGen3,idIn2A)
1194 * coupSUSYPtr->getLsqqG(iGen4,idIn1A));
1196 * norm(coupSUSYPtr->getLsqqG(iGen3,idIn2A)
1197 * coupSUSYPtr->getRsqqG(iGen4,idIn1A));
1199 * norm(coupSUSYPtr->getRsqqG(iGen3,idIn2A)
1200 * coupSUSYPtr->getLsqqG(iGen4,idIn1A));
1202 * norm(coupSUSYPtr->getRsqqG(iGen3,idIn2A)
1203 * coupSUSYPtr->getRsqqG(iGen4,idIn1A));
1206 * real(coupSUSYPtr->getLsqqG(iGen3,idIn1A)
1207 * coupSUSYPtr->getLsqqG(iGen4,idIn2A)
1208 * conj(coupSUSYPtr->getLsqqG(iGen3,idIn2A))
1209 * conj(coupSUSYPtr->getLsqqG(iGen4,idIn1A)) );
1212 * real(coupSUSYPtr->getLsqqG(iGen3,idIn1A)
1213 * coupSUSYPtr->getRsqqG(iGen4,idIn2A)
1214 * conj(coupSUSYPtr->getRsqqG(iGen3,idIn2A))
1215 * conj(coupSUSYPtr->getLsqqG(iGen4,idIn1A)) );
1218 * real(coupSUSYPtr->getRsqqG(iGen3,idIn1A)
1219 * coupSUSYPtr->getLsqqG(iGen4,idIn2A)
1220 * conj(coupSUSYPtr->getLsqqG(iGen3,idIn2A))
1221 * conj(coupSUSYPtr->getRsqqG(iGen4,idIn1A)) );
1224 * real(coupSUSYPtr->getRsqqG(iGen3,idIn1A)
1225 * coupSUSYPtr->getRsqqG(iGen4,idIn2A)
1226 * conj(coupSUSYPtr->getRsqqG(iGen3,idIn2A))
1227 * conj(coupSUSYPtr->getRsqqG(iGen4,idIn1A)) );
1230 sumGt += sigmaGlu * real(GT[1][1] + GT[1][2] + GT[2][1] + GT[2][2])
1232 sumGu += sigmaGlu * real(GU[1][1] + GU[1][2] + GU[2][1] + GU[2][2])
1234 sumInterference += - 2.0 / 3.0 * sigmaGlu
1235 * real(GTU[1][1] + GTU[1][2] + GTU[2][1] + GTU[2][2])
1241 double sigma = sumNt + sumNu + sumCt + sumCu + sumGt + sumGu
1245 if (id3Sav == id4Sav) sigma /= 2.0;
1256 void Sigma2qq2squarksquark::setIdColAcol() {
1259 if (id1 > 0 && id2 > 0) {
1260 setId( id1, id2, id3Sav, id4Sav);
1263 setId( id1, id2,-id3Sav,-id4Sav);
1267 swapTU = (isUD and abs(id1) % 2 == 0);
1271 double fracA = sumNt + sumCt + sumGu
1272 / (sumNt + sumNu + sumCt + sumCu + sumGt + sumGu);
1273 if (swapTU) fracA = 1.0 - fracA;
1274 setColAcol( 1, 0, 2, 0, 1, 0, 2, 0);
1276 if (rndmPtr->flat() > fracA) setColAcol( 1, 0, 2, 0, 2, 0, 1, 0);
1279 if (id1 < 0 || id2 < 0) swapColAcol();
1292 void Sigma2qqbar2squarkantisquark::initProc() {
1295 coupSUSYPtr = (CoupSUSY*) couplingsPtr;
1298 iGen3 = 3*(abs(id3Sav)/2000000) + (abs(id3Sav)%10+1)/2;
1299 iGen4 = 3*(abs(id4Sav)/2000000) + (abs(id4Sav)%10+1)/2;
1302 if (abs(id3Sav) % 2 == abs(id4Sav) % 2) isUD =
false;
1306 nameSave =
"q qbar' -> "+particleDataPtr->name(abs(id3Sav))+
" "+
1307 particleDataPtr->name(-abs(id4Sav));
1308 if (isUD && abs(id3Sav) != abs(id4Sav)) nameSave +=
" + c.c.";
1311 nNeut = (coupSUSYPtr->isNMSSM ? 5 : 4);
1314 m2Glu = pow2(particleDataPtr->m0(1000021));
1315 m2Neut.resize(nNeut+1);
1316 for (
int iNeut=1;iNeut<=nNeut;iNeut++)
1317 m2Neut[iNeut] = pow2(particleDataPtr->m0(coupSUSYPtr->idNeut(iNeut)));
1320 tNeut.resize(nNeut+1);
1321 uNeut.resize(nNeut+1);
1324 xW = coupSUSYPtr->sin2W;
1327 openFracPair = particleDataPtr->resOpenFrac(id3Sav, id4Sav);
1335 void Sigma2qqbar2squarkantisquark::sigmaKin() {
1339 double sV= sH - pow2(coupSUSYPtr->mZpole);
1340 double d = pow2(sV) + pow2(coupSUSYPtr->mZpole * coupSUSYPtr->wZpole);
1341 propZW = complex( sV / d, coupSUSYPtr->mZpole * coupSUSYPtr->wZpole / d);
1343 double sV= sH - pow2(coupSUSYPtr->mWpole);
1344 double d = pow2(sV) + pow2(coupSUSYPtr->mWpole * coupSUSYPtr->wWpole);
1345 propZW = complex( sV / d, coupSUSYPtr->mWpole * coupSUSYPtr->wWpole / d);
1349 double comFacHat = M_PI/sH2 * openFracPair;
1351 sigmaEW = comFacHat * pow2(alpEM);
1352 sigmaGlu = comFacHat * 2.0 * pow2(alpS) / 9.0;
1353 sigmaEWG = comFacHat * 8.0 * alpEM * alpS / 9.0;
1361 double Sigma2qqbar2squarkantisquark::sigmaHat() {
1364 if (id1 * id2 > 0)
return 0.0;
1367 if (isUD && abs(id1) %2 == abs(id2) % 2)
return 0.0;
1368 if (!isUD && abs(id1) % 2 != abs(id2) % 2)
return 0.0;
1371 bool onlyQCD = settingsPtr->flag(
"SUSY:qqbar2squarkantisquark:onlyQCD");
1374 swapTU = (isUD and abs(id1) % 2 != 0);
1377 if (!isUD && id1 < 0) swapTU =
true;
1380 int idIn1A = (swapTU) ? abs(id2) : abs(id1);
1381 int idIn2A = (swapTU) ? abs(id1) : abs(id2);
1382 int iGen1 = (idIn1A+1)/2;
1383 int iGen2 = (idIn2A+1)/2;
1388 for (
int i=1; i<= nNeut; i++) {
1389 tNeut[i] = tH - m2Neut[i];
1390 uNeut[i] = uH - m2Neut[i];
1396 sumInterference = 0.0;
1399 double facTU = uH*tH-s3*s4;
1406 sumColS += sigmaEW / 16.0 / pow2(xW) / pow2(1.0-xW)
1407 * norm(conj(coupSUSYPtr->LudW[iGen1][iGen2])
1408 * coupSUSYPtr->LsusdW[iGen3][iGen4]) * facTU
1414 double facLR = m2Glu * sH;
1416 GT[1][1] = facTU * norm(conj(coupSUSYPtr->LsddG[iGen4][iGen2])
1417 *coupSUSYPtr->LsuuG[iGen3][iGen1]);
1418 GT[1][2] = facLR * norm(conj(coupSUSYPtr->RsddG[iGen4][iGen2])
1419 *coupSUSYPtr->LsuuG[iGen3][iGen1]);
1420 GT[2][1] = facLR * norm(conj(coupSUSYPtr->LsddG[iGen4][iGen2])
1421 *coupSUSYPtr->RsuuG[iGen3][iGen1]);
1422 GT[2][2] = facTU * norm(conj(coupSUSYPtr->RsddG[iGen4][iGen2])
1423 *coupSUSYPtr->RsuuG[iGen3][iGen1]);
1425 sumColS += sigmaGlu / pow2(tGlu)
1426 * (GT[1][1] + GT[1][2] + GT[2][1] + GT[2][2]);
1430 sumColS += sigmaEWG / 4.0 / xW / (1-xW)
1431 * real(conj(coupSUSYPtr->LsuuG[iGen3][iGen1])
1432 * coupSUSYPtr->LsddG[iGen4][iGen2]
1433 * conj(coupSUSYPtr->LudW[iGen1][iGen2])
1434 * coupSUSYPtr->LsusdW[iGen3][iGen4]) * facTU
1435 / tGlu * sqrt(norm(propZW));
1446 double eQ = (idIn1A % 2 == 0) ? 2./3. : 1./3. ;
1447 double eSq = (abs(id3Sav) % 2 == 0) ? 2./3. : 1./3. ;
1450 if (abs(id3Sav) == abs(id4Sav) && abs(id1) == abs(id2)) {
1452 sumColT += 2. * sigmaGlu * facTU / pow2(sH);
1459 double facLR = sH * m2Glu;
1460 GT[1][1] = facTU * norm(coupSUSYPtr->getLsqqG(iGen3,idIn1A)
1461 * conj(coupSUSYPtr->getLsqqG(iGen4,idIn2A)));
1462 GT[1][2] = facLR * norm(coupSUSYPtr->getLsqqG(iGen3,idIn1A)
1463 * conj(coupSUSYPtr->getRsqqG(iGen4,idIn2A)));
1464 GT[2][1] = facLR * norm(coupSUSYPtr->getRsqqG(iGen3,idIn1A)
1465 * conj(coupSUSYPtr->getLsqqG(iGen4,idIn2A)));
1466 GT[2][2] = facTU * norm(coupSUSYPtr->getRsqqG(iGen3,idIn1A)
1467 * conj(coupSUSYPtr->getRsqqG(iGen4,idIn2A)));
1469 sumColS += sigmaGlu / pow2(tGlu)
1470 * ( GT[1][1] + GT[1][2] + GT[2][1] + GT[2][2]);
1473 if (abs(id3Sav) == abs(id4Sav) && abs(id1) == abs(id2)) {
1475 GG11 = - facTU * 2./3.
1476 * real( conj(coupSUSYPtr->getLsqqG(iGen3,idIn1A))
1477 * coupSUSYPtr->getLsqqG(iGen4,idIn2A));
1478 GG22 = - facTU * 2./3.
1479 * real( conj(coupSUSYPtr->getRsqqG(iGen3,idIn1A))
1480 * coupSUSYPtr->getRsqqG(iGen4,idIn2A));
1482 sumInterference += sigmaGlu / sH / tGlu
1489 if (onlyQCD)
return sumColT+sumColS+sumInterference;
1492 if (abs(id3Sav) == abs(id4Sav) && abs(id1) == abs(id2)) {
1496 sumColS += 2. * pow2(eQ) * pow2(eSq) * sigmaEW * facTU / pow2(sH);
1499 double CsqZ = real(coupSUSYPtr->LsusuZ[iGen3][iGen4]
1500 + coupSUSYPtr->RsusuZ[iGen3][iGen4]);
1501 if (abs(id3Sav)%2 != 0) CsqZ = real(coupSUSYPtr->LsdsdZ[iGen3][iGen4]
1502 + coupSUSYPtr->RsdsdZ[iGen3][iGen4]);
1503 sumColS += eQ * eSq * sigmaEW * facTU / 2.0 / xW / (1.-xW)
1504 * sqrt(norm(propZW)) / sH * CsqZ
1505 * (coupSUSYPtr->LqqZ[idIn1A] + coupSUSYPtr->LqqZ[idIn2A]);
1509 double CsqG11 = real(conj(coupSUSYPtr->LsuuG[iGen3][iGen1])
1510 *coupSUSYPtr->LsuuG[iGen4][iGen2]);
1511 double CsqG22 = real(conj(coupSUSYPtr->RsuuG[iGen3][iGen1])
1512 *coupSUSYPtr->RsuuG[iGen4][iGen2]);
1513 if (id3Sav%2 != 0) {
1514 CsqG11 = real(conj(coupSUSYPtr->LsddG[iGen3][iGen1])
1515 *coupSUSYPtr->LsddG[iGen4][iGen2]);
1516 CsqG22 = real(conj(coupSUSYPtr->RsddG[iGen3][iGen1])
1517 *coupSUSYPtr->RsddG[iGen4][iGen2]);
1519 sumColS += eQ * eSq * sigmaEWG * facTU
1520 * (CsqG11 + CsqG22) / sH / tGlu;
1525 if (abs(id1) == abs(id2)) {
1526 double CsqZ = norm(coupSUSYPtr->LsusuZ[iGen3][iGen4]
1527 + coupSUSYPtr->RsusuZ[iGen3][iGen4]);
1528 if (abs(id3Sav)%2 != 0) CsqZ = norm(coupSUSYPtr->LsdsdZ[iGen3][iGen4]
1529 + coupSUSYPtr->RsdsdZ[iGen3][iGen4]);
1530 sumColS += sigmaEW * facTU / 16.0 / pow2(xW) / pow2(1.0-xW)
1531 * norm(propZW) * CsqZ * ( pow2(coupSUSYPtr->LqqZ[idIn1A])
1532 + pow2(coupSUSYPtr->RqqZ[idIn1A]) );
1536 double GZ11 = real(conj(coupSUSYPtr->getLsqqG(iGen3,idIn1A))
1537 *coupSUSYPtr->getLsqqG(iGen4,idIn2A)
1538 *(coupSUSYPtr->getLsqsqZ(id3Sav,id4Sav)
1539 +coupSUSYPtr->getRsqsqZ(id3Sav,id4Sav)))
1540 *coupSUSYPtr->LqqZ[idIn1A];
1541 double GZ22 = real(conj(coupSUSYPtr->getRsqqG(iGen3,idIn1A))
1542 *coupSUSYPtr->getRsqqG(iGen4,idIn2A)
1543 *(coupSUSYPtr->getLsqsqZ(id3Sav,id4Sav)
1544 +coupSUSYPtr->getRsqsqZ(id3Sav,id4Sav)))
1545 *coupSUSYPtr->RqqZ[idIn1A];
1546 sumColS += sigmaEWG * facTU / 4.0 / xW / (1.-xW)
1547 * ( GZ11 + GZ22 ) * sqrt(norm(propZW)) / tGlu;
1557 double sigma = sumColS + sumColT + sumInterference;
1568 void Sigma2qqbar2squarkantisquark::setIdColAcol() {
1572 if (isUD && ( (id1-1)%2 < 0 || (id2-1)%2 < 0 )) isCC =
true;
1575 id3 = (isCC) ? -id3Sav : id3Sav;
1576 id4 = (isCC) ? -id4Sav : id4Sav;
1579 setId( id1, id2, id3, id4);
1584 swapTU = (abs(id1) % 2 != 0);
1590 double R = rndmPtr->flat();
1591 double fracS = sumColS / (sumColS + sumColT) ;
1594 setColAcol( 1, 0, 0, 1, 2, 0, 0, 2);
1595 if (swapTU) setColAcol( 0, 1, 1, 0, 2, 0, 0, 2);
1599 setColAcol( 1, 0, 0, 2, 1, 0, 0, 2);
1600 if (swapTU) setColAcol( 0, 1, 2, 0, 2, 0, 0, 1);
1603 if (isCC) swapColAcol();
1616 void Sigma2gg2squarkantisquark::initProc() {
1619 coupSUSYPtr = (CoupSUSY*) couplingsPtr;
1622 nameSave =
"g g -> "+particleDataPtr->name(abs(id3Sav))+
" "
1623 +particleDataPtr->name(-abs(id4Sav));
1626 m2Sq = pow2(particleDataPtr->m0(id3Sav));
1629 openFracPair = particleDataPtr->resOpenFrac(id3Sav, id4Sav);
1637 void Sigma2gg2squarkantisquark::sigmaKin() {
1642 double tHSq = -0.5 * (sH - tH + uH);
1643 double uHSq = -0.5 * (sH + tH - uH);
1648 double comFacHat = M_PI/sH2 * pow2(alpS) / 128.0
1649 * ( 24.0 * (1.0 - 2*tHSq*uHSq/sH2) - 8.0/3.0 );
1653 for (
int ha=-1;ha<=1;ha += 2) {
1654 for (
int hb=-1;hb<=1;hb += 2) {
1656 sigma += comFacHat / 4.0
1658 - 2.0 * sH*m2Sq/tHSq/uHSq
1659 * ( 1.0 - ha*hb - sH*m2Sq/tHSq/uHSq));
1669 void Sigma2gg2squarkantisquark::setIdColAcol() {
1672 setId( id1, id2, id3Sav, id4Sav);
1675 double R = rndmPtr->flat();
1676 if (R < 0.5) setColAcol( 1, 2, 2, 3, 1, 0, 0, 3);
1677 else setColAcol( 1, 2, 3, 1, 3, 0, 0, 2);
1690 void Sigma2qg2squarkgluino::initProc() {
1693 coupSUSYPtr = (CoupSUSY*) couplingsPtr;
1696 nameSave =
"q g -> "+particleDataPtr->name(abs(id3Sav))+
" gluino + c.c.";
1699 m2Glu = pow2(particleDataPtr->m0(1000021));
1700 m2Sq = pow2(particleDataPtr->m0(id3Sav));
1703 openFracPair = particleDataPtr->resOpenFrac(id3Sav, 1000021);
1711 void Sigma2qg2squarkgluino::sigmaKin() {
1714 comFacHat = (M_PI / sH2) * pow2(alpS) * 0.5 * openFracPair;
1717 double tGlu = m2Glu-tH;
1718 double uGlu = m2Glu-uH;
1719 double tSq = m2Sq-tH;
1720 double uSq = m2Sq-uH;
1723 sigmaA = 0.5*4./9.* tGlu/sH + (tGlu*sH+2.*m2Glu*tSq)/pow2(tGlu) -
1724 ( (sH-m2Sq+m2Glu)*(-tSq)-sH*m2Glu )/sH/(-tGlu)
1725 + 0.5*1./2.*( tSq*(tH+2.*uH+m2Glu)-tGlu*(sH-2.*tSq)
1726 + (-uGlu)*(tH+m2Glu+2.*m2Sq) )/2./tGlu/uSq;
1728 sigmaB = 4./9.*(-uGlu)*(uH+m2Sq)/pow2(uSq)
1729 + 1./18.* (sH*(uH+m2Glu) + 2.*(m2Sq-m2Glu)*uGlu)/sH/(-uSq)
1731 + 0.5*1./2.*(tSq*(tH+2.*uH+m2Glu)-tGlu*(sH-2.*tSq)
1732 + (-uGlu)*(tH+m2Glu+2.*m2Sq))/2./tGlu/uSq;
1736 double Sigma2qg2squarkgluino::sigmaHat() {
1739 int idQA = (id1 == 21) ? abs(id2) : abs(id1);
1740 int idSqSM = id3Sav%1000000;
1741 if (idQA != idSqSM)
return 0.0;
1745 return comFacHat * (sigmaA + sigmaB);
1753 void Sigma2qg2squarkgluino::setIdColAcol() {
1756 int idQ = (id1 == 21) ? id2 : id1;
1757 id3 = (idQ > 0) ? id3Sav : -id3Sav;
1761 setId( id1, id2, id3, id4);
1764 double R = rndmPtr->flat()*(sigmaA+sigmaB);
1766 setColAcol(1,0,2,1,3,0,2,3);
1767 if (R > sigmaA) setColAcol(1,0,2,3,2,0,1,3);
1769 setColAcol(2,1,1,0,3,0,2,3);
1770 if (R > sigmaB) setColAcol(2,3,1,0,2,0,1,3);
1772 if (idQ < 0) swapColAcol();
1775 if (id1 == 21) swapTU =
true;
1789 void Sigma2gg2gluinogluino::initProc() {
1792 coupSUSYPtr = (CoupSUSY*) couplingsPtr;
1795 openFracPair = particleDataPtr->resOpenFrac(1000021, 1000021);
1803 void Sigma2gg2gluinogluino::sigmaKin() {
1807 double s34Avg = 0.5 * (s3 + s4) - 0.25 * pow2(s3 - s4) / sH;
1808 double tHG = -0.5 * (sH - tH + uH);
1809 double uHG = -0.5 * (sH + tH - uH);
1810 double tHG2 = tHG * tHG;
1811 double uHG2 = uHG * uHG;
1814 sigTS = (tHG * uHG - 2. * s34Avg * (tHG + 2. * s34Avg)) / tHG2
1815 + (tHG * uHG + s34Avg * (uHG - tHG)) / (sH * tHG);
1816 sigUS = (tHG * uHG - 2. * s34Avg * (uHG + 2. * s34Avg)) / uHG2
1817 + (tHG * uHG + s34Avg * (tHG - uHG)) / (sH * uHG);
1818 sigTU = 2. * tHG * uHG / sH2 + s34Avg * (sH - 4. * s34Avg)
1820 sigSum = sigTS + sigUS + sigTU;
1823 sigma = (M_PI / sH2) * pow2(alpS) * (9./4.) * 0.5 * sigSum
1832 void Sigma2gg2gluinogluino::setIdColAcol() {
1835 setId( id1, id2, 1000021, 1000021);
1838 double sigRand = sigSum * rndmPtr->flat();
1839 if (sigRand < sigTS) setColAcol( 1, 2, 2, 3, 1, 4, 4, 3);
1840 else if (sigRand < sigTS + sigUS)
1841 setColAcol( 1, 2, 3, 1, 3, 4, 4, 2);
1842 else setColAcol( 1, 2, 3, 4, 1, 4, 3, 2);
1843 if (rndmPtr->flat() > 0.5) swapColAcol();
1857 void Sigma2qqbar2gluinogluino::initProc() {
1860 coupSUSYPtr = (CoupSUSY*) couplingsPtr;
1863 openFracPair = particleDataPtr->resOpenFrac(1000021, 1000021);
1871 void Sigma2qqbar2gluinogluino::sigmaKin() {
1876 s34Avg = 0.5 * (s3 + s4) - 0.25 * pow2(s3 - s4) / sH;
1877 tHG = -0.5 * (sH - tH + uH);
1878 uHG = -0.5 * (sH + tH - uH);
1883 sigS = (tHG2 + uHG2 + 2. * s34Avg * sH) / sH2;
1892 double Sigma2qqbar2gluinogluino::sigmaHat() {
1898 double sQL = pow2( particleDataPtr->m0(1000000 + abs(id1)) );
1899 double tHQL = tHG + s34Avg - sQL;
1900 double uHQL = uHG + s34Avg - sQL;
1901 double sQR = pow2( particleDataPtr->m0(2000000 + abs(id1)) );
1902 double tHQR = tHG + s34Avg - sQR;
1903 double uHQR = uHG + s34Avg - sQR;
1906 double sigQL = (4./9.) * (tHG2 / pow2(tHQL) + uHG2 / pow2(uHQL))
1907 + (1./9.) * s34Avg * sH / (tHQL * uHQL)
1908 + (tHG2 + sH * s34Avg) /(sH * tHQL)
1909 + (uHG2 + sH * s34Avg) /(sH * uHQL);
1910 double sigQR = (4./9.) * (tHG2 / pow2(tHQR) + uHG2 / pow2(uHQR))
1911 + (1./9.) * s34Avg * sH / (tHQR * uHQR)
1912 + (tHG2 + sH * s34Avg) /(sH * tHQR)
1913 + (uHG2 + sH * s34Avg) /(sH * uHQR);
1914 double sigSum = sigS + 0.5 * (sigQL + sigQR);
1917 double sigma = (M_PI / sH2) * pow2(alpS) * (8./3.) * 0.5 * sigSum
1927 void Sigma2qqbar2gluinogluino::setIdColAcol() {
1930 setId( id1, id2, 1000021, 1000021);
1933 if (rndmPtr->flat() < 0.5) setColAcol( 1, 0, 0, 2, 1, 3, 3, 2);
1934 else setColAcol( 1, 0, 0, 2, 3, 2, 1, 3);
1935 if (id1 < 0) swapColAcol();
1948 void Sigma1qq2antisquark::initProc(){
1951 coupSUSYPtr = (CoupSUSY*) couplingsPtr;
1955 nameSave =
"q q' -> " + coupSUSYPtr->getName(idRes)+
"* + c.c";
1956 codeSave = 2000 + 10*abs(idRes)/1000000 + abs(idRes)%10;
1963 void Sigma1qq2antisquark::sigmaKin() {
1966 if(!coupSUSYPtr->isUDD) {
1971 mRes = particleDataPtr->m0(abs(idRes));
1972 GammaRes = particleDataPtr->mWidth(abs(idRes));
1975 sigBW = sH * GammaRes/ ( pow2(sH - m2Res) + pow2(mRes * GammaRes) );
1976 sigBW *= 2.0/3.0/mRes;
1979 widthOut = GammaRes * particleDataPtr->resOpenFrac(id3);
1986 double Sigma1qq2antisquark::sigmaHat() {
1989 if (id1*id2 <= 0)
return 0.0;
1992 int iA = (abs(id1)+1)/2;
1993 int iB = (abs(id2)+1)/2;
1996 bool idown = (abs(idRes)%2 == 1) ?
true :
false;
1997 int iC = (abs(idRes)/1000000 == 2)
1998 ? (abs(idRes)%10+1)/2 + 3: (abs(idRes)%10+1)/2;
2001 if (abs(id1)%2 == 0 && abs(id2)%2 == 0)
return 0.0;
2002 if (abs(id1)%2 == 1 && abs(id2)%2 == 1 && idown)
return 0.0;
2003 if ((abs(id1) + abs(id2))%2 == 1 && !idown)
return 0.0;
2009 for(
int isq = 1; isq <=3; isq++){
2011 sigma += pow2(coupSUSYPtr->rvUDD[isq][iA][iB])
2012 * norm(coupSUSYPtr->Rusq[iC][isq+3]);
2018 iA = (abs(id2)+1)/2;
2019 iB = (abs(id1)+1)/2;
2021 for(
int isq = 1; isq <= 3; isq++){
2023 sigma += pow2(coupSUSYPtr->rvUDD[iA][iB][isq])
2024 * norm(coupSUSYPtr->Rdsq[iC][isq+3]);
2037 void Sigma1qq2antisquark::setIdColAcol() {
2040 if(id1 < 0 && id2 < 0 ) setId( id1, id2, idRes);
2041 else setId( id1, id2, -idRes);
2044 if (abs(id1) < 9) setColAcol( 1, 0, 2, 0, 0, 3);
2045 else setColAcol( 0, 0, 0, 0, 0, 0);
2046 if (id1 < 0) swapColAcol();