9 #include "Pythia8/SigmaHiggs.h"
23 void Sigma1ffbar2H::initProc() {
27 nameSave =
"f fbar -> H (SM)";
31 else if (higgsType == 1) {
32 nameSave =
"f fbar -> h0(H1)";
36 else if (higgsType == 2) {
37 nameSave =
"f fbar -> H0(H2)";
41 else if (higgsType == 3) {
42 nameSave =
"f fbar -> A0(A3)";
48 HResPtr = particleDataPtr->particleDataEntryPtr(idRes);
52 GammaRes = HResPtr->mWidth();
54 GamMRat = GammaRes / mRes;
63 void Sigma1ffbar2H::sigmaKin() {
66 double width = HResPtr->resWidth(idRes, mH);
67 sigBW = 4. * M_PI/ ( pow2(sH - m2Res) + pow2(mH * width) );
70 widthOut = width * HResPtr->resOpenFrac(idRes);
78 double Sigma1ffbar2H::sigmaHat() {
82 double widthIn = HResPtr->resWidthChan( mH, idAbs, -idAbs);
83 if (idAbs < 9) widthIn /= 9.;
86 return widthIn * sigBW * widthOut;
94 void Sigma1ffbar2H::setIdColAcol() {
97 setId( id1, id2, idRes);
100 if (abs(id1) < 9) setColAcol( 1, 0, 0, 1, 0, 0);
101 else setColAcol( 0, 0, 0, 0, 0, 0);
102 if (id1 < 0) swapColAcol();
110 double Sigma1ffbar2H::weightDecay(
Event& process,
int iResBeg,
114 int idMother = process[process[iResBeg].mother1()].idAbs();
117 if (idMother == 25 || idMother == 35 || idMother == 36)
118 return weightHiggsDecay( process, iResBeg, iResEnd);
122 return weightTopDecay( process, iResBeg, iResEnd);
138 void Sigma1gg2H::initProc() {
141 if (higgsType == 0) {
142 nameSave =
"g g -> H (SM)";
146 else if (higgsType == 1) {
147 nameSave =
"g g -> h0(H1)";
151 else if (higgsType == 2) {
152 nameSave =
"g g -> H0(H2)";
156 else if (higgsType == 3) {
157 nameSave =
"g g -> A0(A3)";
163 HResPtr = particleDataPtr->particleDataEntryPtr(idRes);
166 mRes = HResPtr->m0();
167 GammaRes = HResPtr->mWidth();
169 GamMRat = GammaRes / mRes;
177 void Sigma1gg2H::sigmaKin() {
180 double widthIn = HResPtr->resWidthChan( mH, 21, 21) / 64.;
183 double width = HResPtr->resWidth(idRes, mH);
184 double sigBW = 8. * M_PI/ ( pow2(sH - m2Res) + pow2(mH * width) );
187 double widthOut = width * HResPtr->resOpenFrac(idRes);
190 sigma = widthIn * sigBW * widthOut;
198 void Sigma1gg2H::setIdColAcol() {
201 setId( 21, 21, idRes);
204 setColAcol( 1, 2, 2, 1, 0, 0);
212 double Sigma1gg2H::weightDecay(
Event& process,
int iResBeg,
216 int idMother = process[process[iResBeg].mother1()].idAbs();
219 if (idMother == 25 || idMother == 35 || idMother == 36)
220 return weightHiggsDecay( process, iResBeg, iResEnd);
224 return weightTopDecay( process, iResBeg, iResEnd);
241 void Sigma1gmgm2H::initProc() {
244 if (higgsType == 0) {
245 nameSave =
"gamma gamma -> H (SM)";
249 else if (higgsType == 1) {
250 nameSave =
"gamma gamma -> h0(H1)";
254 else if (higgsType == 2) {
255 nameSave =
"gamma gamma -> H0(H2)";
259 else if (higgsType == 3) {
260 nameSave =
"gamma gamma -> A0(A3)";
266 HResPtr = particleDataPtr->particleDataEntryPtr(idRes);
269 mRes = HResPtr->m0();
270 GammaRes = HResPtr->mWidth();
272 GamMRat = GammaRes / mRes;
280 void Sigma1gmgm2H::sigmaKin() {
283 double widthIn = HResPtr->resWidthChan( mH, 22, 22);
286 double width = HResPtr->resWidth(idRes, mH);
287 double sigBW = 8. * M_PI/ ( pow2(sH - m2Res) + pow2(mH * width) );
290 double widthOut = width * HResPtr->resOpenFrac(idRes);
293 sigma = widthIn * sigBW * widthOut;
301 void Sigma1gmgm2H::setIdColAcol() {
304 setId( 22, 22, idRes);
307 setColAcol( 0, 0, 0, 0, 0, 0);
315 double Sigma1gmgm2H::weightDecay(
Event& process,
int iResBeg,
319 int idMother = process[process[iResBeg].mother1()].idAbs();
322 if (idMother == 25 || idMother == 35 || idMother == 36)
323 return weightHiggsDecay( process, iResBeg, iResEnd);
327 return weightTopDecay( process, iResBeg, iResEnd);
344 void Sigma2ffbar2HZ::initProc() {
347 if (higgsType == 0) {
348 nameSave =
"f fbar -> H0 Z0 (SM)";
353 else if (higgsType == 1) {
354 nameSave =
"f fbar -> h0(H1) Z0";
357 coup2Z = parm(
"HiggsH1:coup2Z");
359 else if (higgsType == 2) {
360 nameSave =
"f fbar -> H0(H2) Z0";
363 coup2Z = parm(
"HiggsH2:coup2Z");
365 else if (higgsType == 3) {
366 nameSave =
"f fbar -> A0(A3) ZO";
369 coup2Z = parm(
"HiggsA3:coup2Z");
373 mZ = particleDataPtr->m0(23);
374 widZ = particleDataPtr->mWidth(23);
376 mwZS = pow2(mZ * widZ);
377 thetaWRat = 1. / (16. * coupSMPtr->sin2thetaW()
378 * coupSMPtr->cos2thetaW());
381 openFracPair = particleDataPtr->resOpenFrac(idRes, 23);
389 void Sigma2ffbar2HZ::sigmaKin() {
392 sigma0 = (M_PI / sH2) * 8. * pow2(alpEM * thetaWRat * coup2Z)
393 * (tH * uH - s3 * s4 + 2. * sH * s4) / (pow2(sH - mZS) + mwZS);
401 double Sigma2ffbar2HZ::sigmaHat() {
404 int idAbs = abs(id1);
405 double sigma = sigma0 * coupSMPtr->vf2af2(idAbs);
406 if (idAbs < 9) sigma /= 3.;
409 sigma *= openFracPair;
420 void Sigma2ffbar2HZ::setIdColAcol() {
423 setId( id1, id2, idRes, 23);
426 if (abs(id1) < 9) setColAcol( 1, 0, 0, 1, 0, 0);
427 else setColAcol( 0, 0, 0, 0, 0, 0);
428 if (id1 < 0) swapColAcol();
436 double Sigma2ffbar2HZ::weightDecay(
Event& process,
int iResBeg,
440 int idMother = process[process[iResBeg].mother1()].idAbs();
443 if (idMother == 25 || idMother == 35 || idMother == 36)
444 return weightHiggsDecay( process, iResBeg, iResEnd);
448 return weightTopDecay( process, iResBeg, iResEnd);
451 if (iResBeg != 5 || iResEnd != 6)
return 1.;
454 int i1 = (process[3].id() < 0) ? 3 : 4;
456 int i3 = process[6].daughter1();
457 int i4 = process[6].daughter2();
458 if (process[i3].
id() < 0) swap( i3, i4);
461 int idAbs = process[i1].idAbs();
462 double liS = pow2( coupSMPtr->lf(idAbs) );
463 double riS = pow2( coupSMPtr->rf(idAbs) );
464 idAbs = process[i3].idAbs();
465 double lfS = pow2( coupSMPtr->lf(idAbs) );
466 double rfS = pow2( coupSMPtr->rf(idAbs) );
469 double pp13 = process[i1].p() * process[i3].p();
470 double pp14 = process[i1].p() * process[i4].p();
471 double pp23 = process[i2].p() * process[i3].p();
472 double pp24 = process[i2].p() * process[i4].p();
475 double wt = (liS * lfS + riS * rfS) * pp13 * pp24
476 + (liS * rfS + riS * lfS) * pp14 * pp23;
477 double wtMax = (liS + riS) * (lfS + rfS) * (pp13 + pp14) * (pp23 + pp24);
494 void Sigma2ffbar2HW::initProc() {
497 if (higgsType == 0) {
498 nameSave =
"f fbar -> H0 W+- (SM)";
503 else if (higgsType == 1) {
504 nameSave =
"f fbar -> h0(H1) W+-";
507 coup2W = parm(
"HiggsH1:coup2W");
509 else if (higgsType == 2) {
510 nameSave =
"f fbar -> H0(H2) W+-";
513 coup2W = parm(
"HiggsH2:coup2W");
515 else if (higgsType == 3) {
516 nameSave =
"f fbar -> A0(A3) W+-";
519 coup2W = parm(
"HiggsA3:coup2W");
523 mW = particleDataPtr->m0(24);
524 widW = particleDataPtr->mWidth(24);
526 mwWS = pow2(mW * widW);
527 thetaWRat = 1. / (4. * coupSMPtr->sin2thetaW());
530 openFracPairPos = particleDataPtr->resOpenFrac(idRes, 24);
531 openFracPairNeg = particleDataPtr->resOpenFrac(idRes, -24);
539 void Sigma2ffbar2HW::sigmaKin() {
542 sigma0 = (M_PI / sH2) * 2. * pow2(alpEM * thetaWRat * coup2W)
543 * (tH * uH - s3 * s4 + 2. * sH * s4) / (pow2(sH - mWS) + mwWS);
551 double Sigma2ffbar2HW::sigmaHat() {
554 double sigma = sigma0;
555 if (abs(id1) < 9) sigma *= coupSMPtr->V2CKMid(abs(id1), abs(id2)) / 3.;
558 int idUp = (abs(id1)%2 == 0) ? id1 : id2;
559 sigma *= (idUp > 0) ? openFracPairPos : openFracPairNeg;
570 void Sigma2ffbar2HW::setIdColAcol() {
573 int sign = 1 - 2 * (abs(id1)%2);
574 if (id1 < 0) sign = -sign;
575 setId( id1, id2, idRes, 24 * sign);
578 if (abs(id1) < 9) setColAcol( 1, 0, 0, 1, 0, 0);
579 else setColAcol( 0, 0, 0, 0, 0, 0);
580 if (id1 < 0) swapColAcol();
588 double Sigma2ffbar2HW::weightDecay(
Event& process,
int iResBeg,
592 int idMother = process[process[iResBeg].mother1()].idAbs();
595 if (idMother == 25 || idMother == 35 || idMother == 36)
596 return weightHiggsDecay( process, iResBeg, iResEnd);
600 return weightTopDecay( process, iResBeg, iResEnd);
603 if (iResBeg != 5 || iResEnd != 6)
return 1.;
606 int i1 = (process[3].id() < 0) ? 3 : 4;
608 int i3 = process[6].daughter1();
609 int i4 = process[6].daughter2();
610 if (process[i3].
id() < 0) swap( i3, i4);
613 double pp13 = process[i1].p() * process[i3].p();
614 double pp14 = process[i1].p() * process[i4].p();
615 double pp23 = process[i2].p() * process[i3].p();
616 double pp24 = process[i2].p() * process[i4].p();
619 double wt = pp13 * pp24;
620 double wtMax = (pp13 + pp14) * (pp23 + pp24);
637 void Sigma3ff2HfftZZ::initProc() {
640 if (higgsType == 0) {
641 nameSave =
"f f' -> H0 f f'(Z0 Z0 fusion) (SM)";
646 else if (higgsType == 1) {
647 nameSave =
"f f' -> h0(H1) f f' (Z0 Z0 fusion)";
650 coup2Z = parm(
"HiggsH1:coup2Z");
652 else if (higgsType == 2) {
653 nameSave =
"f f' -> H0(H2) f f' (Z0 Z0 fusion)";
656 coup2Z = parm(
"HiggsH2:coup2Z");
658 else if (higgsType == 3) {
659 nameSave =
"f f' -> A0(A3) f f' (Z0 Z0 fusion)";
662 coup2Z = parm(
"HiggsA3:coup2Z");
666 mZS = pow2( particleDataPtr->m0(23) );
667 prefac = 0.25 * mZS * pow3( 4. * M_PI / (coupSMPtr->sin2thetaW()
668 * coupSMPtr->cos2thetaW()) );
671 openFrac = particleDataPtr->resOpenFrac(idRes);
679 void Sigma3ff2HfftZZ::sigmaKin() {
682 double pp12 = 0.5 * sH;
683 double pp14 = 0.5 * mH * p4cm.pNeg();
684 double pp15 = 0.5 * mH * p5cm.pNeg();
685 double pp24 = 0.5 * mH * p4cm.pPos();
686 double pp25 = 0.5 * mH * p5cm.pPos();
687 double pp45 = p4cm * p5cm;
690 double prop = pow2( (2. * pp14 + mZS) * (2. * pp25 + mZS) );
691 sigma1 = prefac * pp12 * pp45 / prop;
692 sigma2 = prefac * pp15 * pp24 / prop;
700 double Sigma3ff2HfftZZ::sigmaHat() {
703 int id1Abs = abs(id1);
704 int id2Abs = abs(id2);
705 double lf1S = pow2( coupSMPtr->lf(id1Abs) );
706 double rf1S = pow2( coupSMPtr->rf(id1Abs) );
707 double lf2S = pow2( coupSMPtr->lf(id2Abs) );
708 double rf2S = pow2( coupSMPtr->rf(id2Abs) );
709 double c1 = lf1S * lf2S + rf1S * rf2S;
710 double c2 = lf1S * rf2S + rf1S * lf2S;
713 double sigma = pow3(alpEM) * (c1 * sigma1 + c2 * sigma2) * pow2(coup2Z);
727 void Sigma3ff2HfftZZ::setIdColAcol() {
730 setId( id1, id2, idRes, id1, id2);
733 if (abs(id1) < 9 && abs(id2) < 9 && id1*id2 > 0)
734 setColAcol( 1, 0, 2, 0, 0, 0, 1, 0, 2, 0);
735 else if (abs(id1) < 9 && abs(id2) < 9)
736 setColAcol( 1, 0, 0, 2, 0, 0, 1, 0, 0, 2);
737 else if (abs(id1) < 9) setColAcol( 1, 0, 0, 0, 0, 0, 1, 0, 0, 0);
738 else if (abs(id2) < 9) setColAcol( 0, 0, 1, 0, 0, 0, 0, 0, 1, 0);
739 else setColAcol( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
740 if ( (abs(id1) < 9 && id1 < 0) || (abs(id1) > 10 && id2 < 0) )
749 double Sigma3ff2HfftZZ::weightDecay(
Event& process,
int iResBeg,
753 int idMother = process[process[iResBeg].mother1()].idAbs();
756 if (idMother == 25 || idMother == 35 || idMother == 36)
757 return weightHiggsDecay( process, iResBeg, iResEnd);
761 return weightTopDecay( process, iResBeg, iResEnd);
777 void Sigma3ff2HfftWW::initProc() {
780 if (higgsType == 0) {
781 nameSave =
"f_1 f_2 -> H0 f_3 f_4 (W+ W- fusion) (SM)";
786 else if (higgsType == 1) {
787 nameSave =
"f_1 f_2 -> h0(H1) f_3 f_4 (W+ W- fusion)";
790 coup2W = parm(
"HiggsH1:coup2W");
792 else if (higgsType == 2) {
793 nameSave =
"f_1 f_2 -> H0(H2) f_3 f_4 (W+ W- fusion)";
796 coup2W = parm(
"HiggsH2:coup2W");
798 else if (higgsType == 3) {
799 nameSave =
"f_1 f_2 -> A0(A3) f_3 f_4 (W+ W- fusion)";
802 coup2W = parm(
"HiggsA3:coup2W");
806 mWS = pow2( particleDataPtr->m0(24) );
807 prefac = mWS * pow3( 4. * M_PI / coupSMPtr->sin2thetaW() );
810 openFrac = particleDataPtr->resOpenFrac(idRes);
818 void Sigma3ff2HfftWW::sigmaKin() {
821 double pp12 = 0.5 * sH;
822 double pp14 = 0.5 * mH * p4cm.pNeg();
823 double pp25 = 0.5 * mH * p5cm.pPos();
824 double pp45 = p4cm * p5cm;
827 double prop = pow2( (2. * pp14 + mWS) * (2. * pp25 + mWS) );
828 sigma0 = prefac * pp12 * pp45 * pow2(coup2W) / prop;
836 double Sigma3ff2HfftWW::sigmaHat() {
839 int id1Abs = abs(id1);
840 int id2Abs = abs(id2);
841 if ( (id1Abs%2 == id2Abs%2 && id1 * id2 > 0)
842 || (id1Abs%2 != id2Abs%2 && id1 * id2 < 0) )
return 0.;
845 double sigma = sigma0 * pow3(alpEM) * coupSMPtr->V2CKMsum(id1Abs)
846 * coupSMPtr->V2CKMsum(id2Abs);
852 if (id1Abs == 12 || id1Abs == 14 || id1Abs == 16) sigma *= 2.;
853 if (id2Abs == 12 || id2Abs == 14 || id2Abs == 16) sigma *= 2.;
864 void Sigma3ff2HfftWW::setIdColAcol() {
867 id4 = coupSMPtr->V2CKMpick(id1);
868 id5 = coupSMPtr->V2CKMpick(id2);
869 setId( id1, id2, idRes, id4, id5);
872 if (abs(id1) < 9 && abs(id2) < 9 && id1*id2 > 0)
873 setColAcol( 1, 0, 2, 0, 0, 0, 1, 0, 2, 0);
874 else if (abs(id1) < 9 && abs(id2) < 9)
875 setColAcol( 1, 0, 0, 2, 0, 0, 1, 0, 0, 2);
876 else if (abs(id1) < 9) setColAcol( 1, 0, 0, 0, 0, 0, 1, 0, 0, 0);
877 else if (abs(id2) < 9) setColAcol( 0, 0, 1, 0, 0, 0, 0, 0, 1, 0);
878 else setColAcol( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
879 if ( (abs(id1) < 9 && id1 < 0) || (abs(id1) > 10 && id2 < 0) )
888 double Sigma3ff2HfftWW::weightDecay(
Event& process,
int iResBeg,
892 int idMother = process[process[iResBeg].mother1()].idAbs();
895 if (idMother == 25 || idMother == 35 || idMother == 36)
896 return weightHiggsDecay( process, iResBeg, iResEnd);
900 return weightTopDecay( process, iResBeg, iResEnd);
918 void Sigma3gg2HQQbar::initProc() {
922 if (higgsType == 0 && idNew == 6) {
923 nameSave =
"g g -> H t tbar (SM)";
928 else if (higgsType == 1 && idNew == 6) {
929 nameSave =
"g g -> h0(H1) t tbar";
932 coup2Q = parm(
"HiggsH1:coup2u");
934 else if (higgsType == 2 && idNew == 6) {
935 nameSave =
"g g -> H0(H2) t tbar";
938 coup2Q = parm(
"HiggsH2:coup2u");
940 else if (higgsType == 3 && idNew == 6) {
941 nameSave =
"g g -> A0(A3) t tbar";
944 coup2Q = parm(
"HiggsA3:coup2u");
949 if (higgsType == 0 && idNew == 5) {
950 nameSave =
"g g -> H b bbar (SM)";
955 else if (higgsType == 1 && idNew == 5) {
956 nameSave =
"g g -> h0(H1) b bbar";
959 coup2Q = parm(
"HiggsH1:coup2d");
961 else if (higgsType == 2 && idNew == 5) {
962 nameSave =
"g g -> H0(H2) b bbar";
965 coup2Q = parm(
"HiggsH2:coup2d");
967 else if (higgsType == 3 && idNew == 5) {
968 nameSave =
"g g -> A0(A3) b bbar";
971 coup2Q = parm(
"HiggsA3:coup2d");
975 double mWS = pow2(particleDataPtr->m0(24));
976 prefac = (4. * M_PI / coupSMPtr->sin2thetaW()) * pow2(4. * M_PI)
980 openFracTriplet = particleDataPtr->resOpenFrac(idRes, idNew, -idNew);
988 void Sigma3gg2HQQbar::sigmaKin() {
991 double mQ2run = pow2( particleDataPtr->mRun(idNew, mH) );
994 double mQ2 = m4 * m5;
997 double s45 = (p4cm + p5cm).m2Calc();
998 mQ2 = 0.5 * (s4 + s5) - 0.25 * pow2(s4 - s5) / s45;
999 epsi = 0.5 * (s5 - s4) / s45;
1004 pTemp[4] = Vec4( 0., 0., -0.5* mH, -0.5* mH);
1005 pTemp[5] = Vec4( 0., 0., 0.5* mH, -0.5* mH);
1006 pTemp[1] = p4cm + epsi * (p4cm + p5cm);
1007 pTemp[2] = p5cm - epsi * (p4cm + p5cm);
1011 double z1 = pTemp[1] * pTemp[2];
1012 double z2 = pTemp[1] * pTemp[3];
1013 double z3 = pTemp[1] * pTemp[4];
1014 double z4 = pTemp[1] * pTemp[5];
1015 double z5 = pTemp[2] * pTemp[3];
1016 double z6 = pTemp[2] * pTemp[4];
1017 double z7 = pTemp[2] * pTemp[5];
1018 double z8 = pTemp[3] * pTemp[4];
1019 double z9 = pTemp[3] * pTemp[5];
1020 double z10 = pTemp[4] * pTemp[5];
1023 double mQ4 = mQ2 * mQ2;
1024 double mQ6 = mQ2 * mQ4;
1025 double z1S = z1 * z1;
1026 double z2S = z2 * z2;
1027 double z3S = z3 * z3;
1028 double z4S = z4 * z4;
1029 double z5S = z5 * z5;
1030 double z6S = z6 * z6;
1031 double z7S = z7 * z7;
1032 double z8S = z8 * z8;
1033 double z9S = z9 * z9;
1034 double z10S = z10 * z10;
1039 fm[1][1] = 64*mQ6+16*mQ4*s3+32*mQ4*(z1+2*z2+z4+z9+2*
1040 z7+z5)+8*mQ2*s3*(-z1-z4+2*z7)+16*mQ2*(z2*z9+4*z2*
1041 z7+z2*z5-2*z4*z7-2*z9*z7)+8*s3*z4*z7-16*z2*z9*z7;
1042 fm[1][2] = 16*mQ6+8*mQ4*(-2*z1+z2-2*z3-2*z4-4*z10+z9-z8+2
1043 *z7-4*z6+z5)+8*mQ2*(-2*z1*z2-2*z2*z4-2*z2*z10+z2*z7-2*
1044 z2*z6-2*z3*z7+2*z4*z7+4*z10*z7-z9*z7-z8*z7)+16*z2*z7*(z4+
1046 fm[1][3] = 16*mQ6-4*mQ4*s3+8*mQ4*(-2*z1+2*z2-2*z3-4*
1047 z4-8*z10+z9+z8-2*z7-4*z6+2*z5)-(4*mQ2*s3)*(z1+z4+z10
1048 +z6)+8*mQ2*(-2*z1*z2-2*z1*z10+z1*z9+z1*z8-2*z1*z5+z2S
1049 -4*z2*z4-5*z2*z10+z2*z8-z2*z7-3*z2*z6+z2*z5+z3*z9+2*z3*z7
1050 -z3*z5+z4*z8+2*z4*z6-3*z4*z5-5*z10*z5+z9*z8+z9*z6+z9*z5+
1051 z8*z7-4*z6*z5+z5S)-(16*z2*z5)*(z1+z4+z10+z6);
1052 fm[1][4] = 16*mQ6+4*mQ4*s3+16*mQ4*(-z1+z2-z3-z4+z10-
1053 z9-z8+2*z7+2*z6-z5)+4*mQ2*s3*(z1+z3+z4+z10+2*z7+2*z6
1054 )+8*mQ2*(4*z1*z10+4*z1*z7+4*z1*z6+2*z2*z10-z2*z9-z2*z8+
1055 4*z2*z7+4*z2*z6-z2*z5+4*z10*z5+4*z7*z5+4*z6*z5)-(8*s3*
1056 z1)*(z10+z7+z6)+16*z2*z5*(z10+z7+z6);
1057 fm[1][5] = 8*mQ4*(-2*z1-2*z4+z10-z9)+4*mQ2*(4*z1S-2*z1*
1058 z2+8*z1*z3+6*z1*z10-2*z1*z9+4*z1*z8+4*z1*z7+4*z1*z6+2*z1*
1059 z5+z2*z10+4*z3*z4-z3*z9+2*z3*z7+3*z4*z8-2*z4*z6+2*z4*z5-4
1060 *z10*z7+3*z10*z5-3*z9*z6+3*z8*z7-4*z7S+4*z7*z5)+8*(z1S
1061 *z9-z1S*z8-z1*z2*z7+z1*z2*z6+z1*z3*z9+z1*z3*z5-z1*z4*
1062 z8-z1*z4*z5+z1*z10*z9+z1*z9*z7+z1*z9*z6-z1*z8*z7-z2*z3*z7
1063 +z2*z4*z6-z2*z10*z7-z2*z7S+z3*z7*z5-z4*z10*z5-z4*z7*z5-
1065 fm[1][6] = 16*mQ4*(-4*z1-z4+z9-z7)+4*mQ2*s3*(-2*z1-z4-
1066 z7)+16*mQ2*(-2*z1S-3*z1*z2-2*z1*z4-3*z1*z9-2*z1*z7-3*
1067 z1*z5-2*z2*z4-2*z7*z5)-8*s3*z4*z7+8*(-z1*z2*z9-2*z1*z2
1068 *z5-z1*z9S-z1*z9*z5+z2S*z7-z2*z4*z5+z2*z9*z7-z2*z7*z5
1070 fm[1][7] = 8*mQ4*(2*z3+z4+3*z10+z9+2*z8+3*z7+6*z6)+2*mQ2*
1071 s3*(-2*z3-z4+3*z10+3*z7+6*z6)+4*mQ2*(4*z1*z10+4*z1*
1072 z7+8*z1*z6+6*z2*z10+z2*z9+2*z2*z8+6*z2*z7+12*z2*z6-8*z3*
1073 z7+4*z4*z7+4*z4*z6+4*z10*z5+4*z9*z7+4*z9*z6-8*z8*z7+4*z7*
1074 z5+8*z6*z5)+4*s3*(-z1*z10-z1*z7-2*z1*z6+2*z3*z7-z4*z7-
1075 z4*z6)+8*z2*(z10*z5+z9*z7+z9*z6-2*z8*z7+z7*z5+2*z6*z5);
1076 fm[1][8] = 8*mQ4*(2*z3+z4+3*z10+2*z9+z8+3*z7+6*z6)+2*mQ2*
1077 s3*(-2*z3-z4+2*z10+z7+2*z6)+4*mQ2*(4*z1*z10-2*z1*z9+
1078 2*z1*z8+4*z1*z7+8*z1*z6+5*z2*z10+2*z2*z9+z2*z8+4*z2*z7+8*
1079 z2*z6-z3*z9-8*z3*z7+2*z3*z5+2*z4*z9-z4*z8+4*z4*z7+4*z4*z6
1080 +4*z4*z5+5*z10*z5+z9S-z9*z8+2*z9*z7+5*z9*z6+z9*z5-7*z8*
1081 z7+2*z8*z5+2*z7*z5+10*z6*z5)+2*s3*(-z1*z10+z3*z7-2*z4*
1082 z7+z4*z6)+4*(-z1*z9S+z1*z9*z8-2*z1*z9*z5-z1*z8*z5+2*z2*
1083 z10*z5+z2*z9*z7+z2*z9*z6-2*z2*z8*z7+3*z2*z6*z5+z3*z9*z5+
1084 z3*z5S+z4*z9*z5-2*z4*z8*z5+2*z4*z5S);
1085 fm[2][2] = 16*mQ6+16*mQ4*(-z1+z3-z4-z10+z7-z6)+16*mQ2*(
1086 z3*z10+z3*z7+z3*z6+z4*z7+z10*z7)-16*z3*z10*z7;
1087 fm[2][3] = 16*mQ6+8*mQ4*(-2*z1+z2+2*z3-4*z4-4*z10-z9+z8-2
1088 *z7-2*z6+z5)+8*mQ2*(-2*z1*z5+4*z3*z10-z3*z9-z3*z8-2*z3*
1089 z7+2*z3*z6+z3*z5-2*z4*z5-2*z10*z5-2*z6*z5)+16*z3*z5*(z10+
1091 fm[2][4] = 8*mQ4*(-2*z1-2*z3+z10-z8)+4*mQ2*(4*z1S-2*z1*
1092 z2+8*z1*z4+6*z1*z10+4*z1*z9-2*z1*z8+4*z1*z7+4*z1*z6+2*z1*
1093 z5+z2*z10+4*z3*z4+3*z3*z9-2*z3*z7+2*z3*z5-z4*z8+2*z4*z6-4
1094 *z10*z6+3*z10*z5+3*z9*z6-3*z8*z7-4*z6S+4*z6*z5)+8*(-z1S
1095 *z9+z1S*z8+z1*z2*z7-z1*z2*z6-z1*z3*z9-z1*z3*z5+z1*z4
1096 *z8+z1*z4*z5+z1*z10*z8-z1*z9*z6+z1*z8*z7+z1*z8*z6+z2*z3*
1097 z7-z2*z4*z6-z2*z10*z6-z2*z6S-z3*z10*z5-z3*z7*z5-z3*z6*
1099 fm[2][5] = 16*mQ4*z10+8*mQ2*(2*z1S+2*z1*z3+2*z1*z4+2*z1
1100 *z10+2*z1*z7+2*z1*z6+z3*z7+z4*z6)+8*(-2*pow3(z1)-2*z1S*z3-
1101 2*z1S*z4-2*z1S*z10-2*z1S*z7-2*z1S*z6-2*z1*z3*z4-
1102 z1*z3*z10-2*z1*z3*z6-z1*z4*z10-2*z1*z4*z7-z1*z10S-z1*
1103 z10*z7-z1*z10*z6-2*z1*z7*z6+z3S*z7-z3*z4*z7-z3*z4*z6+z3
1104 *z10*z7+z3*z7S-z3*z7*z6+z4S*z6+z4*z10*z6-z4*z7*z6+z4*
1106 fm[2][6] = 8*mQ4*(-2*z1+z10-z9-2*z7)+4*mQ2*(4*z1S+2*z1*
1107 z2+4*z1*z3+4*z1*z4+6*z1*z10-2*z1*z9+4*z1*z8+8*z1*z6-2*z1*
1108 z5+4*z2*z4+3*z2*z10+2*z2*z7-3*z3*z9-2*z3*z7-4*z4S-4*z4*
1109 z10+3*z4*z8+2*z4*z6+z10*z5-z9*z6+3*z8*z7+4*z7*z6)+8*(z1S
1110 *z9-z1S*z8-z1*z2*z7+z1*z2*z6+z1*z3*z9+z1*z3*z5+z1*z4*
1111 z9-z1*z4*z8-z1*z4*z5+z1*z10*z9+z1*z9*z6-z1*z8*z7-z2*z3*z7
1112 -z2*z4*z7+z2*z4*z6-z2*z10*z7+z3*z7*z5-z4S*z5-z4*z10*z5-
1114 fm[2][7] = 8*mQ4*(z3+2*z4+3*z10+z7+2*z6)+4*mQ2*(-4*z1*z3-
1115 2*z1*z4-2*z1*z10+z1*z9-z1*z8-4*z1*z7-2*z1*z6+z2*z3+2*z2*
1116 z4+3*z2*z10+z2*z7+2*z2*z6-6*z3*z4-6*z3*z10-2*z3*z9-2*z3*
1117 z7-4*z3*z6-z3*z5-6*z4S-6*z4*z10-3*z4*z9-z4*z8-4*z4*z7-2
1118 *z4*z6-2*z4*z5-3*z10*z9-3*z10*z8-6*z10*z7-6*z10*z6+z10*z5
1119 +z9*z7-2*z8*z7-2*z8*z6-6*z7*z6+z7*z5-6*z6S+2*z6*z5)+4*(
1120 -z1S*z9+z1S*z8-2*z1*z2*z10-3*z1*z2*z7-3*z1*z2*z6+z1*
1121 z3*z9-z1*z3*z5+z1*z4*z9+z1*z4*z8+z1*z4*z5+z1*z10*z9+z1*
1122 z10*z8-z1*z9*z6+z1*z8*z6+z2*z3*z7-3*z2*z4*z7-z2*z4*z6-3*
1123 z2*z10*z7-3*z2*z10*z6-3*z2*z7*z6-3*z2*z6S-2*z3*z4*z5-z3
1124 *z10*z5-z3*z6*z5-z4S*z5-z4*z10*z5+z4*z6*z5);
1125 fm[2][8] = 8*mQ4*(z3+2*z4+3*z10+z7+2*z6)+4*mQ2*(-4*z1*z3-
1126 2*z1*z4-2*z1*z10-z1*z9+z1*z8-4*z1*z7-2*z1*z6+z2*z3+2*z2*
1127 z4+z2*z10-z2*z7-2*z2*z6-6*z3*z4-6*z3*z10-2*z3*z9+z3*z8-2*
1128 z3*z7-4*z3*z6+z3*z5-6*z4S-6*z4*z10-2*z4*z9-4*z4*z7-2*z4
1129 *z6+2*z4*z5-3*z10*z9-3*z10*z8-6*z10*z7-6*z10*z6+3*z10*z5-
1130 z9*z6-2*z8*z7-3*z8*z6-6*z7*z6+z7*z5-6*z6S+2*z6*z5)+4*(
1131 z1S*z9-z1S*z8-z1*z2*z7+z1*z2*z6-3*z1*z3*z5+z1*z4*z9-
1132 z1*z4*z8-3*z1*z4*z5+z1*z10*z9+z1*z10*z8-2*z1*z10*z5+z1*z9
1133 *z6+z1*z8*z7+z1*z8*z6-z2*z4*z7+z2*z4*z6-z2*z10*z7-z2*z10*
1134 z6-2*z2*z7*z6-z2*z6S-3*z3*z4*z5-3*z3*z10*z5+z3*z7*z5-3*
1135 z3*z6*z5-3*z4S*z5-3*z4*z10*z5-z4*z6*z5);
1136 fm[3][3] = 64*mQ6+16*mQ4*s3+32*mQ4*(z1+z2+2*z3+z8+z6
1137 +2*z5)+8*mQ2*s3*(-z1+2*z3-z6)+16*mQ2*(z2*z5-2*z3*
1138 z8-2*z3*z6+4*z3*z5+z8*z5)+8*s3*z3*z6-16*z3*z8*z5;
1139 fm[3][4] = 16*mQ4*(-4*z1-z3+z8-z6)+4*mQ2*s3*(-2*z1-z3-
1140 z6)+16*mQ2*(-2*z1S-3*z1*z2-2*z1*z3-3*z1*z8-2*z1*z6-3*
1141 z1*z5-2*z2*z3-2*z6*z5)-8*s3*z3*z6+8*(-z1*z2*z8-2*z1*z2
1142 *z5-z1*z8S-z1*z8*z5+z2S*z6-z2*z3*z5+z2*z8*z6-z2*z6*z5
1144 fm[3][5] = 8*mQ4*(-2*z1+z10-z8-2*z6)+4*mQ2*(4*z1S+2*z1*
1145 z2+4*z1*z3+4*z1*z4+6*z1*z10+4*z1*z9-2*z1*z8+8*z1*z7-2*z1*
1146 z5+4*z2*z3+3*z2*z10+2*z2*z6-4*z3S-4*z3*z10+3*z3*z9+2*z3
1147 *z7-3*z4*z8-2*z4*z6+z10*z5+3*z9*z6-z8*z7+4*z7*z6)+8*(-z1S
1148 *z9+z1S*z8+z1*z2*z7-z1*z2*z6-z1*z3*z9+z1*z3*z8-z1*z3
1149 *z5+z1*z4*z8+z1*z4*z5+z1*z10*z8-z1*z9*z6+z1*z8*z7+z2*z3*
1150 z7-z2*z3*z6-z2*z4*z6-z2*z10*z6-z3S*z5-z3*z10*z5-z3*z7*
1152 fm[3][6] = 16*mQ6+4*mQ4*s3+16*mQ4*(-z1-z2+2*z3+2*z4+
1153 z10-z9-z8-z7-z6+z5)+4*mQ2*s3*(z1+2*z3+2*z4+z10+z7+z6
1154 )+8*mQ2*(4*z1*z3+4*z1*z4+4*z1*z10+4*z2*z3+4*z2*z4+4*z2*
1155 z10-z2*z5+4*z3*z5+4*z4*z5+2*z10*z5-z9*z5-z8*z5)-(8*s3*
1156 z1)*(z3+z4+z10)+16*z2*z5*(z3+z4+z10);
1157 fm[3][7] = 8*mQ4*(3*z3+6*z4+3*z10+z9+2*z8+2*z7+z6)+2*mQ2*
1158 s3*(z3+2*z4+2*z10-2*z7-z6)+4*mQ2*(4*z1*z3+8*z1*z4+4*
1159 z1*z10+2*z1*z9-2*z1*z8+2*z2*z3+10*z2*z4+5*z2*z10+2*z2*z9+
1160 z2*z8+2*z2*z7+4*z2*z6-7*z3*z9+2*z3*z8-8*z3*z7+4*z3*z6+4*
1161 z3*z5+5*z4*z8+4*z4*z6+8*z4*z5+5*z10*z5-z9*z8-z9*z6+z9*z5+
1162 z8S-z8*z7+2*z8*z6+2*z8*z5)+2*s3*(-z1*z10+z3*z7-2*z3*
1163 z6+z4*z6)+4*(-z1*z2*z9-2*z1*z2*z8+z1*z9*z8-z1*z8S+z2S
1164 *z7+2*z2S*z6+3*z2*z4*z5+2*z2*z10*z5-2*z2*z9*z6+z2*z8*z7
1165 +z2*z8*z6-2*z3*z9*z5+z3*z8*z5+z4*z8*z5);
1166 fm[3][8] = 8*mQ4*(3*z3+6*z4+3*z10+2*z9+z8+2*z7+z6)+2*mQ2*
1167 s3*(3*z3+6*z4+3*z10-2*z7-z6)+4*mQ2*(4*z1*z3+8*z1*z4+
1168 4*z1*z10+4*z2*z3+8*z2*z4+4*z2*z10-8*z3*z9+4*z3*z8-8*z3*z7
1169 +4*z3*z6+6*z3*z5+4*z4*z8+4*z4*z6+12*z4*z5+6*z10*z5+2*z9*
1170 z5+z8*z5)+4*s3*(-z1*z3-2*z1*z4-z1*z10+2*z3*z7-z3*z6-z4
1171 *z6)+8*z5*(z2*z3+2*z2*z4+z2*z10-2*z3*z9+z3*z8+z4*z8);
1172 fm[4][4] = 64*mQ6+16*mQ4*s3+32*mQ4*(z1+2*z2+z3+z8+2*
1173 z6+z5)+8*mQ2*s3*(-z1-z3+2*z6)+16*mQ2*(z2*z8+4*z2*
1174 z6+z2*z5-2*z3*z6-2*z8*z6)+8*s3*z3*z6-16*z2*z8*z6;
1175 fm[4][5] = 16*mQ6+8*mQ4*(-2*z1+z2-2*z3-2*z4-4*z10-z9+z8-4
1176 *z7+2*z6+z5)+8*mQ2*(-2*z1*z2-2*z2*z3-2*z2*z10-2*z2*z7+
1177 z2*z6+2*z3*z6-2*z4*z6+4*z10*z6-z9*z6-z8*z6)+16*z2*z6*(z3+
1179 fm[4][6] = 16*mQ6-4*mQ4*s3+8*mQ4*(-2*z1+2*z2-4*z3-2*
1180 z4-8*z10+z9+z8-4*z7-2*z6+2*z5)-(4*mQ2*s3)*(z1+z3+z10
1181 +z7)+8*mQ2*(-2*z1*z2-2*z1*z10+z1*z9+z1*z8-2*z1*z5+z2S
1182 -4*z2*z3-5*z2*z10+z2*z9-3*z2*z7-z2*z6+z2*z5+z3*z9+2*z3*z7
1183 -3*z3*z5+z4*z8+2*z4*z6-z4*z5-5*z10*z5+z9*z8+z9*z6+z8*z7+
1184 z8*z5-4*z7*z5+z5S)-(16*z2*z5)*(z1+z3+z10+z7);
1185 fm[4][7] = 8*mQ4*(-z3-2*z4-3*z10-2*z9-z8-6*z7-3*z6)+2*mQ2
1186 *s3*(z3+2*z4-3*z10-6*z7-3*z6)+4*mQ2*(-4*z1*z10-8*z1*
1187 z7-4*z1*z6-6*z2*z10-2*z2*z9-z2*z8-12*z2*z7-6*z2*z6-4*z3*
1188 z7-4*z3*z6+8*z4*z6-4*z10*z5+8*z9*z6-4*z8*z7-4*z8*z6-8*z7*
1189 z5-4*z6*z5)+4*s3*(z1*z10+2*z1*z7+z1*z6+z3*z7+z3*z6-2*
1190 z4*z6)+8*z2*(-z10*z5+2*z9*z6-z8*z7-z8*z6-2*z7*z5-z6*z5);
1191 fm[4][8] = 8*mQ4*(-z3-2*z4-3*z10-z9-2*z8-6*z7-3*z6)+2*mQ2
1192 *s3*(z3+2*z4-2*z10-2*z7-z6)+4*mQ2*(-4*z1*z10-2*z1*z9
1193 +2*z1*z8-8*z1*z7-4*z1*z6-5*z2*z10-z2*z9-2*z2*z8-8*z2*z7-4
1194 *z2*z6+z3*z9-2*z3*z8-4*z3*z7-4*z3*z6-4*z3*z5+z4*z8+8*z4*
1195 z6-2*z4*z5-5*z10*z5+z9*z8+7*z9*z6-2*z9*z5-z8S-5*z8*z7-2
1196 *z8*z6-z8*z5-10*z7*z5-2*z6*z5)+2*s3*(z1*z10-z3*z7+2*z3
1197 *z6-z4*z6)+4*(-z1*z9*z8+z1*z9*z5+z1*z8S+2*z1*z8*z5-2*z2
1198 *z10*z5+2*z2*z9*z6-z2*z8*z7-z2*z8*z6-3*z2*z7*z5+2*z3*z9*
1199 z5-z3*z8*z5-2*z3*z5S-z4*z8*z5-z4*z5S);
1200 fm[5][5] = 16*mQ6+16*mQ4*(-z1-z3+z4-z10-z7+z6)+16*mQ2*(
1201 z3*z6+z4*z10+z4*z7+z4*z6+z10*z6)-16*z4*z10*z6;
1202 fm[5][6] = 16*mQ6+8*mQ4*(-2*z1+z2-4*z3+2*z4-4*z10+z9-z8-2
1203 *z7-2*z6+z5)+8*mQ2*(-2*z1*z5-2*z3*z5+4*z4*z10-z4*z9-z4*
1204 z8+2*z4*z7-2*z4*z6+z4*z5-2*z10*z5-2*z7*z5)+16*z4*z5*(z10+
1206 fm[5][7] = 8*mQ4*(-2*z3-z4-3*z10-2*z7-z6)+4*mQ2*(2*z1*z3+
1207 4*z1*z4+2*z1*z10+z1*z9-z1*z8+2*z1*z7+4*z1*z6-2*z2*z3-z2*
1208 z4-3*z2*z10-2*z2*z7-z2*z6+6*z3S+6*z3*z4+6*z3*z10+z3*z9+
1209 3*z3*z8+2*z3*z7+4*z3*z6+2*z3*z5+6*z4*z10+2*z4*z8+4*z4*z7+
1210 2*z4*z6+z4*z5+3*z10*z9+3*z10*z8+6*z10*z7+6*z10*z6-z10*z5+
1211 2*z9*z7+2*z9*z6-z8*z6+6*z7S+6*z7*z6-2*z7*z5-z6*z5)+4*(-
1212 z1S*z9+z1S*z8+2*z1*z2*z10+3*z1*z2*z7+3*z1*z2*z6-z1*z3
1213 *z9-z1*z3*z8-z1*z3*z5-z1*z4*z8+z1*z4*z5-z1*z10*z9-z1*z10*
1214 z8-z1*z9*z7+z1*z8*z7+z2*z3*z7+3*z2*z3*z6-z2*z4*z6+3*z2*
1215 z10*z7+3*z2*z10*z6+3*z2*z7S+3*z2*z7*z6+z3S*z5+2*z3*z4
1216 *z5+z3*z10*z5-z3*z7*z5+z4*z10*z5+z4*z7*z5);
1217 fm[5][8] = 8*mQ4*(-2*z3-z4-3*z10-2*z7-z6)+4*mQ2*(2*z1*z3+
1218 4*z1*z4+2*z1*z10-z1*z9+z1*z8+2*z1*z7+4*z1*z6-2*z2*z3-z2*
1219 z4-z2*z10+2*z2*z7+z2*z6+6*z3S+6*z3*z4+6*z3*z10+2*z3*z8+
1220 2*z3*z7+4*z3*z6-2*z3*z5+6*z4*z10-z4*z9+2*z4*z8+4*z4*z7+2*
1221 z4*z6-z4*z5+3*z10*z9+3*z10*z8+6*z10*z7+6*z10*z6-3*z10*z5+
1222 3*z9*z7+2*z9*z6+z8*z7+6*z7S+6*z7*z6-2*z7*z5-z6*z5)+4*(
1223 z1S*z9-z1S*z8-z1*z2*z7+z1*z2*z6+z1*z3*z9-z1*z3*z8+3*
1224 z1*z3*z5+3*z1*z4*z5-z1*z10*z9-z1*z10*z8+2*z1*z10*z5-z1*z9
1225 *z7-z1*z9*z6-z1*z8*z7-z2*z3*z7+z2*z3*z6+z2*z10*z7+z2*z10*
1226 z6+z2*z7S+2*z2*z7*z6+3*z3S*z5+3*z3*z4*z5+3*z3*z10*z5+
1227 z3*z7*z5+3*z4*z10*z5+3*z4*z7*z5-z4*z6*z5);
1228 fm[6][6] = 64*mQ6+16*mQ4*s3+32*mQ4*(z1+z2+2*z4+z9+z7
1229 +2*z5)+8*mQ2*s3*(-z1+2*z4-z7)+16*mQ2*(z2*z5-2*z4*
1230 z9-2*z4*z7+4*z4*z5+z9*z5)+8*s3*z4*z7-16*z4*z9*z5;
1231 fm[6][7] = 8*mQ4*(-6*z3-3*z4-3*z10-2*z9-z8-z7-2*z6)+2*mQ2
1232 *s3*(-2*z3-z4-2*z10+z7+2*z6)+4*mQ2*(-8*z1*z3-4*z1*z4
1233 -4*z1*z10+2*z1*z9-2*z1*z8-10*z2*z3-2*z2*z4-5*z2*z10-z2*z9
1234 -2*z2*z8-4*z2*z7-2*z2*z6-5*z3*z9-4*z3*z7-8*z3*z5-2*z4*z9+
1235 7*z4*z8-4*z4*z7+8*z4*z6-4*z4*z5-5*z10*z5-z9S+z9*z8-2*z9
1236 *z7+z9*z6-2*z9*z5+z8*z7-z8*z5)+2*s3*(z1*z10-z3*z7+2*z4
1237 *z7-z4*z6)+4*(2*z1*z2*z9+z1*z2*z8+z1*z9S-z1*z9*z8-2*
1238 z2S*z7-z2S*z6-3*z2*z3*z5-2*z2*z10*z5-z2*z9*z7-z2*z9*z6+
1239 2*z2*z8*z7-z3*z9*z5-z4*z9*z5+2*z4*z8*z5);
1240 fm[6][8] = 8*mQ4*(-6*z3-3*z4-3*z10-z9-2*z8-z7-2*z6)+2*mQ2
1241 *s3*(-6*z3-3*z4-3*z10+z7+2*z6)+4*mQ2*(-8*z1*z3-4*z1*
1242 z4-4*z1*z10-8*z2*z3-4*z2*z4-4*z2*z10-4*z3*z9-4*z3*z7-12*
1243 z3*z5-4*z4*z9+8*z4*z8-4*z4*z7+8*z4*z6-6*z4*z5-6*z10*z5-z9
1244 *z5-2*z8*z5)+4*s3*(2*z1*z3+z1*z4+z1*z10+z3*z7+z4*z7-2*
1245 z4*z6)+8*z5*(-2*z2*z3-z2*z4-z2*z10-z3*z9-z4*z9+2*z4*z8);
1246 fm[7][7] = 72*mQ4*z10+18*mQ2*s3*z10+8*mQ2*(z1*z10+9*
1247 z2*z10+7*z3*z7+2*z3*z6+2*z4*z7+7*z4*z6+z10*z5+2*z9*z7+7*
1248 z9*z6+7*z8*z7+2*z8*z6)+2*s3*(-z1*z10-7*z3*z7-2*z3*z6-2
1249 *z4*z7-7*z4*z6)+4*z2*(z10*z5+2*z9*z7+7*z9*z6+7*z8*z7+2*z8
1251 fm[7][8] = 72*mQ4*z10+2*mQ2*s3*z10+4*mQ2*(2*z1*z10+
1252 10*z2*z10+7*z3*z9+2*z3*z8+14*z3*z7+4*z3*z6+2*z4*z9+7*z4*
1253 z8+4*z4*z7+14*z4*z6+10*z10*z5+z9S+7*z9*z8+2*z9*z7+7*z9*
1254 z6+z8S+7*z8*z7+2*z8*z6)+2*s3*(7*z1*z10-7*z3*z7-2*z3*
1255 z6-2*z4*z7-7*z4*z6)+2*(-2*z1*z9S-14*z1*z9*z8-2*z1*z8S
1256 +2*z2*z10*z5+2*z2*z9*z7+7*z2*z9*z6+7*z2*z8*z7+2*z2*z8*z6+
1257 7*z3*z9*z5+2*z3*z8*z5+2*z4*z9*z5+7*z4*z8*z5);
1258 fm[8][8] = 72*mQ4*z10+18*mQ2*s3*z10+8*mQ2*(z1*z10+z2
1259 *z10+7*z3*z9+2*z3*z8+7*z3*z7+2*z3*z6+2*z4*z9+7*z4*z8+2*z4
1260 *z7+7*z4*z6+9*z10*z5)+2*s3*(-z1*z10-7*z3*z7-2*z3*z6-2*
1261 z4*z7-7*z4*z6)+4*z5*(z2*z10+7*z3*z9+2*z3*z8+2*z4*z9+7*z4*
1263 double fm99 = -4*mQ4*z10-mQ2*s3*z10+4*mQ2*(-z1*z10-z2*z10+
1264 z3*z7+z4*z6-z10*z5+z9*z6+z8*z7)+s3*(z1*z10-z3*z7-z4*z6
1265 )+2*z2*(-z10*z5+z9*z6+z8*z7);
1266 double fm910 = -4*mQ4*z10-mQ2*s3*z10+2*mQ2*(-2*z1*z10-2*z2*
1267 z10+2*z3*z9+2*z3*z7+2*z4*z6-2*z10*z5+z9*z8+2*z8*z7)+s3
1268 *(z1*z10-z3*z7-z4*z6)+2*(-z1*z9*z8-z2*z10*z5+z2*z8*z7+z3*
1270 double fmxx = -4*mQ4*z10-mQ2*s3*z10+2*mQ2*(-2*z1*z10-2*z2*
1271 z10+2*z4*z8+2*z4*z6+2*z3*z7-2*z10*z5+z9*z8+2*z9*z6)+s3
1272 *(z1*z10-z3*z7-z4*z6)+2*(-z1*z9*z8-z2*z10*z5+z2*z9*z6+z4*
1274 fm910 = 0.5*(fmxx+fm910);
1275 double fm1010 = -4*mQ4*z10-mQ2*s3*z10+4*mQ2*(-z1*z10-z2*z10+
1276 z3*z7+z4*z6-z10*z5+z9*z3+z8*z4)+s3*(z1*z10-z3*z7-z4*z6
1277 )+2*z5*(-z10*z2+z9*z3+z8*z4);
1278 fm[7][7] -= 2. * fm99;
1279 fm[7][8] -= 2. * fm910;
1280 fm[8][8] -= 2. * fm1010;
1283 double ss1 = (pTemp[1] + pTemp[3]).m2Calc() - mQ2;
1284 double ss2 = (pTemp[1] + pTemp[4]).m2Calc() - mQ2;
1285 double ss3 = (pTemp[1] + pTemp[5]).m2Calc() - mQ2;
1286 double ss4 = (pTemp[2] + pTemp[3]).m2Calc() - mQ2;
1287 double ss5 = (pTemp[2] + pTemp[4]).m2Calc() - mQ2;
1288 double ss6 = (pTemp[2] + pTemp[5]).m2Calc() - mQ2;
1304 for (
int i = 1; i < 4; ++i)
1305 for (
int j = 1; j < 4; ++j) {
1306 clr[i][j] = 16. / 3.;
1307 clr[i][j+3] = -2. / 3.;
1308 clr[i+3][j] = -2. / 3.;
1309 clr[i+3][j+3] = 16. / 3.;
1311 for (
int i = 1; i < 4; ++i)
1312 for (
int j = 1; j < 3; ++j) {
1318 for (
int i = 1; i < 3; ++i)
1319 for (
int j = 1; j < 3; ++j)
1320 clr[i+6][j+6] = 12.;
1324 for (
int i = 1; i < 9; ++i)
1325 for (
int j = i; j < 9; ++j) {
1326 double fac = (j == i) ? 4. : 8.;
1327 wtSum += fm[i][j] * fac * clr[i][j] / (dz[i] * dz[j]);
1332 sigma = prefac * alpEM * pow2(alpS) * mQ2run * wtSum *pow2(coup2Q);
1336 sigma *= openFracTriplet;
1344 void Sigma3gg2HQQbar::setIdColAcol() {
1347 setId( id1, id2, idRes, idNew, -idNew);
1350 if (rndmPtr->flat() < 0.5) setColAcol( 1, 2, 2, 3, 0, 0, 1, 0, 0, 3);
1351 else setColAcol( 1, 2, 3, 1, 0, 0, 3, 0, 0, 2);
1359 double Sigma3gg2HQQbar::weightDecay(
Event& process,
int iResBeg,
1363 int idMother = process[process[iResBeg].mother1()].idAbs();
1366 if (idMother == 25 || idMother == 35 || idMother == 36)
1367 return weightHiggsDecay( process, iResBeg, iResEnd);
1371 return weightTopDecay( process, iResBeg, iResEnd);
1389 void Sigma3qqbar2HQQbar::initProc() {
1394 if (higgsType == 0 && idNew == 6) {
1395 nameSave =
"q qbar -> H t tbar (SM)";
1400 else if (higgsType == 1 && idNew == 6) {
1401 nameSave =
"q qbar -> h0(H1) t tbar";
1404 coup2Q = parm(
"HiggsH1:coup2u");
1406 else if (higgsType == 2 && idNew == 6) {
1407 nameSave =
"q qbar -> H0(H2) t tbar";
1410 coup2Q = parm(
"HiggsH2:coup2u");
1412 else if (higgsType == 3 && idNew == 6) {
1413 nameSave =
"q qbar -> A0(A3) t tbar";
1416 coup2Q = parm(
"HiggsA3:coup2u");
1421 if (higgsType == 0 && idNew == 5) {
1422 nameSave =
"q qbar -> H b bbar (SM)";
1427 else if (higgsType == 1 && idNew == 5) {
1428 nameSave =
"q qbar -> h0(H1) b bbar";
1431 coup2Q = parm(
"HiggsH1:coup2d");
1433 else if (higgsType == 2 && idNew == 5) {
1434 nameSave =
"q qbar -> H0(H2) b bbar";
1437 coup2Q = parm(
"HiggsH2:coup2d");
1439 else if (higgsType == 3 && idNew == 5) {
1440 nameSave =
"q qbar -> A0(A3) b bbar";
1443 coup2Q = parm(
"HiggsA3:coup2d");
1447 double mWS = pow2(particleDataPtr->m0(24));
1448 prefac = (4. * M_PI / coupSMPtr->sin2thetaW()) * pow2(4. * M_PI)
1452 openFracTriplet = particleDataPtr->resOpenFrac(idRes, idNew, -idNew);
1460 void Sigma3qqbar2HQQbar::sigmaKin() {
1463 double mQ2run = pow2( particleDataPtr->mRun(idNew, mH) );
1466 double mQ2 = m4 * m5;
1469 double s45 = (p4cm + p5cm).m2Calc();
1470 mQ2 = 0.5 * (s4 + s5) - 0.25 * pow2(s4 - s5) / s45;
1471 epsi = 0.5 * (s5 - s4) / s45;
1476 pTemp[4] = Vec4( 0., 0., -0.5* mH, -0.5* mH);
1477 pTemp[5] = Vec4( 0., 0., 0.5* mH, -0.5* mH);
1478 pTemp[1] = p4cm + epsi * (p4cm + p5cm);
1479 pTemp[2] = p5cm - epsi * (p4cm + p5cm);
1483 double z1 = pTemp[1] * pTemp[2];
1484 double z2 = pTemp[1] * pTemp[3];
1485 double z3 = pTemp[1] * pTemp[4];
1486 double z4 = pTemp[1] * pTemp[5];
1487 double z5 = pTemp[2] * pTemp[3];
1488 double z6 = pTemp[2] * pTemp[4];
1489 double z7 = pTemp[2] * pTemp[5];
1490 double z8 = pTemp[3] * pTemp[4];
1491 double z9 = pTemp[3] * pTemp[5];
1492 double z10 = pTemp[4] * pTemp[5];
1495 double mQ4 = mQ2 * mQ2;
1499 double a11 = -8.*mQ4*z10-2.*mQ2*s3*z10-(8.*mQ2)*(z2*z10+z3
1500 *z7+z4*z6+z9*z6+z8*z7)+2.*s3*(z3*z7+z4*z6)-(4.*z2)*(z9
1502 double a12 = -8.*mQ4*z10+4.*mQ2*(-z2*z10-z3*z9-2.*z3*z7-z4*z8-
1503 2.*z4*z6-z10*z5-z9*z8-z9*z6-z8*z7)+2.*s3*(-z1*z10+z3*z7
1504 +z4*z6)+2.*(2.*z1*z9*z8-z2*z9*z6-z2*z8*z7-z3*z9*z5-z4*z8*
1506 double a22 = -8.*mQ4*z10-2.*mQ2*s3*z10-(8.*mQ2)*(z3*z9+z3*
1507 z7+z4*z8+z4*z6+z10*z5)+2.*s3*(z3*z7+z4*z6)-(4.*z5)*(z3
1511 double ss1 = (pTemp[1] + pTemp[3]).m2Calc() - mQ2;
1512 double ss4 = (pTemp[2] + pTemp[3]).m2Calc() - mQ2;
1514 double dz7 = ss7 * ss1;
1515 double dz8 = ss7 * ss4;
1521 double wtSum = -(a11 + a22 + 2.*a12) * (8./9.);
1524 sigma = prefac * alpEM * pow2(alpS) * mQ2run * wtSum * pow2(coup2Q);
1528 sigma *= openFracTriplet;
1536 void Sigma3qqbar2HQQbar::setIdColAcol() {
1539 setId( id1, id2, idRes, idNew, -idNew);
1542 if (id1 > 0) setColAcol( 1, 0, 0, 2, 0, 0, 1, 0, 0, 2);
1543 else setColAcol( 0, 1, 2, 0, 0, 0, 2, 0, 0, 1);
1551 double Sigma3qqbar2HQQbar::weightDecay(
Event& process,
int iResBeg,
1555 int idMother = process[process[iResBeg].mother1()].idAbs();
1558 if (idMother == 25 || idMother == 35 || idMother == 36)
1559 return weightHiggsDecay( process, iResBeg, iResEnd);
1563 return weightTopDecay( process, iResBeg, iResEnd);
1580 void Sigma2qg2Hq::initProc() {
1584 if (higgsType == 0 && idNew == 4) {
1585 nameSave =
"c g -> H c (SM)";
1589 else if (higgsType == 1 && idNew == 4) {
1590 nameSave =
"c g -> h0(H1) c";
1594 else if (higgsType == 2 && idNew == 4) {
1595 nameSave =
"c g -> H0(H2) c";
1599 else if (higgsType == 3 && idNew == 4) {
1600 nameSave =
"c g -> A0(A3) c";
1607 if (higgsType == 0 && idNew == 5) {
1608 nameSave =
"b g -> H b (SM)";
1612 else if (higgsType == 1 && idNew == 5) {
1613 nameSave =
"b g -> h0(H1) b";
1617 else if (higgsType == 2 && idNew == 5) {
1618 nameSave =
"b g -> H0(H2) b";
1622 else if (higgsType == 3 && idNew == 5) {
1623 nameSave =
"b g -> A0(A3) b";
1629 m2W = pow2( particleDataPtr->m0(24) );
1630 thetaWRat = 1. / (24. * coupSMPtr->sin2thetaW());
1633 openFrac = particleDataPtr->resOpenFrac(idRes);
1642 void Sigma2qg2Hq::sigmaKin() {
1645 double m2Run = pow2( particleDataPtr->mRun(idNew, mH) );
1648 sigma = (M_PI / sH2) * alpS * alpEM * thetaWRat * (m2Run/m2W)
1649 * (sH / (s4 - uH) + 2. * s4 * (s3 - uH) / pow2(s4 - uH)
1650 + (s4 - uH) / sH - 2. * s4 / (s4 - uH)
1651 + 2. * (s3 - uH) * (s3 - s4 - sH) / ((s4 - uH) * sH) );
1662 double Sigma2qg2Hq::sigmaHat() {
1665 if (abs(id1) != idNew && abs(id2) != idNew)
return 0.;
1677 void Sigma2qg2Hq::setIdColAcol() {
1680 int idq = (id2 == 21) ? id1 : id2;
1681 setId( id1, id2, idRes, idq);
1684 swapTU = (id2 == 21);
1687 if (id2 == 21) setColAcol( 1, 0, 2, 1, 0, 0, 2, 0);
1688 else setColAcol( 2, 1, 1, 0, 0, 0, 2, 0);
1689 if (idq < 0) swapColAcol();
1697 double Sigma2qg2Hq::weightDecay(
Event& process,
int iResBeg,
1701 int idMother = process[process[iResBeg].mother1()].idAbs();
1704 if (idMother == 25 || idMother == 35 || idMother == 36)
1705 return weightHiggsDecay( process, iResBeg, iResEnd);
1709 return weightTopDecay( process, iResBeg, iResEnd);
1726 void Sigma2gg2Hglt::initProc() {
1729 if (higgsType == 0) {
1730 nameSave =
"g g -> H g (SM; top loop)";
1734 else if (higgsType == 1) {
1735 nameSave =
"g g -> h0(H1) g (BSM; top loop)";
1739 else if (higgsType == 2) {
1740 nameSave =
"g g -> H0(H2) g (BSM; top loop)";
1744 else if (higgsType == 3) {
1745 nameSave =
"g g -> A0(A3) g (BSM; top loop)";
1752 double mHiggs = particleDataPtr->m0(idRes);
1753 widHgg = particleDataPtr->resWidthChan(idRes, mHiggs, 21, 21);
1756 openFrac = particleDataPtr->resOpenFrac(idRes);
1764 void Sigma2gg2Hglt::sigmaKin() {
1767 sigma = (M_PI / sH2) * (3. / 16.) * alpS * (widHgg / m3)
1768 * (sH2 * sH2 + tH2 * tH2 + uH2 * uH2 + pow4(s3))
1769 / (sH * tH * uH * s3);
1778 void Sigma2gg2Hglt::setIdColAcol() {
1782 setId( 21, 21, idRes, 21);
1785 if (rndmPtr->flat() < 0.5) setColAcol( 1, 2, 2, 3, 0, 0, 1, 3);
1786 else setColAcol( 1, 2, 3, 1, 0, 0, 3, 2);
1794 double Sigma2gg2Hglt::weightDecay(
Event& process,
int iResBeg,
1798 int idMother = process[process[iResBeg].mother1()].idAbs();
1801 if (idMother == 25 || idMother == 35 || idMother == 36)
1802 return weightHiggsDecay( process, iResBeg, iResEnd);
1806 return weightTopDecay( process, iResBeg, iResEnd);
1823 void Sigma2qg2Hqlt::initProc() {
1826 if (higgsType == 0) {
1827 nameSave =
"q g -> H q (SM; top loop)";
1831 else if (higgsType == 1) {
1832 nameSave =
"q g -> h0(H1) q (BSM; top loop)";
1836 else if (higgsType == 2) {
1837 nameSave =
"q g -> H0(H2) q (BSM; top loop)";
1841 else if (higgsType == 3) {
1842 nameSave =
"q g -> A0(A3) q (BSM; top loop)";
1849 double mHiggs = particleDataPtr->m0(idRes);
1850 widHgg = particleDataPtr->resWidthChan(idRes, mHiggs, 21, 21);
1853 openFrac = particleDataPtr->resOpenFrac(idRes);
1861 void Sigma2qg2Hqlt::sigmaKin() {
1864 sigma = (M_PI / sH2) * (1. / 12.) * alpS * (widHgg / m3)
1865 * (sH2 + uH2) / (-tH * s3);
1874 void Sigma2qg2Hqlt::setIdColAcol() {
1878 int idq = (id2 == 21) ? id1 : id2;
1879 setId( id1, id2, idRes, idq);
1882 swapTU = (id2 == 21);
1885 if (id2 == 21) setColAcol( 1, 0, 2, 1, 0, 0, 2, 0);
1886 else setColAcol( 2, 1, 1, 0, 0, 0, 2, 0);
1887 if (idq < 0) swapColAcol();
1895 double Sigma2qg2Hqlt::weightDecay(
Event& process,
int iResBeg,
1899 int idMother = process[process[iResBeg].mother1()].idAbs();
1902 if (idMother == 25 || idMother == 35 || idMother == 36)
1903 return weightHiggsDecay( process, iResBeg, iResEnd);
1907 return weightTopDecay( process, iResBeg, iResEnd);
1924 void Sigma2qqbar2Hglt::initProc() {
1927 if (higgsType == 0) {
1928 nameSave =
"q qbar -> H g (SM; top loop)";
1932 else if (higgsType == 1) {
1933 nameSave =
"q qbar -> h0(H1) g (BSM; top loop)";
1937 else if (higgsType == 2) {
1938 nameSave =
"q qbar -> H0(H2) g (BSM; top loop)";
1942 else if (higgsType == 3) {
1943 nameSave =
"q qbar -> A0(A3) g (BSM; top loop)";
1950 double mHiggs = particleDataPtr->m0(idRes);
1951 widHgg = particleDataPtr->resWidthChan(idRes, mHiggs, 21, 21);
1954 openFrac = particleDataPtr->resOpenFrac(idRes);
1963 void Sigma2qqbar2Hglt::sigmaKin() {
1966 sigma = (M_PI / sH2) * (2. / 9.) * alpS * (widHgg / m3)
1967 * (tH2 + uH2) / (sH * s3);
1976 void Sigma2qqbar2Hglt::setIdColAcol() {
1979 setId( id1, id2, idRes, 21);
1982 setColAcol( 1, 0, 0, 2, 0, 0, 1, 2);
1983 if (id1 < 0) swapColAcol();
1991 double Sigma2qqbar2Hglt::weightDecay(
Event& process,
int iResBeg,
1995 int idMother = process[process[iResBeg].mother1()].idAbs();
1998 if (idMother == 25 || idMother == 35 || idMother == 36)
1999 return weightHiggsDecay( process, iResBeg, iResEnd);
2003 return weightTopDecay( process, iResBeg, iResEnd);
2020 void Sigma1ffbar2Hchg::initProc() {
2023 HResPtr = particleDataPtr->particleDataEntryPtr(37);
2026 mRes = HResPtr->m0();
2027 GammaRes = HResPtr->mWidth();
2029 GamMRat = GammaRes / mRes;
2032 m2W = pow2(particleDataPtr->m0(24));
2033 thetaWRat = 1. / (8. * coupSMPtr->sin2thetaW());
2034 tan2Beta = pow2(parm(
"HiggsHchg:tanBeta"));
2042 void Sigma1ffbar2Hchg::sigmaKin() {
2045 sigBW = 4. * M_PI / ( pow2(sH - m2Res) + pow2(sH * GamMRat) );
2046 widthOutPos = HResPtr->resWidthOpen( 37, mH);
2047 widthOutNeg = HResPtr->resWidthOpen(-37, mH);
2055 double Sigma1ffbar2Hchg::sigmaHat() {
2058 int id1Abs = abs(id1);
2059 int id2Abs = abs(id2);
2060 int idUp = max(id1Abs, id2Abs);
2061 int idDn = min(id1Abs, id2Abs);
2062 if (idUp%2 != 0 || idUp - idDn != 1)
return 0.;
2065 double m2RunUp = pow2(particleDataPtr->mRun(idUp, mH));
2066 double m2RunDn = pow2(particleDataPtr->mRun(idDn, mH));
2067 double widthIn = alpEM * thetaWRat * (mH/m2W)
2068 * (m2RunDn * tan2Beta + m2RunUp / tan2Beta);
2069 int idUpChg = (id1Abs%2 == 0) ? id1 : id2;
2070 double sigma = (idUpChg > 0) ? widthIn * sigBW * widthOutPos
2071 : widthIn * sigBW * widthOutNeg;
2074 if (idUp < 9) sigma /= 3.;
2083 void Sigma1ffbar2Hchg::setIdColAcol() {
2086 int idUpChg = (abs(id1)%2 == 0) ? id1 : id2;
2087 int idHchg = (idUpChg > 0) ? 37 : -37;
2088 setId( id1, id2, idHchg);
2091 if (abs(id1) < 9) setColAcol( 1, 0, 0, 1, 0, 0);
2092 else setColAcol( 0, 0, 0, 0, 0, 0);
2093 if (id1 < 0) swapColAcol();
2101 double Sigma1ffbar2Hchg::weightDecay(
Event& process,
int iResBeg,
2105 int idMother = process[process[iResBeg].mother1()].idAbs();
2108 if (idMother == 25 || idMother == 35 || idMother == 36)
2109 return weightHiggsDecay( process, iResBeg, iResEnd);
2113 return weightTopDecay( process, iResBeg, iResEnd);
2129 void Sigma2qg2Hchgq::initProc() {
2132 m2W = pow2( particleDataPtr->m0(24) );
2133 thetaWRat = 1. / (24. * coupSMPtr->sin2thetaW());
2134 tan2Beta = pow2(parm(
"HiggsHchg:tanBeta"));
2137 idOld = (idNew%2 == 0) ? idNew - 1 : idNew + 1;
2138 idUp = max(idOld, idNew);
2139 idDn = min(idOld, idNew);
2142 openFracPos = (idOld%2 == 0) ? particleDataPtr->resOpenFrac( 37, idNew)
2143 : particleDataPtr->resOpenFrac(-37, idNew);
2144 openFracNeg = (idOld%2 == 0) ? particleDataPtr->resOpenFrac(-37, -idNew)
2145 : particleDataPtr->resOpenFrac( 37, -idNew);
2153 void Sigma2qg2Hchgq::sigmaKin() {
2156 double m2RunUp = pow2(particleDataPtr->mRun(idUp, mH));
2157 double m2RunDn = pow2(particleDataPtr->mRun(idDn, mH));
2160 sigma = (M_PI / sH2) * alpS * alpEM * thetaWRat
2161 * (m2RunDn * tan2Beta + m2RunUp / tan2Beta) / m2W
2162 * (sH / (s4 - uH) + 2. * s4 * (s3 - uH) / pow2(s4 - uH)
2163 + (s4 - uH) / sH - 2. * s4 / (s4 - uH)
2164 + 2. * (s3 - uH) * (s3 - s4 - sH) / ((s4 - uH) * sH) );
2172 double Sigma2qg2Hchgq::sigmaHat() {
2175 if (abs(id1) != idOld && abs(id2) != idOld)
return 0.;
2178 return (id1 == idOld || id2 == idOld) ? sigma * openFracPos
2179 : sigma * openFracNeg;
2187 void Sigma2qg2Hchgq::setIdColAcol() {
2190 int idq = (id2 == 21) ? id1 : id2;
2191 id3 = ( (idq > 0 && idOld%2 == 0) || (idq < 0 && idOld%2 != 0) )
2193 id4 = (idq > 0) ? idNew : -idNew;
2194 setId( id1, id2, id3, id4);
2197 swapTU = (id2 == 21);
2200 if (id2 == 21) setColAcol( 1, 0, 2, 1, 0, 0, 2, 0);
2201 else setColAcol( 2, 1, 1, 0, 0, 0, 2, 0);
2202 if (idq < 0) swapColAcol();
2210 double Sigma2qg2Hchgq::weightDecay(
Event& process,
int iResBeg,
2214 int idMother = process[process[iResBeg].mother1()].idAbs();
2217 if (idMother == 25 || idMother == 35 || idMother == 36)
2218 return weightHiggsDecay( process, iResBeg, iResEnd);
2222 return weightTopDecay( process, iResBeg, iResEnd);
2238 void Sigma2ffbar2A3H12::initProc() {
2241 higgs12 = (higgsType == 1) ? 25 : 35;
2242 codeSave = (higgsType == 1) ? 1081 : 1082;
2243 nameSave = (higgsType == 1) ?
"f fbar -> A0(H3) h0(H1)"
2244 :
"f fbar -> A0(H3) H0(H2)";
2245 coupZA3H12 = (higgsType == 1) ? parm(
"HiggsA3:coup2H1Z")
2246 : parm(
"HiggsA3:coup2H2Z");
2249 double mZ = particleDataPtr->m0(23);
2250 double GammaZ = particleDataPtr->mWidth(23);
2252 mGammaZ = mZ * GammaZ;
2253 thetaWRat = 1. / (4. * coupSMPtr->sin2thetaW()
2254 * coupSMPtr->cos2thetaW());
2257 openFrac = particleDataPtr->resOpenFrac(36, higgs12);
2265 void Sigma2ffbar2A3H12::sigmaKin() {
2268 sigma0 = (M_PI / sH2) * pow2(alpEM * thetaWRat * coupZA3H12)
2269 * (uH * tH - s3 * s4) / ( pow2(sH - m2Z) + pow2(mGammaZ) );
2277 double Sigma2ffbar2A3H12::sigmaHat() {
2280 int idAbs = abs(id1);
2281 double lIn = coupSMPtr->lf(idAbs);
2282 double rIn = coupSMPtr->rf(idAbs);
2285 double sigma = (pow2(lIn) + pow2(rIn)) * sigma0 * openFrac;
2286 if (idAbs < 9) sigma /= 3.;
2295 void Sigma2ffbar2A3H12::setIdColAcol() {
2298 setId( id1, id2, 36, higgs12);
2301 if (abs(id1) < 9) setColAcol( 1, 0, 0, 1, 0, 0);
2302 else setColAcol( 0, 0, 0, 0, 0, 0);
2303 if (id1 < 0) swapColAcol();
2311 double Sigma2ffbar2A3H12::weightDecay(
Event& process,
int iResBeg,
2315 int idMother = process[process[iResBeg].mother1()].idAbs();
2318 if (idMother == 25 || idMother == 35 || idMother == 36)
2319 return weightHiggsDecay( process, iResBeg, iResEnd);
2323 return weightTopDecay( process, iResBeg, iResEnd);
2339 void Sigma2ffbar2HchgH12::initProc() {
2342 higgs12 = (higgsType == 1) ? 25 : 35;
2343 codeSave = (higgsType == 1) ? 1083 : 1084;
2344 nameSave = (higgsType == 1) ?
"f fbar' -> H+- h0(H1)"
2345 :
"f fbar' -> H+- H0(H2)";
2346 coupWHchgH12 = (higgsType == 1) ? parm(
"HiggsHchg:coup2H1W")
2347 : parm(
"HiggsHchg:coup2H2W");
2350 double mW = particleDataPtr->m0(24);
2351 double GammaW = particleDataPtr->mWidth(24);
2353 mGammaW = mW * GammaW;
2354 thetaWRat = 1. / (2. * coupSMPtr->sin2thetaW());
2357 openFracPos = particleDataPtr->resOpenFrac( 37, higgs12);
2358 openFracNeg = particleDataPtr->resOpenFrac(-37, higgs12);
2366 void Sigma2ffbar2HchgH12::sigmaKin() {
2369 sigma0 = 0.5 * (M_PI / sH2) * pow2(alpEM * thetaWRat * coupWHchgH12)
2370 * (uH * tH - s3 * s4) / ( pow2(sH - m2W) + pow2(mGammaW) );
2378 double Sigma2ffbar2HchgH12::sigmaHat() {
2381 int idUp = (abs(id1)%2 == 0) ? id1 : id2;
2382 double sigma = (idUp > 0) ? sigma0 * openFracPos : sigma0 * openFracNeg;
2383 if (abs(id1) < 9) sigma *= coupSMPtr->V2CKMid(abs(id1), abs(id2)) / 3.;
2392 void Sigma2ffbar2HchgH12::setIdColAcol() {
2395 int idUpChg = (abs(id1)%2 == 0) ? id1 : id2;
2396 int idHchg = (idUpChg > 0) ? 37 : -37;
2397 setId( id1, id2, idHchg, higgs12);
2400 if (abs(id1) < 9) setColAcol( 1, 0, 0, 1, 0, 0);
2401 else setColAcol( 0, 0, 0, 0, 0, 0);
2402 if (id1 < 0) swapColAcol();
2410 double Sigma2ffbar2HchgH12::weightDecay(
Event& process,
int iResBeg,
2414 int idMother = process[process[iResBeg].mother1()].idAbs();
2417 if (idMother == 25 || idMother == 35 || idMother == 36)
2418 return weightHiggsDecay( process, iResBeg, iResEnd);
2422 return weightTopDecay( process, iResBeg, iResEnd);
2438 void Sigma2ffbar2HposHneg::initProc() {
2441 double mZ = particleDataPtr->m0(23);
2442 double GammaZ = particleDataPtr->mWidth(23);
2444 mGammaZ = mZ * GammaZ;
2445 thetaWRat = 1. / (4. * coupSMPtr->sin2thetaW()
2446 * coupSMPtr->cos2thetaW());
2450 lH = -1. + 2. * coupSMPtr->sin2thetaW();
2453 openFrac = particleDataPtr->resOpenFrac(37, -37);
2461 void Sigma2ffbar2HposHneg::sigmaKin() {
2464 double preFac = M_PI * pow2(alpEM) * ((uH * tH - s3 * s4) / sH2);
2465 double propZ = 1. / ( pow2(sH - m2Z) + pow2(mGammaZ) );
2468 gamSig = preFac * 2. * pow2(eH) / sH2;
2469 intSig = preFac * 2. * eH * lH * thetaWRat * propZ * (sH - m2Z) / sH;
2470 resSig = preFac * pow2(lH * thetaWRat) * propZ;
2478 double Sigma2ffbar2HposHneg::sigmaHat() {
2481 int idAbs = abs(id1);
2482 double eIn = coupSMPtr->ef(idAbs);
2483 double lIn = coupSMPtr->lf(idAbs);
2484 double rIn = coupSMPtr->rf(idAbs);
2487 double sigma = (pow2(eIn) * gamSig + eIn * (lIn + rIn) * intSig
2488 + (pow2(lIn) + pow2(rIn)) * resSig) * openFrac;
2489 if (idAbs < 9) sigma /= 3.;
2498 void Sigma2ffbar2HposHneg::setIdColAcol() {
2501 setId( id1, id2, 37, -37);
2504 if (abs(id1) < 9) setColAcol( 1, 0, 0, 1, 0, 0);
2505 else setColAcol( 0, 0, 0, 0, 0, 0);
2506 if (id1 < 0) swapColAcol();
2514 double Sigma2ffbar2HposHneg::weightDecay(
Event& process,
int iResBeg,
2518 int idMother = process[process[iResBeg].mother1()].idAbs();
2521 if (idMother == 25 || idMother == 35 || idMother == 36)
2522 return weightHiggsDecay( process, iResBeg, iResEnd);
2526 return weightTopDecay( process, iResBeg, iResEnd);