10 #ifndef Pythia8_SigmaHiggs_H
11 #define Pythia8_SigmaHiggs_H
13 #include "Pythia8/SigmaProcess.h"
21 class Sigma1ffbar2H :
public Sigma1Process {
26 Sigma1ffbar2H(
int higgsTypeIn) : higgsType(higgsTypeIn) {}
29 virtual void initProc();
32 virtual void sigmaKin();
35 virtual double sigmaHat();
38 virtual void setIdColAcol();
41 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
44 virtual string name()
const {
return nameSave;}
45 virtual int code()
const {
return codeSave;}
46 virtual string inFlux()
const {
return "ffbarSame";}
47 virtual int resonanceA()
const {
return idRes;}
53 ParticleDataEntry* HResPtr;
54 double mRes, GammaRes, m2Res, GamMRat, sigBW, widthOut;
55 int higgsType, codeSave, idRes;
63 class Sigma1gg2H :
public Sigma1Process {
68 Sigma1gg2H(
int higgsTypeIn) : higgsType(higgsTypeIn) {}
71 virtual void initProc();
74 virtual void sigmaKin();
77 virtual double sigmaHat() {
return sigma;}
80 virtual void setIdColAcol();
83 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
86 virtual string name()
const {
return nameSave ;}
87 virtual int code()
const {
return codeSave;}
88 virtual string inFlux()
const {
return "gg";}
89 virtual int resonanceA()
const {
return idRes;}
95 ParticleDataEntry* HResPtr;
96 double mRes, GammaRes, m2Res, GamMRat, sigma;
97 int higgsType, codeSave, idRes;
105 class Sigma1gmgm2H :
public Sigma1Process {
110 Sigma1gmgm2H(
int higgsTypeIn) : higgsType(higgsTypeIn) {}
113 virtual void initProc();
116 virtual void sigmaKin();
119 virtual double sigmaHat() {
return sigma;}
122 virtual void setIdColAcol();
125 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
128 virtual string name()
const {
return nameSave;}
129 virtual int code()
const {
return codeSave;}
130 virtual string inFlux()
const {
return "gmgm";}
131 virtual int resonanceA()
const {
return idRes;}
137 ParticleDataEntry* HResPtr;
138 double mRes, GammaRes, m2Res, GamMRat, sigma;
139 int higgsType, codeSave, idRes;
147 class Sigma2ffbar2HZ :
public Sigma2Process {
152 Sigma2ffbar2HZ(
int higgsTypeIn) : higgsType(higgsTypeIn) {}
155 virtual void initProc();
158 virtual void sigmaKin();
161 virtual double sigmaHat();
164 virtual void setIdColAcol();
167 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
170 virtual string name()
const {
return nameSave;}
171 virtual int code()
const {
return codeSave;}
172 virtual string inFlux()
const {
return "ffbarSame";}
173 virtual bool isSChannel()
const {
return true;}
174 virtual int id3Mass()
const {
return idRes;}
175 virtual int id4Mass()
const {
return 23;}
176 virtual int resonanceA()
const {
return 23;}
177 virtual int gmZmode()
const {
return 2;}
182 double mZ, widZ, mZS, mwZS, thetaWRat, sigma0, openFracPair, coup2Z;
183 int higgsType, codeSave, idRes;
192 class Sigma2ffbar2HW :
public Sigma2Process {
197 Sigma2ffbar2HW(
int higgsTypeIn) : higgsType(higgsTypeIn) {}
200 virtual void initProc();
203 virtual void sigmaKin();
206 virtual double sigmaHat();
209 virtual void setIdColAcol();
212 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
215 virtual string name()
const {
return nameSave;}
216 virtual int code()
const {
return codeSave;}
217 virtual string inFlux()
const {
return "ffbarChg";}
218 virtual bool isSChannel()
const {
return true;}
219 virtual int id3Mass()
const {
return idRes;}
220 virtual int id4Mass()
const {
return 24;}
221 virtual int resonanceA()
const {
return 24;}
226 double mW, widW, mWS, mwWS, thetaWRat, sigma0, openFracPairPos,
227 openFracPairNeg, coup2W;
228 int higgsType, codeSave, idRes;
237 class Sigma3ff2HfftZZ :
public Sigma3Process {
242 Sigma3ff2HfftZZ(
int higgsTypeIn) : higgsType(higgsTypeIn) {}
245 virtual void initProc();
248 virtual void sigmaKin();
251 virtual double sigmaHat();
254 virtual void setIdColAcol();
257 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
260 virtual string name()
const {
return nameSave;}
261 virtual int code()
const {
return codeSave;}
262 virtual string inFlux()
const {
return "ff";}
263 virtual int id3Mass()
const {
return idRes;}
266 virtual int idTchan1()
const {
return 23;}
267 virtual int idTchan2()
const {
return 23;}
268 virtual double tChanFracPow1()
const {
return 0.05;}
269 virtual double tChanFracPow2()
const {
return 0.9;}
270 virtual bool useMirrorWeight()
const {
return true;}
275 double mZS, prefac, sigma1, sigma2, openFrac, coup2Z;
276 int higgsType, codeSave, idRes;
285 class Sigma3ff2HfftWW :
public Sigma3Process {
290 Sigma3ff2HfftWW(
int higgsTypeIn) : higgsType(higgsTypeIn) {}
293 virtual void initProc();
296 virtual void sigmaKin();
299 virtual double sigmaHat();
302 virtual void setIdColAcol();
305 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
308 virtual string name()
const {
return nameSave;}
309 virtual int code()
const {
return codeSave;}
310 virtual string inFlux()
const {
return "ff";}
311 virtual int id3Mass()
const {
return idRes;}
314 virtual int idTchan1()
const {
return 24;}
315 virtual int idTchan2()
const {
return 24;}
316 virtual double tChanFracPow1()
const {
return 0.05;}
317 virtual double tChanFracPow2()
const {
return 0.9;}
318 virtual bool useMirrorWeight()
const {
return true;}
323 double mWS, prefac, sigma0, openFrac, coup2W;
324 int higgsType, codeSave, idRes;
333 class Sigma3gg2HQQbar :
public Sigma3Process {
338 Sigma3gg2HQQbar(
int idIn,
int higgsTypeIn) : idNew(idIn),
339 higgsType(higgsTypeIn) {}
342 virtual void initProc();
345 virtual void sigmaKin();
348 virtual double sigmaHat() {
return sigma;}
351 virtual void setIdColAcol();
354 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
357 virtual string name()
const {
return nameSave;}
358 virtual int code()
const {
return codeSave;}
359 virtual string inFlux()
const {
return "gg";}
360 virtual int id3Mass()
const {
return idRes;}
361 virtual int id4Mass()
const {
return idNew;}
362 virtual int id5Mass()
const {
return idNew;}
365 virtual int idTchan1()
const {
return idNew;}
366 virtual int idTchan2()
const {
return idNew;}
367 virtual double tChanFracPow1()
const {
return 0.4;}
368 virtual double tChanFracPow2()
const {
return 0.2;}
369 virtual bool useMirrorWeight()
const {
return false;}
374 double prefac, sigma, openFracTriplet, coup2Q;
375 int idNew, higgsType, codeSave, idRes;
385 class Sigma3qqbar2HQQbar :
public Sigma3Process {
390 Sigma3qqbar2HQQbar(
int idIn,
int higgsTypeIn) : idNew(idIn),
391 higgsType(higgsTypeIn) {}
394 virtual void initProc();
397 virtual void sigmaKin();
400 virtual double sigmaHat() {
return sigma;}
403 virtual void setIdColAcol();
406 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
409 virtual string name()
const {
return nameSave;}
410 virtual int code()
const {
return codeSave;}
411 virtual string inFlux()
const {
return "qqbarSame";}
412 virtual int id3Mass()
const {
return idRes;}
413 virtual int id4Mass()
const {
return idNew;}
414 virtual int id5Mass()
const {
return idNew;}
417 virtual int idTchan1()
const {
return idNew;}
418 virtual int idTchan2()
const {
return idNew;}
419 virtual double tChanFracPow1()
const {
return 0.4;}
420 virtual double tChanFracPow2()
const {
return 0.2;}
421 virtual bool useMirrorWeight()
const {
return false;}
426 double prefac, sigma, openFracTriplet, coup2Q;
427 int idNew, higgsType, codeSave, idRes;
437 class Sigma2qg2Hq :
public Sigma2Process {
442 Sigma2qg2Hq(
int idIn,
int higgsTypeIn) : idNew(idIn),
443 higgsType(higgsTypeIn) {}
446 virtual void initProc();
449 virtual void sigmaKin();
452 virtual double sigmaHat();
455 virtual void setIdColAcol();
458 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
461 virtual string name()
const {
return nameSave;}
462 virtual int code()
const {
return codeSave;}
463 virtual string inFlux()
const {
return "qg";}
464 virtual int id3Mass()
const {
return idRes;}
465 virtual int id4Mass()
const {
return idNew;}
470 double m2W, thetaWRat, sigma, openFrac;
471 int idNew, higgsType, codeSave, idRes;
481 class Sigma2gg2Hglt :
public Sigma2Process {
486 Sigma2gg2Hglt(
int higgsTypeIn) : higgsType(higgsTypeIn) {}
489 virtual void initProc();
492 virtual void sigmaKin();
495 virtual double sigmaHat() {
return sigma;}
498 virtual void setIdColAcol();
501 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
504 virtual string name()
const {
return nameSave;}
505 virtual int code()
const {
return codeSave;}
506 virtual string inFlux()
const {
return "gg";}
507 virtual int id3Mass()
const {
return idRes;}
512 double widHgg, sigma, openFrac;
513 int higgsType, codeSave, idRes;
522 class Sigma2qg2Hqlt :
public Sigma2Process {
527 Sigma2qg2Hqlt(
int higgsTypeIn) : higgsType(higgsTypeIn) {}
530 virtual void initProc();
533 virtual void sigmaKin();
536 virtual double sigmaHat() {
return sigma;}
539 virtual void setIdColAcol();
542 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
545 virtual string name()
const {
return nameSave;}
546 virtual int code()
const {
return codeSave;}
547 virtual string inFlux()
const {
return "qg";}
548 virtual int id3Mass()
const {
return idRes;}
553 double widHgg, sigma, openFrac;
554 int higgsType, codeSave, idRes;
563 class Sigma2qqbar2Hglt :
public Sigma2Process {
568 Sigma2qqbar2Hglt(
int higgsTypeIn) : higgsType(higgsTypeIn) {}
571 virtual void initProc();
574 virtual void sigmaKin();
577 virtual double sigmaHat() {
return sigma;}
580 virtual void setIdColAcol();
583 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
586 virtual string name()
const {
return nameSave;}
587 virtual int code()
const {
return codeSave;}
588 virtual string inFlux()
const {
return "qqbarSame";}
589 virtual int id3Mass()
const {
return idRes;}
594 double widHgg, sigma, openFrac;
595 int higgsType, codeSave, idRes;
603 class Sigma1ffbar2Hchg :
public Sigma1Process {
608 Sigma1ffbar2Hchg() {}
611 virtual void initProc();
614 virtual void sigmaKin();
617 virtual double sigmaHat();
620 virtual void setIdColAcol();
623 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
626 virtual string name()
const {
return "f fbar' -> H+-";}
627 virtual int code()
const {
return 961;}
628 virtual string inFlux()
const {
return "ffbarChg";}
629 virtual int resonanceA()
const {
return 37;}
634 ParticleDataEntry* HResPtr;
635 double mRes, GammaRes, m2Res, GamMRat, m2W, thetaWRat, tan2Beta, sigBW,
636 widthOutPos, widthOutNeg;
644 class Sigma2qg2Hchgq :
public Sigma2Process {
649 Sigma2qg2Hchgq(
int idIn,
int codeIn,
string nameIn) : idNew(idIn),
650 codeSave(codeIn), nameSave(nameIn) {}
653 virtual void initProc();
656 virtual void sigmaKin();
659 virtual double sigmaHat();
662 virtual void setIdColAcol();
665 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
668 virtual string name()
const {
return nameSave;}
669 virtual int code()
const {
return codeSave;}
670 virtual string inFlux()
const {
return "qg";}
671 virtual int id3Mass()
const {
return 37;}
672 virtual int id4Mass()
const {
return idNew;}
677 int idNew, codeSave, idOld, idUp, idDn;
679 double m2W, thetaWRat, tan2Beta, sigma, openFracPos, openFracNeg;
687 class Sigma2ffbar2A3H12 :
public Sigma2Process {
692 Sigma2ffbar2A3H12(
int higgsTypeIn) : higgsType(higgsTypeIn) {}
695 virtual void initProc();
698 virtual void sigmaKin();
701 virtual double sigmaHat();
704 virtual void setIdColAcol();
707 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
710 virtual string name()
const {
return nameSave;}
711 virtual int code()
const {
return codeSave;}
712 virtual string inFlux()
const {
return "ffbarSame";}
713 virtual int id3Mass()
const {
return 36;}
714 virtual int id4Mass()
const {
return higgs12;}
719 int higgsType, higgs12, codeSave;
721 double coupZA3H12, m2Z, mGammaZ, thetaWRat, openFrac, sigma0;
729 class Sigma2ffbar2HchgH12 :
public Sigma2Process {
734 Sigma2ffbar2HchgH12(
int higgsTypeIn) : higgsType(higgsTypeIn) {}
737 virtual void initProc();
740 virtual void sigmaKin();
743 virtual double sigmaHat();
746 virtual void setIdColAcol();
749 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
752 virtual string name()
const {
return nameSave;}
753 virtual int code()
const {
return codeSave;}
754 virtual string inFlux()
const {
return "ffbarChg";}
755 virtual int id3Mass()
const {
return 37;}
756 virtual int id4Mass()
const {
return higgs12;}
761 int higgsType, higgs12, codeSave;
763 double coupWHchgH12, m2W, mGammaW, thetaWRat, openFracPos, openFracNeg,
772 class Sigma2ffbar2HposHneg :
public Sigma2Process {
777 Sigma2ffbar2HposHneg() {}
780 virtual void initProc();
783 virtual void sigmaKin();
786 virtual double sigmaHat();
789 virtual void setIdColAcol();
792 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
795 virtual string name()
const {
return "f fbar -> H+ H-";}
796 virtual int code()
const {
return 1085;}
797 virtual string inFlux()
const {
return "ffbarSame";}
798 virtual int id3Mass()
const {
return 37;}
799 virtual int id4Mass()
const {
return 37;}
804 double m2Z, mGammaZ, thetaWRat, eH, lH, openFrac, gamSig, intSig, resSig;
812 #endif // Pythia8_SigmaHiggs_H