10 #include "Pythia8/SusyResonanceWidths.h"
11 #include "Pythia8/SusyWidthFunctions.h"
12 #include "Pythia8/SusyCouplings.h"
13 #include "Pythia8/ParticleData.h"
14 #include "Pythia8/PythiaComplex.h"
23 const bool SUSYResonanceWidths::DBSUSY =
false;
27 bool SUSYResonanceWidths::initBSM(){
29 if (couplingsPtr->isSUSY) {
30 coupSUSYPtr = (CoupSUSY *) couplingsPtr;
39 bool SUSYResonanceWidths::allowCalc(){
42 if ( !couplingsPtr->isSUSY )
return false;
43 if ( (idRes == 45 || idRes == 46 || idRes == 1000045)
44 && !coupSUSYPtr->isNMSSM )
return false;
46 if (settingsPtr->flag(
"SLHA:useDecayTable") ) {
49 for (
int iDec = 0; iDec < int((coupSUSYPtr->slhaPtr)->decays.size());
51 if ( (coupSUSYPtr->slhaPtr)->decays[iDec].getId() == abs(idRes) ) {
52 if (DBSUSY) cout<<
"Using external decay table for:"<<idRes<<endl;
59 bool done = getChannels(idRes);
60 stringstream idStream;
61 idStream <<
"ID = " << idRes ;
62 if (!done) infoPtr->errorMsg(
"Error in SusyResonanceWidths::allowcalc: "
63 "unable to reset decay table.", idStream.str(),
true);
76 bool ResonanceSquark::getChannels(
int idPDG){
81 if (idPDG < ksusy)
return false;
82 if(idPDG % ksusy >= 7 || idPDG % ksusy < 1)
return false;
84 ParticleDataEntry* squarkEntryPtr
85 = particleDataPtr->particleDataEntryPtr(idPDG);
88 squarkEntryPtr->clearChannels();
100 squarkEntryPtr->addChannel(1, 0.0, 0, 1000024, 3);
101 squarkEntryPtr->addChannel(1, 0.0, 0, 1000024, 5);
102 squarkEntryPtr->addChannel(1, 0.0, 0, 1000037, 1);
103 squarkEntryPtr->addChannel(1, 0.0, 0, 1000037, 3);
104 squarkEntryPtr->addChannel(1, 0.0, 0, 1000037, 5);
105 squarkEntryPtr->addChannel(1, 0.0, 0, 1000022, 2);
106 squarkEntryPtr->addChannel(1, 0.0, 0, 1000022, 4);
107 squarkEntryPtr->addChannel(1, 0.0, 0, 1000022, 6);
108 squarkEntryPtr->addChannel(1, 0.0, 0, 1000023, 2);
109 squarkEntryPtr->addChannel(1, 0.0, 0, 1000023, 4);
110 squarkEntryPtr->addChannel(1, 0.0, 0, 1000023, 6);
111 squarkEntryPtr->addChannel(1, 0.0, 0, 1000025, 2);
112 squarkEntryPtr->addChannel(1, 0.0, 0, 1000025, 4);
113 squarkEntryPtr->addChannel(1, 0.0, 0, 1000025, 6);
114 squarkEntryPtr->addChannel(1, 0.0, 0, 1000035, 2);
115 squarkEntryPtr->addChannel(1, 0.0, 0, 1000035, 4);
116 squarkEntryPtr->addChannel(1, 0.0, 0, 1000035, 6);
119 squarkEntryPtr->addChannel(1, 0.0, 0, 1000001, -24);
120 squarkEntryPtr->addChannel(1, 0.0, 0, 1000003, -24);
121 squarkEntryPtr->addChannel(1, 0.0, 0, 1000005, -24);
122 squarkEntryPtr->addChannel(1, 0.0, 0, 2000001, -24);
123 squarkEntryPtr->addChannel(1, 0.0, 0, 2000003, -24);
124 squarkEntryPtr->addChannel(1, 0.0, 0, 2000005, -24);
125 squarkEntryPtr->addChannel(1, 0.0, 0, 1000001, -37);
126 squarkEntryPtr->addChannel(1, 0.0, 0, 1000003, -37);
127 squarkEntryPtr->addChannel(1, 0.0, 0, 1000005, -37);
128 squarkEntryPtr->addChannel(1, 0.0, 0, 2000001, -37);
129 squarkEntryPtr->addChannel(1, 0.0, 0, 2000003, -37);
130 squarkEntryPtr->addChannel(1, 0.0, 0, 2000005, -37);
133 squarkEntryPtr->addChannel(1, 0.0, 0, 1000021, 2);
134 squarkEntryPtr->addChannel(1, 0.0, 0, 1000021, 4);
135 squarkEntryPtr->addChannel(1, 0.0, 0, 1000021, 6);
138 squarkEntryPtr->addChannel(1, 0.0, 0, -11, 1);
139 squarkEntryPtr->addChannel(1, 0.0, 0, -11, 3);
140 squarkEntryPtr->addChannel(1, 0.0, 0, -11, 5);
141 squarkEntryPtr->addChannel(1, 0.0, 0, -13, 1);
142 squarkEntryPtr->addChannel(1, 0.0, 0, -13, 3);
143 squarkEntryPtr->addChannel(1, 0.0, 0, -13, 5);
144 squarkEntryPtr->addChannel(1, 0.0, 0, -15, 1);
145 squarkEntryPtr->addChannel(1, 0.0, 0, -15, 3);
146 squarkEntryPtr->addChannel(1, 0.0, 0, -15, 5);
149 squarkEntryPtr->addChannel(1, 0.0, 0, -1 ,-3);
150 squarkEntryPtr->addChannel(1, 0.0, 0, -1 ,-5);
151 squarkEntryPtr->addChannel(1, 0.0, 0, -3 ,-5);
157 squarkEntryPtr->addChannel(1, 0.0, 0, -1000024, 2);
158 squarkEntryPtr->addChannel(1, 0.0, 0, -1000037, 2);
159 squarkEntryPtr->addChannel(1, 0.0, 0, -1000024, 4);
160 squarkEntryPtr->addChannel(1, 0.0, 0, -1000037, 4);
161 squarkEntryPtr->addChannel(1, 0.0, 0, -1000024, 6);
162 squarkEntryPtr->addChannel(1, 0.0, 0, -1000037, 6);
163 squarkEntryPtr->addChannel(1, 0.0, 0, 1000022, 1);
164 squarkEntryPtr->addChannel(1, 0.0, 0, 1000022, 3);
165 squarkEntryPtr->addChannel(1, 0.0, 0, 1000022, 5);
166 squarkEntryPtr->addChannel(1, 0.0, 0, 1000023, 1);
167 squarkEntryPtr->addChannel(1, 0.0, 0, 1000023, 3);
168 squarkEntryPtr->addChannel(1, 0.0, 0, 1000023, 5);
169 squarkEntryPtr->addChannel(1, 0.0, 0, 1000025, 1);
170 squarkEntryPtr->addChannel(1, 0.0, 0, 1000025, 3);
171 squarkEntryPtr->addChannel(1, 0.0, 0, 1000025, 5);
172 squarkEntryPtr->addChannel(1, 0.0, 0, 1000035, 1);
173 squarkEntryPtr->addChannel(1, 0.0, 0, 1000035, 3);
174 squarkEntryPtr->addChannel(1, 0.0, 0, 1000035, 5);
177 squarkEntryPtr->addChannel(1, 0.0, 0, 1000002, -24);
178 squarkEntryPtr->addChannel(1, 0.0, 0, 1000004, -24);
179 squarkEntryPtr->addChannel(1, 0.0, 0, 1000006, -24);
180 squarkEntryPtr->addChannel(1, 0.0, 0, 2000002, -24);
181 squarkEntryPtr->addChannel(1, 0.0, 0, 2000004, -24);
182 squarkEntryPtr->addChannel(1, 0.0, 0, 2000006, -24);
183 squarkEntryPtr->addChannel(1, 0.0, 0, 1000002, -37);
184 squarkEntryPtr->addChannel(1, 0.0, 0, 1000004, -37);
185 squarkEntryPtr->addChannel(1, 0.0, 0, 1000006, -37);
186 squarkEntryPtr->addChannel(1, 0.0, 0, 2000002, -37);
187 squarkEntryPtr->addChannel(1, 0.0, 0, 2000004, -37);
188 squarkEntryPtr->addChannel(1, 0.0, 0, 2000006, -37);
191 squarkEntryPtr->addChannel(1, 0.0, 0, 1000021, 1);
192 squarkEntryPtr->addChannel(1, 0.0, 0, 1000021, 2);
193 squarkEntryPtr->addChannel(1, 0.0, 0, 1000021, 5);
196 squarkEntryPtr->addChannel(1, 0.0, 0, -12, 1);
197 squarkEntryPtr->addChannel(1, 0.0, 0, -12, 3);
198 squarkEntryPtr->addChannel(1, 0.0, 0, -12, 5);
199 squarkEntryPtr->addChannel(1, 0.0, 0, -14, 1);
200 squarkEntryPtr->addChannel(1, 0.0, 0, -14, 3);
201 squarkEntryPtr->addChannel(1, 0.0, 0, -14, 5);
202 squarkEntryPtr->addChannel(1, 0.0, 0, -16, 1);
203 squarkEntryPtr->addChannel(1, 0.0, 0, -16, 3);
204 squarkEntryPtr->addChannel(1, 0.0, 0, -16, 5);
205 squarkEntryPtr->addChannel(1, 0.0, 0, 12 ,1);
206 squarkEntryPtr->addChannel(1, 0.0, 0, 11 ,2);
207 squarkEntryPtr->addChannel(1, 0.0, 0, 12, 3);
208 squarkEntryPtr->addChannel(1, 0.0, 0, 11, 4);
209 squarkEntryPtr->addChannel(1, 0.0, 0, 12, 5);
210 squarkEntryPtr->addChannel(1, 0.0, 0, 11, 6);
211 squarkEntryPtr->addChannel(1, 0.0, 0, 14, 1);
212 squarkEntryPtr->addChannel(1, 0.0, 0, 13, 2);
213 squarkEntryPtr->addChannel(1, 0.0, 0, 14, 3);
214 squarkEntryPtr->addChannel(1, 0.0, 0, 13, 4);
215 squarkEntryPtr->addChannel(1, 0.0, 0, 14, 5);
216 squarkEntryPtr->addChannel(1, 0.0, 0, 13, 6);
217 squarkEntryPtr->addChannel(1, 0.0, 0, 16, 1);
218 squarkEntryPtr->addChannel(1, 0.0, 0, 15, 2);
219 squarkEntryPtr->addChannel(1, 0.0, 0, 16, 3);
220 squarkEntryPtr->addChannel(1, 0.0, 0, 15, 4);
221 squarkEntryPtr->addChannel(1, 0.0, 0, 16, 5);
222 squarkEntryPtr->addChannel(1, 0.0, 0, 15, 6);
226 squarkEntryPtr->addChannel(1, 0.0, 0, -2, -1);
227 squarkEntryPtr->addChannel(1, 0.0, 0, -2, -3);
228 squarkEntryPtr->addChannel(1, 0.0, 0, -2, -5);
229 squarkEntryPtr->addChannel(1, 0.0, 0, -4, -1);
230 squarkEntryPtr->addChannel(1, 0.0, 0, -4, -3);
231 squarkEntryPtr->addChannel(1, 0.0, 0, -4, -5);
232 squarkEntryPtr->addChannel(1, 0.0, 0, -6, -1);
233 squarkEntryPtr->addChannel(1, 0.0, 0, -6, -3);
234 squarkEntryPtr->addChannel(1, 0.0, 0, -6, -5);
245 void ResonanceSquark::initConstants() {
248 s2W = coupSUSYPtr->sin2W;
256 void ResonanceSquark::calcPreFac(
bool) {
259 alpS = coupSUSYPtr->alphaS(mHat * mHat );
260 alpEM = coupSUSYPtr->alphaEM(mHat * mHat);
261 preFac = 1.0 / (s2W * pow(mHat,3));
270 void ResonanceSquark::calcWidth(
bool) {
274 bool idown = (abs(idRes)%2 == 0 ?
false :
true);
275 int isq = (abs(idRes)/ksusy == 2) ?
276 (abs(idRes)%10+1)/2 + 3: (abs(idRes)%10+1)/2;
280 if (ps == 0.)
return;
283 kinFac = (mHat * mHat - mf1 * mf1 - mf2 * mf2);
285 double fac = 0.0 , wid = 0.0;
289 if (id1Abs < 7 && id2Abs < 7){
292 int iq1 = (id1Abs + 1)/2;
293 int iq2 = (id2Abs + 1)/2;
296 if (!coupSUSYPtr->isUDD) {widNow = 0;
return;}
300 fac = 2.0 * kinFac / (16.0 * M_PI * pow(mHat,3));
303 if ((id1Abs+id2Abs)%2 == 1){
305 for (
int isq2 = 1; isq2 < 4; isq2++)
306 wid += norm(coupSUSYPtr->rvUDD[iq2][iq1][isq2]
307 * coupSUSYPtr->Rdsq[isq][isq2+3]);
309 for (
int isq2 = 1; isq2 < 4; isq2++)
310 wid += norm(coupSUSYPtr->rvUDD[iq1][iq2][isq2]
311 * coupSUSYPtr->Rdsq[isq][isq2+3]);
315 if ((id1Abs+id2Abs)%2 != 0) widNow = 0.0;
317 for (
int isq2 = 1; isq2 < 4; isq2++)
318 wid += norm(coupSUSYPtr->rvUDD[isq2][iq1][iq2]
319 * coupSUSYPtr->Rusq[isq][isq2+3]);
324 else if (id1Abs < 17 && id2Abs < 7){
325 if (!coupSUSYPtr->isLQD) {widNow = 0;
return;}
327 int ilep = (id1Abs - 9)/2;
328 int iq = (id2Abs + 1)/2;
330 fac = kinFac / (16.0 * M_PI * pow(mHat,3));
335 for (
int isq2=1; isq2<3; isq2++)
336 wid += norm(coupSUSYPtr->Rdsq[isq][isq2+3]
337 * coupSUSYPtr->rvLQD[ilep][iq][isq2]);
340 for (
int isq2=1; isq2<3; isq2++)
341 wid += norm(coupSUSYPtr->Rdsq[isq][isq2]
342 * coupSUSYPtr->rvLQD[ilep][isq2][isq2]);
346 if (iq%2 == 0) {widNow = 0.0;
return;}
348 for (
int isq2=1; isq2<3; isq2++)
349 wid += norm(coupSUSYPtr->Rusq[isq][isq2]
350 * coupSUSYPtr->rvLQD[ilep][isq2][iq]);
355 else if (id1Abs > ksusy && id2Abs < 7) {
357 int iq = (id2Abs + 1)/2;
360 if (id1Abs == 1000021 && idRes%10 == id2Abs) {
362 fac = 2.0 * alpS / (3.0 * pow3(mHat));
364 wid = kinFac * (norm(coupSUSYPtr->LsddG[isq][iq])
365 + norm(coupSUSYPtr->RsddG[isq][iq]))
366 - 4.0 * mHat * mf2 * real(coupSUSYPtr->LsddG[isq][iq]
367 * conj(coupSUSYPtr->RsddG[isq][iq]));
369 wid = kinFac * (norm(coupSUSYPtr->LsuuG[isq][iq])
370 + norm(coupSUSYPtr->RsuuG[isq][iq]))
371 - 4.0 * mHat * mf2 * real(coupSUSYPtr->LsuuG[isq][iq]
372 * conj(coupSUSYPtr->RsuuG[isq][iq]));
375 for (
int i=1; i<6 ; i++){
377 if (coupSUSYPtr->idNeut(i)==id1Abs && idRes%2 == id2Abs%2){
378 fac = alpEM * preFac / (2.0 * (1 - s2W));
380 wid = kinFac * (norm(coupSUSYPtr->LsddX[isq][iq][i])
381 + norm(coupSUSYPtr->RsddX[isq][iq][i]))
382 - 4.0 * mHat * mf2 * real(coupSUSYPtr->LsddX[isq][iq][i]
383 * conj(coupSUSYPtr->RsddX[isq][iq][i]));
385 wid = kinFac * (norm(coupSUSYPtr->LsuuX[isq][iq][i])
386 + norm(coupSUSYPtr->RsuuX[isq][iq][i]))
387 - 4.0 * mHat * mf2 * real(coupSUSYPtr->LsuuX[isq][iq][i]
388 * conj(coupSUSYPtr->RsuuX[isq][iq][i]));
392 else if (i < 3 && coupSUSYPtr->idChar(i)==id1Abs
393 && idRes%2 != id2Abs%2){
395 fac = alpEM * preFac / (4.0 * (1 - s2W));
397 wid = kinFac * (norm(coupSUSYPtr->LsduX[isq][iq][i])
398 + norm(coupSUSYPtr->RsduX[isq][iq][i]))
399 - 4.0 * mHat * mf2 * real(coupSUSYPtr->LsduX[isq][iq][i]
400 * conj(coupSUSYPtr->RsduX[isq][iq][i]));
402 wid = kinFac * (norm(coupSUSYPtr->LsudX[isq][iq][i])
403 + norm(coupSUSYPtr->RsudX[isq][iq][i]))
404 - 4.0 * mHat * mf2 * real(coupSUSYPtr->LsudX[isq][iq][i]
405 * conj(coupSUSYPtr->RsudX[isq][iq][i]));
411 else if (id1Abs > ksusy && id1Abs%100 < 7
412 && (id2Abs == 23 || id2Abs == 24)){
415 fac = alpEM * preFac/(16.0 * pow2(particleDataPtr->m0(id2Abs))
416 * (1.0 - s2W)) * pow2(ps) ;
418 int isq2 = (id1Abs/ksusy == 2) ? (id1Abs%10+1)/2 + 3: (id1Abs%10+1)/2;
420 if (id2Abs == 23 && id1Abs%2 == idRes%2){
422 wid = norm(coupSUSYPtr->LsdsdZ[isq][isq2]
423 + coupSUSYPtr->RsdsdZ[isq][isq2]);
425 wid = norm(coupSUSYPtr->LsusuZ[isq][isq2]
426 + coupSUSYPtr->RsusuZ[isq][isq2]);
428 else if (id2Abs == 24 && id1Abs%2 != idRes%2){
430 wid = norm(coupSUSYPtr->LsusdW[isq2][isq]);
432 wid = norm(coupSUSYPtr->LsusdW[isq][isq2]);
437 widNow = fac * wid * ps * pow2(mHat);
438 if (DBSUSY) cout<<idRes<<
":: id1:"<<id1Abs<<
" id2:"<<id2Abs
439 <<
" Width: "<<widNow<<endl;
454 bool ResonanceGluino::getChannels(
int idPDG){
457 if (idPDG != 1000021)
return false;
459 ParticleDataEntry* gluinoEntryPtr
460 = particleDataPtr->particleDataEntryPtr(idPDG);
463 gluinoEntryPtr->clearChannels();
465 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000001, -1);
466 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000001, 1);
467 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000001 ,-3);
468 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000001, 3);
469 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000001 ,-5);
470 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000001, 5);
471 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000001 ,-1);
472 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000001, 1);
473 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000001 ,-3);
474 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000001, 3);
475 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000001 ,-5);
476 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000001, 5);
477 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000002 ,-2);
478 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000002, 2);
479 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000002 ,-4);
480 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000002, 4);
481 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000002 ,-6);
482 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000002, 6);
483 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000002 ,-2);
484 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000002, 2);
485 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000002 ,-4);
486 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000002, 4);
487 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000002 ,-6);
488 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000002, 6);
489 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000003 ,-1);
490 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000003, 1);
491 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000003 ,-3);
492 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000003, 3);
493 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000003 ,-5);
494 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000003, 5);
495 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000003 ,-1);
496 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000003, 1);
497 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000003 ,-3);
498 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000003, 3);
499 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000003 ,-5);
500 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000003, 5);
501 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000004 ,-2);
502 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000004, 2);
503 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000004 ,-4);
504 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000004, 4);
505 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000004 ,-6);
506 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000004, 6);
507 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000004 ,-2);
508 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000004, 2);
509 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000004 ,-4);
510 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000004, 4);
511 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000004 ,-6);
512 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000004, 6);
513 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000005 ,-1);
514 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000005, 1);
515 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000005 ,-3);
516 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000005, 3);
517 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000005 ,-5);
518 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000005, 5);
519 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000005 ,-1);
520 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000005, 1);
521 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000005 ,-3);
522 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000005, 3);
523 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000005 ,-5);
524 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000005, 5);
525 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000006 ,-6);
526 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000006, 6);
527 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000006 ,-2);
528 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000006, 2);
529 gluinoEntryPtr->addChannel(1, 0.0, 0, 1000006 ,-4);
530 gluinoEntryPtr->addChannel(1, 0.0, 0, -1000006, 4);
531 gluinoEntryPtr->addChannel(1, 0.0, 0, 2000006 ,-6);
532 gluinoEntryPtr->addChannel(1, 0.0, 0, -2000006, 6);
541 void ResonanceGluino::initConstants() {
549 void ResonanceGluino::calcPreFac(
bool) {
552 alpS = coupSUSYPtr->alphaS(mHat * mHat);
553 preFac = alpS /( 8.0 * pow(mHat,3));
563 void ResonanceGluino::calcWidth(
bool) {
566 if (ps == 0.)
return;
567 kinFac = (mHat * mHat - mf1 * mf1 + mf2 * mf2);
569 if (id1Abs > 1000000 && (id1Abs % 100) < 7 && id2Abs < 7) {
571 int isq = (abs(id1Abs)/1000000 == 2) ? (abs(id1Abs)%10+1)/2 + 3
572 : (abs(id1Abs)%10+1)/2;
573 bool idown = id2Abs%2;
574 int iq = (id2Abs + 1)/2;
578 widNow = kinFac * (norm(coupSUSYPtr->LsddG[isq][iq])
579 + norm(coupSUSYPtr->RsddG[isq][iq]))
580 + 4.0 * mHat * mf2 * real(coupSUSYPtr->LsddG[isq][iq]
581 * conj(coupSUSYPtr->RsddG[isq][iq]));
584 widNow = kinFac * (norm(coupSUSYPtr->LsuuG[isq][iq])
585 + norm(coupSUSYPtr->RsuuG[isq][iq]))
586 + 4.0 * mHat * mf2 * real(coupSUSYPtr->LsuuG[isq][iq]
587 * conj(coupSUSYPtr->RsuuG[isq][iq]));
589 widNow = widNow * preFac * ps * pow2(mHat);
591 cout<<
"Gluino:: id1:"<<id1Abs<<
" id2:"<<id2Abs<<
" Width: ";
592 cout<<scientific<<widNow<<endl;
607 bool ResonanceNeut::getChannels(
int idPDG){
611 int iNeut = coupSUSYPtr->typeNeut(idPDG);
612 if (iNeut < 1)
return false;
614 ParticleDataEntry* neutEntryPtr
615 = particleDataPtr->particleDataEntryPtr(idPDG);
618 neutEntryPtr->clearChannels();
622 neutEntryPtr->addChannel(1, 0.0, 0, -12, -13, 11);
623 neutEntryPtr->addChannel(1, 0.0, 0, 12, 13, -11);
624 neutEntryPtr->addChannel(1, 0.0, 0, -12, -13, 13);
625 neutEntryPtr->addChannel(1, 0.0, 0, 12, 13, -13);
626 neutEntryPtr->addChannel(1, 0.0, 0, -12, -13, 15);
627 neutEntryPtr->addChannel(1, 0.0, 0, 12, 13, -15);
628 neutEntryPtr->addChannel(1, 0.0, 0, -12, -15, 11);
629 neutEntryPtr->addChannel(1, 0.0, 0, 12, 15, -11);
630 neutEntryPtr->addChannel(1, 0.0, 0, -12, -15, 13);
631 neutEntryPtr->addChannel(1, 0.0, 0, 12, 15, -13);
632 neutEntryPtr->addChannel(1, 0.0, 0, -12, -15, 15);
633 neutEntryPtr->addChannel(1, 0.0, 0, 12, 15, -15);
634 neutEntryPtr->addChannel(1, 0.0, 0, -14, -11, 11);
635 neutEntryPtr->addChannel(1, 0.0, 0, 14, 11, -11);
636 neutEntryPtr->addChannel(1, 0.0, 0, -14, -11, 13);
637 neutEntryPtr->addChannel(1, 0.0, 0, 14, 11, -13);
638 neutEntryPtr->addChannel(1, 0.0, 0, -14, -11, 15);
639 neutEntryPtr->addChannel(1, 0.0, 0, 14, 11, -15);
640 neutEntryPtr->addChannel(1, 0.0, 0, -14, -15, 11);
641 neutEntryPtr->addChannel(1, 0.0, 0, 14, 15, -11);
642 neutEntryPtr->addChannel(1, 0.0, 0, -14, -15, 13);
643 neutEntryPtr->addChannel(1, 0.0, 0, 14, 15, -13);
644 neutEntryPtr->addChannel(1, 0.0, 0, -14, -15, 15);
645 neutEntryPtr->addChannel(1, 0.0, 0, 14, 15, -15);
646 neutEntryPtr->addChannel(1, 0.0, 0, -16, -11, 11);
647 neutEntryPtr->addChannel(1, 0.0, 0, 16, 11, -11);
648 neutEntryPtr->addChannel(1, 0.0, 0, -16, -11, 13);
649 neutEntryPtr->addChannel(1, 0.0, 0, 16, 11, -13);
650 neutEntryPtr->addChannel(1, 0.0, 0, -16, -11, 15);
651 neutEntryPtr->addChannel(1, 0.0, 0, 16, 11, -15);
652 neutEntryPtr->addChannel(1, 0.0, 0, -16, -13, 11);
653 neutEntryPtr->addChannel(1, 0.0, 0, 16, 13, -11);
654 neutEntryPtr->addChannel(1, 0.0, 0, -16, -13, 13);
655 neutEntryPtr->addChannel(1, 0.0, 0, 16, 13, -13);
656 neutEntryPtr->addChannel(1, 0.0, 0, -16, -13, 15);
657 neutEntryPtr->addChannel(1, 0.0, 0, 16, 13, -15);
658 neutEntryPtr->addChannel(1, 0.0, 0, -12, -1, 1);
659 neutEntryPtr->addChannel(1, 0.0, 0, 12, 1, -1);
660 neutEntryPtr->addChannel(1, 0.0, 0, -11, -2, 1);
661 neutEntryPtr->addChannel(1, 0.0, 0, 11, 2, -1);
662 neutEntryPtr->addChannel(1, 0.0, 0, -12, -1, 3);
663 neutEntryPtr->addChannel(1, 0.0, 0, 12, 1, -3);
664 neutEntryPtr->addChannel(1, 0.0, 0, -11, -2, 3);
665 neutEntryPtr->addChannel(1, 0.0, 0, 11, 2, -3);
666 neutEntryPtr->addChannel(1, 0.0, 0, -12, -1, 5);
667 neutEntryPtr->addChannel(1, 0.0, 0, 12, 1, -5);
668 neutEntryPtr->addChannel(1, 0.0, 0, -11, -2, 5);
669 neutEntryPtr->addChannel(1, 0.0, 0, 11, 2, -5);
670 neutEntryPtr->addChannel(1, 0.0, 0, -12, -3, 1);
671 neutEntryPtr->addChannel(1, 0.0, 0, 12, 3, -1);
672 neutEntryPtr->addChannel(1, 0.0, 0, -11, -4, 1);
673 neutEntryPtr->addChannel(1, 0.0, 0, 11, 4, -1);
674 neutEntryPtr->addChannel(1, 0.0, 0, -12, -3, 3);
675 neutEntryPtr->addChannel(1, 0.0, 0, 12, 3, -3);
676 neutEntryPtr->addChannel(1, 0.0, 0, -11, -4, 3);
677 neutEntryPtr->addChannel(1, 0.0, 0, 11, 4, -3);
678 neutEntryPtr->addChannel(1, 0.0, 0, -12, -3, 5);
679 neutEntryPtr->addChannel(1, 0.0, 0, 12, 3, -5);
680 neutEntryPtr->addChannel(1, 0.0, 0, -11, -4, 5);
681 neutEntryPtr->addChannel(1, 0.0, 0, 11, 4, -5);
682 neutEntryPtr->addChannel(1, 0.0, 0, -12, -5, 1);
683 neutEntryPtr->addChannel(1, 0.0, 0, 12, 5, -1);
684 neutEntryPtr->addChannel(1, 0.0, 0, -11, -6, 1);
685 neutEntryPtr->addChannel(1, 0.0, 0, 11, 6, -1);
686 neutEntryPtr->addChannel(1, 0.0, 0, -12, -5, 3);
687 neutEntryPtr->addChannel(1, 0.0, 0, 12, 5, -3);
688 neutEntryPtr->addChannel(1, 0.0, 0, -11, -6, 3);
689 neutEntryPtr->addChannel(1, 0.0, 0, 11, 6, -3);
690 neutEntryPtr->addChannel(1, 0.0, 0, 12 ,-5 ,5);
691 neutEntryPtr->addChannel(1, 0.0, 0, 12, 5, -5);
692 neutEntryPtr->addChannel(1, 0.0, 0, -11, -6, 5);
693 neutEntryPtr->addChannel(1, 0.0, 0, 11, 6, -5);
694 neutEntryPtr->addChannel(1, 0.0, 0, -14, -1, 1);
695 neutEntryPtr->addChannel(1, 0.0, 0, 14, 1, -1);
696 neutEntryPtr->addChannel(1, 0.0, 0, -13, -2, 1);
697 neutEntryPtr->addChannel(1, 0.0, 0, 13, 2, -1);
698 neutEntryPtr->addChannel(1, 0.0, 0, -14, -1, 3);
699 neutEntryPtr->addChannel(1, 0.0, 0, 14, 1, -3);
700 neutEntryPtr->addChannel(1, 0.0, 0, -13, -2, 3);
701 neutEntryPtr->addChannel(1, 0.0, 0, 13, 2, -3);
702 neutEntryPtr->addChannel(1, 0.0, 0, -14, -1, 5);
703 neutEntryPtr->addChannel(1, 0.0, 0, 14, 1, -5);
704 neutEntryPtr->addChannel(1, 0.0, 0, -13, -2, 5);
705 neutEntryPtr->addChannel(1, 0.0, 0, 13, 2, -5);
706 neutEntryPtr->addChannel(1, 0.0, 0, -14, -3, 1);
707 neutEntryPtr->addChannel(1, 0.0, 0, 14, 3, -1);
708 neutEntryPtr->addChannel(1, 0.0, 0, -13, -4, 1);
709 neutEntryPtr->addChannel(1, 0.0, 0, 13, 4, -1);
710 neutEntryPtr->addChannel(1, 0.0, 0, -14, -3, 3);
711 neutEntryPtr->addChannel(1, 0.0, 0, 14, 3, -3);
712 neutEntryPtr->addChannel(1, 0.0, 0, -13, -4, 3);
713 neutEntryPtr->addChannel(1, 0.0, 0, 13, 4, -3);
714 neutEntryPtr->addChannel(1, 0.0, 0, -14, -3, 5);
715 neutEntryPtr->addChannel(1, 0.0, 0, 14, 3, -5);
716 neutEntryPtr->addChannel(1, 0.0, 0, -13, -4, 5);
717 neutEntryPtr->addChannel(1, 0.0, 0, 13, 4, -5);
718 neutEntryPtr->addChannel(1, 0.0, 0, -14, -5, 1);
719 neutEntryPtr->addChannel(1, 0.0, 0, 14, 5, -1);
720 neutEntryPtr->addChannel(1, 0.0, 0, -13, -6, 1);
721 neutEntryPtr->addChannel(1, 0.0, 0, 13, 6, -1);
722 neutEntryPtr->addChannel(1, 0.0, 0, -14, -5, 3);
723 neutEntryPtr->addChannel(1, 0.0, 0, 14, 5, -3);
724 neutEntryPtr->addChannel(1, 0.0, 0, -13, -6, 3);
725 neutEntryPtr->addChannel(1, 0.0, 0, 13, 6, -3);
726 neutEntryPtr->addChannel(1, 0.0, 0, -14, -5, 5);
727 neutEntryPtr->addChannel(1, 0.0, 0, 14, 5, -5);
728 neutEntryPtr->addChannel(1, 0.0, 0, -13, -6, 5);
729 neutEntryPtr->addChannel(1, 0.0, 0, 13, 6, -5);
730 neutEntryPtr->addChannel(1, 0.0, 0, -16, -1, 1);
731 neutEntryPtr->addChannel(1, 0.0, 0, 16, 1, -1);
732 neutEntryPtr->addChannel(1, 0.0, 0, -15, -2, 1);
733 neutEntryPtr->addChannel(1, 0.0, 0, 15, 2, -1);
734 neutEntryPtr->addChannel(1, 0.0, 0, -16, -1, 3);
735 neutEntryPtr->addChannel(1, 0.0, 0, 16, 1, -3);
736 neutEntryPtr->addChannel(1, 0.0, 0, -15, -2, 3);
737 neutEntryPtr->addChannel(1, 0.0, 0, 15, 2, -3);
738 neutEntryPtr->addChannel(1, 0.0, 0, -16, -1, 5);
739 neutEntryPtr->addChannel(1, 0.0, 0, 16, 1, -5);
740 neutEntryPtr->addChannel(1, 0.0, 0, -15, -2, 5);
741 neutEntryPtr->addChannel(1, 0.0, 0, 15, 2, -5);
742 neutEntryPtr->addChannel(1, 0.0, 0, -16, -3, 1);
743 neutEntryPtr->addChannel(1, 0.0, 0, 16, 3, -1);
744 neutEntryPtr->addChannel(1, 0.0, 0, -15, -4, 1);
745 neutEntryPtr->addChannel(1, 0.0, 0, 15, 4, -1);
746 neutEntryPtr->addChannel(1, 0.0, 0, -16, -3, 3);
747 neutEntryPtr->addChannel(1, 0.0, 0, 16, 3, -3);
748 neutEntryPtr->addChannel(1, 0.0, 0, -15, -4, 3);
749 neutEntryPtr->addChannel(1, 0.0, 0, 15, 4, -3);
750 neutEntryPtr->addChannel(1, 0.0, 0, -16, -3, 5);
751 neutEntryPtr->addChannel(1, 0.0, 0, 16, 3, -5);
752 neutEntryPtr->addChannel(1, 0.0, 0, -15, -4, 5);
753 neutEntryPtr->addChannel(1, 0.0, 0, 15, 4, -5);
754 neutEntryPtr->addChannel(1, 0.0, 0, -16, -5, 1);
755 neutEntryPtr->addChannel(1, 0.0, 0, 16, 5, -1);
756 neutEntryPtr->addChannel(1, 0.0, 0, -15, -6, 1);
757 neutEntryPtr->addChannel(1, 0.0, 0, 15, 6, -1);
758 neutEntryPtr->addChannel(1, 0.0, 0, -16, -5, 3);
759 neutEntryPtr->addChannel(1, 0.0, 0, 16, 5, -3);
760 neutEntryPtr->addChannel(1, 0.0, 0, -15, -6, 3);
761 neutEntryPtr->addChannel(1, 0.0, 0, 15, 6, -3);
762 neutEntryPtr->addChannel(1, 0.0, 0, -16, -5, 5);
763 neutEntryPtr->addChannel(1, 0.0, 0, 16, 5, -5);
764 neutEntryPtr->addChannel(1, 0.0, 0, -15, -6, 5);
765 neutEntryPtr->addChannel(1, 0.0, 0, 15, 6, -5);
766 neutEntryPtr->addChannel(1, 0.0, 0, -2 ,-1 ,-3);
767 neutEntryPtr->addChannel(1, 0.0, 0, 2, 1, 3);
768 neutEntryPtr->addChannel(1, 0.0, 0, -2, -1, -5);
769 neutEntryPtr->addChannel(1, 0.0, 0, 2, 1, 5);
770 neutEntryPtr->addChannel(1, 0.0, 0, -2, -3, -5);
771 neutEntryPtr->addChannel(1, 0.0, 0, 2, 3, 5);
772 neutEntryPtr->addChannel(1, 0.0, 0, -4, -1, -3);
773 neutEntryPtr->addChannel(1, 0.0, 0, 4, 1, 3);
774 neutEntryPtr->addChannel(1, 0.0, 0, -4, -1, -5);
775 neutEntryPtr->addChannel(1, 0.0, 0, 4, 1, 5);
776 neutEntryPtr->addChannel(1, 0.0, 0, -4, -3, -5);
777 neutEntryPtr->addChannel(1, 0.0, 0, 4, 3, 5);
778 neutEntryPtr->addChannel(1, 0.0, 0, -6, -1, -3);
779 neutEntryPtr->addChannel(1, 0.0, 0, 6, 1, 3);
780 neutEntryPtr->addChannel(1, 0.0, 0, -6, -1, -5);
781 neutEntryPtr->addChannel(1, 0.0, 0, 6, 1, 5);
782 neutEntryPtr->addChannel(1, 0.0, 0, -6, -3, -5);
783 neutEntryPtr->addChannel(1, 0.0, 0, 6, 3, 5);
787 neutEntryPtr->addChannel(1, 0.0, 0, 1000022, 22);
788 neutEntryPtr->addChannel(1, 0.0, 0, 1000022, 23);
789 neutEntryPtr->addChannel(1, 0.0, 0, 1000022, 25);
790 neutEntryPtr->addChannel(1, 0.0, 0, 1000022, 35);
791 neutEntryPtr->addChannel(1, 0.0, 0, 1000022, 36);
794 neutEntryPtr->addChannel(1, 0.0, 0, 1000023, 22);
795 neutEntryPtr->addChannel(1, 0.0, 0, 1000023, 23);
796 neutEntryPtr->addChannel(1, 0.0, 0, 1000023, 25);
797 neutEntryPtr->addChannel(1, 0.0, 0, 1000023, 35);
798 neutEntryPtr->addChannel(1, 0.0, 0, 1000023, 36);
802 neutEntryPtr->addChannel(1, 0.0, 0, 1000025, 22);
803 neutEntryPtr->addChannel(1, 0.0, 0, 1000025, 23);
804 neutEntryPtr->addChannel(1, 0.0, 0, 1000025, 25);
805 neutEntryPtr->addChannel(1, 0.0, 0, 1000025, 35);
806 neutEntryPtr->addChannel(1, 0.0, 0, 1000025, 36);
810 neutEntryPtr->addChannel(1, 0.0, 0, 1000035, 22);
811 neutEntryPtr->addChannel(1, 0.0, 0, 1000035, 23);
812 neutEntryPtr->addChannel(1, 0.0, 0, 1000035, 25);
813 neutEntryPtr->addChannel(1, 0.0, 0, 1000035, 35);
814 neutEntryPtr->addChannel(1, 0.0, 0, 1000035, 36);
817 neutEntryPtr->addChannel(1, 0.0, 0, 1000024, -24);
818 neutEntryPtr->addChannel(1, 0.0, 0, -1000024, 24);
819 neutEntryPtr->addChannel(1, 0.0, 0, 1000037, -24);
820 neutEntryPtr->addChannel(1, 0.0, 0, -1000037, 24);
821 neutEntryPtr->addChannel(1, 0.0, 0, 1000024, -37);
822 neutEntryPtr->addChannel(1, 0.0, 0, -1000024, 37);
823 neutEntryPtr->addChannel(1, 0.0, 0, 1000037, -37);
824 neutEntryPtr->addChannel(1, 0.0, 0, -1000037, 37);
825 neutEntryPtr->addChannel(1, 0.0, 0, 1000011, -11);
826 neutEntryPtr->addChannel(1, 0.0, 0, -1000011, 11);
827 neutEntryPtr->addChannel(1, 0.0, 0, 2000011, -11);
828 neutEntryPtr->addChannel(1, 0.0, 0, -2000011, 11);
829 neutEntryPtr->addChannel(1, 0.0, 0, 1000012, -12);
830 neutEntryPtr->addChannel(1, 0.0, 0, -1000012, 12);
831 neutEntryPtr->addChannel(1, 0.0, 0, 1000013, -13);
832 neutEntryPtr->addChannel(1, 0.0, 0, -1000013, 13);
833 neutEntryPtr->addChannel(1, 0.0, 0, 2000013, -13);
834 neutEntryPtr->addChannel(1, 0.0, 0, -2000013, 13);
835 neutEntryPtr->addChannel(1, 0.0, 0, 1000014, -14);
836 neutEntryPtr->addChannel(1, 0.0, 0, -1000014, 14);
837 neutEntryPtr->addChannel(1, 0.0, 0, 1000015, -15);
838 neutEntryPtr->addChannel(1, 0.0, 0, -1000015, 15);
839 neutEntryPtr->addChannel(1, 0.0, 0, 2000015, -15);
840 neutEntryPtr->addChannel(1, 0.0, 0, -2000015, 15);
841 neutEntryPtr->addChannel(1, 0.0, 0, 1000016, -16);
842 neutEntryPtr->addChannel(1, 0.0, 0, -1000016, 16);
843 neutEntryPtr->addChannel(1, 0.0, 0, 1000001, -1);
844 neutEntryPtr->addChannel(1, 0.0, 0, -1000001, 1);
845 neutEntryPtr->addChannel(1, 0.0, 0, 1000001, -3);
846 neutEntryPtr->addChannel(1, 0.0, 0, -1000001, 3);
847 neutEntryPtr->addChannel(1, 0.0, 0, 1000001, -5);
848 neutEntryPtr->addChannel(1, 0.0, 0, -1000001, 5);
849 neutEntryPtr->addChannel(1, 0.0, 0, 2000001, -1);
850 neutEntryPtr->addChannel(1, 0.0, 0, -2000001, 1);
851 neutEntryPtr->addChannel(1, 0.0, 0, 2000001, -3);
852 neutEntryPtr->addChannel(1, 0.0, 0, -2000001, 3);
853 neutEntryPtr->addChannel(1, 0.0, 0, 2000001, -5);
854 neutEntryPtr->addChannel(1, 0.0, 0, -2000001, 5);
855 neutEntryPtr->addChannel(1, 0.0, 0, 1000002, -2);
856 neutEntryPtr->addChannel(1, 0.0, 0, -1000002, 2);
857 neutEntryPtr->addChannel(1, 0.0, 0, 1000002, -4);
858 neutEntryPtr->addChannel(1, 0.0, 0, -1000002, 4);
859 neutEntryPtr->addChannel(1, 0.0, 0, 1000002, -6);
860 neutEntryPtr->addChannel(1, 0.0, 0, -1000002, 6);
861 neutEntryPtr->addChannel(1, 0.0, 0, 2000002, -2);
862 neutEntryPtr->addChannel(1, 0.0, 0, -2000002, 2);
863 neutEntryPtr->addChannel(1, 0.0, 0, 2000002, -4);
864 neutEntryPtr->addChannel(1, 0.0, 0, -2000002, 4);
865 neutEntryPtr->addChannel(1, 0.0, 0, 2000002, -6);
866 neutEntryPtr->addChannel(1, 0.0, 0, -2000002, 6);
867 neutEntryPtr->addChannel(1, 0.0, 0, 1000003, -1);
868 neutEntryPtr->addChannel(1, 0.0, 0, -1000003, 1);
869 neutEntryPtr->addChannel(1, 0.0, 0, 1000003, -3);
870 neutEntryPtr->addChannel(1, 0.0, 0, -1000003, 3);
871 neutEntryPtr->addChannel(1, 0.0, 0, 1000003, -5);
872 neutEntryPtr->addChannel(1, 0.0, 0, -1000003, 5);
873 neutEntryPtr->addChannel(1, 0.0, 0, 2000003, -1);
874 neutEntryPtr->addChannel(1, 0.0, 0, -2000003, 1);
875 neutEntryPtr->addChannel(1, 0.0, 0, 2000003, -3);
876 neutEntryPtr->addChannel(1, 0.0, 0, -2000003, 3);
877 neutEntryPtr->addChannel(1, 0.0, 0, 2000003, -5);
878 neutEntryPtr->addChannel(1, 0.0, 0, -2000003, 5);
879 neutEntryPtr->addChannel(1, 0.0, 0, 1000004, -2);
880 neutEntryPtr->addChannel(1, 0.0, 0, -1000004, 2);
881 neutEntryPtr->addChannel(1, 0.0, 0, 1000004, -4);
882 neutEntryPtr->addChannel(1, 0.0, 0, -1000004, 4);
883 neutEntryPtr->addChannel(1, 0.0, 0, 1000004, -6);
884 neutEntryPtr->addChannel(1, 0.0, 0, -1000004, 6);
885 neutEntryPtr->addChannel(1, 0.0, 0, 2000004, -2);
886 neutEntryPtr->addChannel(1, 0.0, 0, -2000004, 2);
887 neutEntryPtr->addChannel(1, 0.0, 0, 2000004, -4);
888 neutEntryPtr->addChannel(1, 0.0, 0, -2000004, 4);
889 neutEntryPtr->addChannel(1, 0.0, 0, 2000004, -6);
890 neutEntryPtr->addChannel(1, 0.0, 0, -2000004, 6);
891 neutEntryPtr->addChannel(1, 0.0, 0, 1000005, -1);
892 neutEntryPtr->addChannel(1, 0.0, 0, -1000005, 1);
893 neutEntryPtr->addChannel(1, 0.0, 0, 1000005, -3);
894 neutEntryPtr->addChannel(1, 0.0, 0, -1000005, 3);
895 neutEntryPtr->addChannel(1, 0.0, 0, 1000005, -5);
896 neutEntryPtr->addChannel(1, 0.0, 0, -1000005, 5);
897 neutEntryPtr->addChannel(1, 0.0, 0, 2000005, -1);
898 neutEntryPtr->addChannel(1, 0.0, 0, -2000005, 1);
899 neutEntryPtr->addChannel(1, 0.0, 0, 2000005, -3);
900 neutEntryPtr->addChannel(1, 0.0, 0, -2000005, 3);
901 neutEntryPtr->addChannel(1, 0.0, 0, 2000005, -5);
902 neutEntryPtr->addChannel(1, 0.0, 0, -2000005, 5);
903 neutEntryPtr->addChannel(1, 0.0, 0, 1000006, -6);
904 neutEntryPtr->addChannel(1, 0.0, 0, -1000006, 6);
905 neutEntryPtr->addChannel(1, 0.0, 0, 1000006, -2);
906 neutEntryPtr->addChannel(1, 0.0, 0, -1000006, 2);
907 neutEntryPtr->addChannel(1, 0.0, 0, 1000006, -4);
908 neutEntryPtr->addChannel(1, 0.0, 0, -1000006, 4);
909 neutEntryPtr->addChannel(1, 0.0, 0, 2000006, -6);
910 neutEntryPtr->addChannel(1, 0.0, 0, -2000006, 6);
929 void ResonanceNeut::initConstants() {
931 s2W = coupSUSYPtr->sin2W;
944 void ResonanceNeut::calcPreFac(
bool) {
947 alpEM = coupSUSYPtr->alphaEM(mHat * mHat);
948 preFac = alpEM / (8.0 * s2W * pow(mHat,3));
956 void ResonanceNeut::calcWidth(
bool){
960 if (ps == 0.)
return;
964 kinFac = mHat * mHat - mf1 * mf1 + mf2 * mf2;
965 kinFac2 = pow(mHat,4) + pow(mf1,4) - 2.0 * pow(mf2,4)
966 + pow2(mHat) * pow2(mf2) + pow2(mf1) * pow2(mf2)
967 - 2.0 * pow2(mHat) * pow2(mf1);
970 if (idRes == 1000022)
return;
973 int iNeut1 = coupSUSYPtr->typeNeut(idRes);
974 int iNeut2 = coupSUSYPtr->typeNeut(id1Abs);
975 int iChar1 = coupSUSYPtr->typeChar(id1Abs);
977 if (iNeut2>0 && id2Abs == 23){
979 fac = kinFac2 * (norm(coupSUSYPtr->OLpp[iNeut1][iNeut2])
980 + norm(coupSUSYPtr->ORpp[iNeut1][iNeut2]));
981 fac -= 12.0 * mHat * mf1 * pow2(mf2)
982 * real(coupSUSYPtr->OLpp[iNeut1][iNeut2]
983 * conj(coupSUSYPtr->ORpp[iNeut1][iNeut2]));
984 fac /= pow2(mf2) * (1.0 - s2W);
986 else if (iChar1>0 && id2Abs==24){
989 fac = kinFac2 * (norm(coupSUSYPtr->OL[iNeut1][iChar1])
990 + norm(coupSUSYPtr->OR[iNeut1][iChar1]));
991 fac -= 12.0 * mHat * mf1 * pow2(mf2)
992 * real(coupSUSYPtr->OL[iNeut1][iChar1]
993 * conj(coupSUSYPtr->OR[iNeut1][iChar1]));
996 else if (id1Abs > 1000000 && id1Abs%100 < 7 && id2Abs < 7){
998 bool idown = (id1Abs%2 == 1);
999 int iq = (id2Abs + 1 )/ 2;
1000 int isq = (abs(id1Abs)/1000000 == 2) ? (abs(id1Abs)%10+1)/2 + 3
1001 : (abs(id1Abs)%10+1)/2;
1004 fac = kinFac * (norm(coupSUSYPtr->LsddX[isq][iq][iNeut1])
1005 + norm(coupSUSYPtr->RsddX[isq][iq][iNeut1]));
1006 fac += 4.0 * mHat * mf2 * real(coupSUSYPtr->LsddX[isq][iq][iNeut1]
1007 * conj(coupSUSYPtr->RsddX[isq][iq][iNeut1]));
1010 fac = kinFac * (norm(coupSUSYPtr->LsuuX[isq][iq][iNeut1])
1011 + norm(coupSUSYPtr->RsuuX[isq][iq][iNeut1]));
1012 fac += 4.0 * mHat * mf2 * real(coupSUSYPtr->LsuuX[isq][iq][iNeut1]
1013 * conj(coupSUSYPtr->RsuuX[isq][iq][iNeut1]));
1016 fac *= 6.0/(1 - s2W);
1018 else if (id1Abs > 2000010 && id1Abs%2 == 0 ) {
1022 else if (id1Abs > 1000000 && id1Abs%100 > 10 && id1Abs%100 < 17
1026 bool idown = id2Abs%2;
1027 int il = (id2Abs - 9)/ 2;
1028 int isl = (abs(id1Abs)/1000000 == 2) ? (abs(id1Abs)%10+1)/2 + 3
1029 : (abs(id1Abs)%10+1)/2;
1032 fac = kinFac * (norm(coupSUSYPtr->LsllX[isl][il][iNeut1])
1033 + norm(coupSUSYPtr->RsllX[isl][il][iNeut1]));
1034 fac += 4.0 * mHat * mf2 * real(coupSUSYPtr->LsllX[isl][il][iNeut1]
1035 * conj(coupSUSYPtr->RsllX[isl][il][iNeut1]));
1038 fac = kinFac * (norm(coupSUSYPtr->LsvvX[isl][il][iNeut1]));
1040 fac *= 2.0/(1 - s2W);
1044 widNow = fac * preFac * ps * pow2(mHat);
1046 cout<<idRes<<
":: id1:"<<id1Abs<<
" id2:"<<id2Abs<<
" Width: ";
1047 cout<<scientific<<widNow<<endl;
1060 widNow *= 12.0 /(pow3(2.0 * M_PI * mHat) * 32.0);
1075 bool ResonanceChar::getChannels(
int idPDG){
1078 int iChar = coupSUSYPtr->typeChar(idPDG);
1079 if (iChar < 1)
return false;
1081 ParticleDataEntry* charEntryPtr
1082 = particleDataPtr->particleDataEntryPtr(idPDG);
1085 charEntryPtr->clearChannels();
1087 charEntryPtr->addChannel(1, 0.0, 0, 1000022, 24);
1088 charEntryPtr->addChannel(1, 0.0, 0, 1000023, 24);
1089 charEntryPtr->addChannel(1, 0.0, 0, 1000025, 24);
1090 charEntryPtr->addChannel(1, 0.0, 0, 1000035, 24);
1091 charEntryPtr->addChannel(1, 0.0, 0, 1000022, 37);
1092 charEntryPtr->addChannel(1, 0.0, 0, 1000023, 37);
1093 charEntryPtr->addChannel(1, 0.0, 0, 1000025, 37);
1094 charEntryPtr->addChannel(1, 0.0, 0, 1000035, 37);
1095 charEntryPtr->addChannel(1, 0.0, 0, 1000012, -11);
1096 charEntryPtr->addChannel(1, 0.0, 0, -1000011, 12);
1097 charEntryPtr->addChannel(1, 0.0, 0, -2000011, 12);
1098 charEntryPtr->addChannel(1, 0.0, 0, 1000014, -13);
1099 charEntryPtr->addChannel(1, 0.0, 0, -1000013, 14);
1100 charEntryPtr->addChannel(1, 0.0, 0, -2000013, 14);
1101 charEntryPtr->addChannel(1, 0.0, 0, 1000016, -15);
1102 charEntryPtr->addChannel(1, 0.0, 0, -1000015, 16);
1103 charEntryPtr->addChannel(1, 0.0, 0, -2000015, 16);
1104 charEntryPtr->addChannel(1, 0.0, 0, 1000002, -1);
1105 charEntryPtr->addChannel(1, 0.0, 0, 1000002, -3);
1106 charEntryPtr->addChannel(1, 0.0, 0, 1000002, -5);
1107 charEntryPtr->addChannel(1, 0.0, 0, 2000002, -1);
1108 charEntryPtr->addChannel(1, 0.0, 0, 2000002, -3);
1109 charEntryPtr->addChannel(1, 0.0, 0, 2000002, -5);
1110 charEntryPtr->addChannel(1, 0.0, 0, -1000001, 2);
1111 charEntryPtr->addChannel(1, 0.0, 0, -1000001, 4);
1112 charEntryPtr->addChannel(1, 0.0, 0, -1000001, 6);
1113 charEntryPtr->addChannel(1, 0.0, 0, -2000001, 2);
1114 charEntryPtr->addChannel(1, 0.0, 0, -2000001, 4);
1115 charEntryPtr->addChannel(1, 0.0, 0, -2000001, 6);
1116 charEntryPtr->addChannel(1, 0.0, 0, 1000004, -1);
1117 charEntryPtr->addChannel(1, 0.0, 0, 1000004, -3);
1118 charEntryPtr->addChannel(1, 0.0, 0, 1000004, -5);
1119 charEntryPtr->addChannel(1, 0.0, 0, 2000004, -1);
1120 charEntryPtr->addChannel(1, 0.0, 0, 2000004, -3);
1121 charEntryPtr->addChannel(1, 0.0, 0, 2000004, -5);
1122 charEntryPtr->addChannel(1, 0.0, 0, -1000003, 2);
1123 charEntryPtr->addChannel(1, 0.0, 0, -1000003, 4);
1124 charEntryPtr->addChannel(1, 0.0, 0, -1000003, 6);
1125 charEntryPtr->addChannel(1, 0.0, 0, -2000003, 2);
1126 charEntryPtr->addChannel(1, 0.0, 0, -2000003, 4);
1127 charEntryPtr->addChannel(1, 0.0, 0, -2000003, 6);
1128 charEntryPtr->addChannel(1, 0.0, 0, 1000006, -1);
1129 charEntryPtr->addChannel(1, 0.0, 0, 1000006, -3);
1130 charEntryPtr->addChannel(1, 0.0, 0, 1000006, -5);
1131 charEntryPtr->addChannel(1, 0.0, 0, 2000006, -1);
1132 charEntryPtr->addChannel(1, 0.0, 0, 2000006, -3);
1133 charEntryPtr->addChannel(1, 0.0, 0, 2000006, -5);
1134 charEntryPtr->addChannel(1, 0.0, 0, -1000005, 2);
1135 charEntryPtr->addChannel(1, 0.0, 0, -1000005, 4);
1136 charEntryPtr->addChannel(1, 0.0, 0, -1000005, 6);
1137 charEntryPtr->addChannel(1, 0.0, 0, -2000005, 2);
1138 charEntryPtr->addChannel(1, 0.0, 0, -2000005, 4);
1139 charEntryPtr->addChannel(1, 0.0, 0, -2000005, 6);
1142 charEntryPtr->addChannel(1, 0.0, 0, 1000024, 23);
1143 charEntryPtr->addChannel(1, 0.0, 0, 1000024, 25);
1144 charEntryPtr->addChannel(1, 0.0, 0, 1000024, 35);
1145 charEntryPtr->addChannel(1, 0.0, 0, 1000024, 36);
1160 void ResonanceChar::initConstants() {
1162 s2W = coupSUSYPtr->sin2W;
1171 void ResonanceChar::calcPreFac(
bool) {
1173 alpEM = coupSUSYPtr->alphaEM(mHat * mHat);
1174 preFac = alpEM / (8.0 * s2W * pow(mHat,3));
1183 void ResonanceChar::calcWidth(
bool) {
1186 if (ps == 0.)
return;
1190 kinFac = mHat * mHat - mf1 * mf1 + mf2 * mf2;
1191 kinFac2 = pow(mHat,4) + pow(mf1,4) - 2.0 * pow(mf2,4)
1192 + pow2(mHat) * pow2(mf2) + pow2(mf1)
1193 * pow2(mf2) - 2.0 * pow2(mHat) * pow2(mf1);
1195 int idChar1 = coupSUSYPtr->typeChar(idRes);
1196 int idChar2 = coupSUSYPtr->typeChar(id1Abs);
1197 int idNeut1 = coupSUSYPtr->typeNeut(id1Abs);
1199 if (idChar2>0 && id2Abs == 23){
1201 fac = kinFac2 * (norm(coupSUSYPtr->OLp[idChar1][idChar2])
1202 + norm(coupSUSYPtr->ORp[idChar1][idChar2]));
1203 fac -= 12.0 * mHat * mf1 * pow2(mf2)
1204 * real(coupSUSYPtr->OLp[idChar1][idChar2]
1205 * conj(coupSUSYPtr->ORp[idChar1][idChar2]));
1206 fac /= pow2(mf2) * (1.0 - s2W);
1208 else if (idNeut1>0 && id2Abs==24){
1211 fac = kinFac2 * (norm(coupSUSYPtr->OL[idNeut1][idChar1])
1212 + norm(coupSUSYPtr->OR[idNeut1][idChar1]));
1213 fac -= 12.0 * mHat * mf1 * pow2(mf2)
1214 * real(coupSUSYPtr->OL[idNeut1][idChar1]
1215 * conj(coupSUSYPtr->OR[idNeut1][idChar1]));
1218 else if (id1Abs > 1000000 && id1Abs%100 < 7 && id2Abs < 7){
1220 bool idown = (id1Abs%2 == 1);
1221 int iq = (id2Abs + 1 )/ 2;
1222 int isq = (abs(id1Abs)/1000000 == 2) ? (abs(id1Abs)%10+1)/2 + 3
1223 : (abs(id1Abs)%10+1)/2;
1226 fac = kinFac * (norm(coupSUSYPtr->LsduX[isq][iq][idChar1])
1227 + norm(coupSUSYPtr->RsduX[isq][iq][idChar1]));
1228 fac += 4.0 * mHat * mf2
1229 * real(coupSUSYPtr->LsduX[isq][iq][idChar1]
1230 * conj(coupSUSYPtr->RsduX[isq][iq][idChar1]));
1233 fac = kinFac * (norm(coupSUSYPtr->LsudX[isq][iq][idChar1])
1234 + norm(coupSUSYPtr->RsudX[isq][iq][idChar1]));
1235 fac += 4.0 * mHat * mf2
1236 * real(coupSUSYPtr->LsudX[isq][iq][idChar1]
1237 * conj(coupSUSYPtr->RsudX[isq][iq][idChar1]));
1239 fac *= 6.0/(1 - s2W);
1241 else if (id1Abs > 2000010 && id1Abs%2 == 0 ) {
1245 else if (id1Abs > 1000000 && id1Abs%100 > 10 && id1Abs%100 < 17
1248 bool idown = id2Abs%2;
1249 int il = (id2Abs - 9)/ 2;
1250 int isl = (abs(id1Abs)/1000000 == 2) ? (abs(id1Abs)%10+1)/2 + 3
1251 : (abs(id1Abs)%10+1)/2;
1254 fac = kinFac * (norm(coupSUSYPtr->LslvX[isl][il][idChar1])
1255 + norm(coupSUSYPtr->RslvX[isl][il][idChar1]));
1256 fac += 4.0 * mHat * mf2 * real(coupSUSYPtr->LslvX[isl][il][idChar1]
1257 * conj(coupSUSYPtr->RslvX[isl][il][idChar1]));
1260 fac = kinFac * (norm(coupSUSYPtr->LsvlX[isl][il][idChar1]));
1262 fac *= 2.0/(1 - s2W);
1266 widNow = fac * preFac * ps * pow2(mHat);
1268 cout<<idRes<<
":: id1:"<<id1Abs<<
" id2:"<<id2Abs<<
" Width: ";
1269 cout<<scientific<<widNow<<endl;
1285 bool ResonanceSlepton::getChannels(
int idPDG){
1289 int ksusy = 1000000;
1290 if (idPDG < ksusy)
return false;
1291 if(idPDG % ksusy < 7 || idPDG % ksusy > 17)
return false;
1293 ParticleDataEntry* slepEntryPtr
1294 = particleDataPtr->particleDataEntryPtr(idPDG);
1297 slepEntryPtr->clearChannels();
1299 if(idPDG % 2 == 1) {
1301 slepEntryPtr->addChannel(1, 0.0, 0, -1000024, 16);
1302 slepEntryPtr->addChannel(1, 0.0, 0, -1000037, 16);
1303 slepEntryPtr->addChannel(1, 0.0, 0, 1000022, 15);
1304 slepEntryPtr->addChannel(1, 0.0, 0, 1000023, 15);
1305 slepEntryPtr->addChannel(1, 0.0, 0, 1000025, 15);
1306 slepEntryPtr->addChannel(1, 0.0, 0, 1000035, 15);
1307 slepEntryPtr->addChannel(1, 0.0, 0, 1000016, -24);
1308 slepEntryPtr->addChannel(1, 0.0, 0, 2000016, -24);
1309 slepEntryPtr->addChannel(1, 0.0, 0, 1000016, -37);
1310 slepEntryPtr->addChannel(1, 0.0, 0, 2000016, -37);
1311 slepEntryPtr->addChannel(1, 0.0, 0, 12, 13);
1312 slepEntryPtr->addChannel(1, 0.0, 0, 12, 15);
1313 slepEntryPtr->addChannel(1, 0.0, 0, 14, 11);
1314 slepEntryPtr->addChannel(1, 0.0, 0, 14, 15);
1315 slepEntryPtr->addChannel(1, 0.0, 0, 16, 11);
1316 slepEntryPtr->addChannel(1, 0.0, 0, 16, 13);
1317 slepEntryPtr->addChannel(1, 0.0, 0, -12, 11);
1318 slepEntryPtr->addChannel(1, 0.0, 0, -12, 13);
1319 slepEntryPtr->addChannel(1, 0.0, 0, -12, 15);
1320 slepEntryPtr->addChannel(1, 0.0, 0, -14, 11);
1321 slepEntryPtr->addChannel(1, 0.0, 0, -14, 13);
1322 slepEntryPtr->addChannel(1, 0.0, 0, -14, 15);
1323 slepEntryPtr->addChannel(1, 0.0, 0, -2, 1);
1324 slepEntryPtr->addChannel(1, 0.0, 0, -2, 3);
1325 slepEntryPtr->addChannel(1, 0.0, 0, -2, 5);
1326 slepEntryPtr->addChannel(1, 0.0, 0, -4, 1);
1327 slepEntryPtr->addChannel(1, 0.0, 0, -4, 3);
1328 slepEntryPtr->addChannel(1, 0.0, 0, -4, 5);
1329 slepEntryPtr->addChannel(1, 0.0, 0, -6, 1);
1330 slepEntryPtr->addChannel(1, 0.0, 0, -6, 3);
1331 slepEntryPtr->addChannel(1, 0.0, 0, -6, 5);
1332 slepEntryPtr->addChannel(1, 0.0, 0, 1000022, 111, 16);
1333 slepEntryPtr->addChannel(1, 0.0, 0, 1000022, 113, 16);
1334 slepEntryPtr->addChannel(1, 0.0, 0, 1000022, 900111, 16);
1335 slepEntryPtr->addChannel(1, 0.0, 0, 1000022, 16, 12, 11);
1336 slepEntryPtr->addChannel(1, 0.0, 0, 1000022, 16, 14, 13);
1339 slepEntryPtr->addChannel(1, 0.0, 0, 1000024, 15);
1340 slepEntryPtr->addChannel(1, 0.0, 0, 1000037, 15);
1341 slepEntryPtr->addChannel(1, 0.0, 0, 1000022, 16);
1342 slepEntryPtr->addChannel(1, 0.0, 0, 1000023, 16);
1343 slepEntryPtr->addChannel(1, 0.0, 0, 1000025, 16);
1344 slepEntryPtr->addChannel(1, 0.0, 0, 1000035, 16);
1345 slepEntryPtr->addChannel(1, 0.0, 0, 1000015, 24);
1346 slepEntryPtr->addChannel(1, 0.0, 0, 2000015, 24);
1347 slepEntryPtr->addChannel(1, 0.0, 0, 1000015, 37);
1348 slepEntryPtr->addChannel(1, 0.0, 0, 2000015, 37);
1349 slepEntryPtr->addChannel(1, 0.0, 0, -11, 11);
1350 slepEntryPtr->addChannel(1, 0.0, 0, -11, 13);
1351 slepEntryPtr->addChannel(1, 0.0, 0, -11, 15);
1352 slepEntryPtr->addChannel(1, 0.0, 0, -13, 11);
1353 slepEntryPtr->addChannel(1, 0.0, 0, -13, 13);
1354 slepEntryPtr->addChannel(1, 0.0, 0, -13, 15);
1355 slepEntryPtr->addChannel(1, 0.0, 0, -1, 1);
1356 slepEntryPtr->addChannel(1, 0.0, 0, -1, 3);
1357 slepEntryPtr->addChannel(1, 0.0, 0, -1, 5);
1358 slepEntryPtr->addChannel(1, 0.0, 0, -3, 1);
1359 slepEntryPtr->addChannel(1, 0.0, 0, -3, 3);
1360 slepEntryPtr->addChannel(1, 0.0, 0, -3, 5);
1361 slepEntryPtr->addChannel(1, 0.0, 0, -5, 1);
1362 slepEntryPtr->addChannel(1, 0.0, 0, -5, 3);
1363 slepEntryPtr->addChannel(1, 0.0, 0, -5, 5);
1373 void ResonanceSlepton::initConstants() {
1376 s2W = coupSUSYPtr->sin2W;
1379 stauWidths.setPointers(particleDataPtr,coupSUSYPtr,infoPtr);
1387 void ResonanceSlepton::calcPreFac(
bool) {
1390 alpEM = coupSUSYPtr->alphaEM(mHat * mHat);
1391 preFac = 1.0 / (s2W * pow(mHat,3));
1399 void ResonanceSlepton::calcWidth(
bool) {
1402 int ksusy = 1000000;
1403 int isl = (abs(idRes)/ksusy == 2) ? (abs(idRes)%10+1)/2 + 3
1404 : (abs(idRes)%10+1)/2;
1405 int il = (id2Abs-9)/2;
1406 bool islep = abs(idRes)%2;
1409 if (ps == 0.)
return;
1412 double fac = 0.0 , wid = 0.0;
1417 kinFac = (mHat * mHat - mf1 * mf1 - mf2 * mf2);
1418 fac = kinFac / (16.0 * M_PI * pow(mHat,3));
1421 if (id1Abs < 17 && id2Abs < 17) {
1424 int il2 = (id1Abs - 9)/2;
1427 if(id1Abs > 10 && id2Abs > 10) {
1428 if (!coupSUSYPtr->isLLE) { widNow = 0.0;
return;}
1431 for (
int isl2=1; isl2<3; isl2++)
1432 wid += norm(coupSUSYPtr->Rsv[isl][isl2]
1433 * coupSUSYPtr->rvLLE[il][isl2][il2]);
1435 for (
int isl2=1; isl2<3; isl2++)
1436 wid += norm(coupSUSYPtr->Rsl[isl][isl2+3]
1437 * coupSUSYPtr->rvLLE[isl2][il][il2]);
1441 if(id1Abs < 10 && id2Abs < 10) {
1442 if (!coupSUSYPtr->isLQD) { widNow = 0.0;
return;}
1444 for (
int isl2=1; isl2<3; isl2++)
1445 wid += norm(coupSUSYPtr->Rsv[isl][isl2]
1446 * coupSUSYPtr->rvLQD[isl2][id1Abs][id2Abs]);
1450 for (
int isl2=1; isl2<3; isl2++)
1451 wid += norm(coupSUSYPtr->Rsl[isl][isl2+3]
1452 * coupSUSYPtr->rvLLE[isl2][id1Abs][id2Abs]);
1460 if (id1Abs > ksusy && id2Abs > 10 && id2Abs < 17) {
1461 for (
int i=1; i<6 ; i++){
1463 if (coupSUSYPtr->idNeut(i)==id1Abs && idRes%2 == id2Abs%2){
1464 fac = alpEM * preFac / (2.0 * (1 - s2W));
1466 wid = kinFac * (norm(coupSUSYPtr->LsllX[isl][il][i])
1467 + norm(coupSUSYPtr->RsllX[isl][il][i]))
1468 - 4.0 * mHat * mf2 * real(coupSUSYPtr->LsllX[isl][il][i]
1469 * conj(coupSUSYPtr->RsllX[isl][il][i]));
1471 wid = kinFac * (norm(coupSUSYPtr->LsvvX[isl][il][i])
1472 + norm(coupSUSYPtr->RsvvX[isl][il][i]))
1473 - 4.0 * mHat * mf2 * real(coupSUSYPtr->LsvvX[isl][il][i]
1474 * conj(coupSUSYPtr->RsvvX[isl][il][i]));
1478 else if (i < 3 && coupSUSYPtr->idChar(i)==id1Abs
1479 && idRes%2 != id2Abs%2){
1481 fac = alpEM * preFac / (4.0 * (1 - s2W));
1483 wid = kinFac * (norm(coupSUSYPtr->LslvX[isl][il][i])
1484 + norm(coupSUSYPtr->RslvX[isl][il][i]))
1485 - 4.0 * mHat * mf2 * real(coupSUSYPtr->LslvX[isl][il][i]
1486 * conj(coupSUSYPtr->RslvX[isl][il][i]));
1488 wid = kinFac * (norm(coupSUSYPtr->LslvX[isl][il][i])
1489 + norm(coupSUSYPtr->RslvX[isl][il][i]))
1490 - 4.0 * mHat * mf2 * real(coupSUSYPtr->LslvX[isl][il][i]
1491 * conj(coupSUSYPtr->RslvX[isl][il][i]));
1497 else if (id1Abs > ksusy+10 && id1Abs%100 < 17
1498 && (id2Abs == 23 || id2Abs == 24)){
1501 fac = alpEM * preFac/(16.0 * pow2(mf2) * (1.0 - s2W)) * pow2(ps) ;
1503 int isl2 = (id1Abs/ksusy == 2) ? (id1Abs%10+1)/2 + 3: (id1Abs%10+1)/2;
1505 if (id2Abs == 23 && id1Abs%2 == idRes%2){
1507 wid = norm(coupSUSYPtr->LslslZ[isl][isl2]
1508 + coupSUSYPtr->RslslZ[isl][isl2]);
1510 wid = norm(coupSUSYPtr->LsvsvZ[isl][isl2]
1511 + coupSUSYPtr->RsvsvZ[isl][isl2]);
1513 else if (id2Abs == 24 && id1Abs%2 != idRes%2){
1515 wid = norm(coupSUSYPtr->LslsvW[isl2][isl]);
1517 wid = norm(coupSUSYPtr->LslsvW[isl][isl2]);
1523 widNow = fac * wid * ps * pow2(mHat);
1525 if (DBSUSY) cout<<idRes<<
":: id1:"<<id1Abs<<
" id2:"<<id2Abs
1526 <<
" Width: "<<widNow<<endl;
1534 double staufac = norm(coupSUSYPtr->Rsl[isl][3])
1535 + norm(coupSUSYPtr->Rsl[isl][6]);
1536 if (staufac < 1.0e-6 || abs(mRes - particleDataPtr->m0(15)) > 0.0 )
return;
1538 widNow = stauWidths.getWidth(idRes, id2Abs);
1540 widNow = stauWidths.getWidth(idRes, id3Abs);