9 #ifndef Pythia8_SigmaQCD_H
10 #define Pythia8_SigmaQCD_H
12 #include "SigmaProcess.h"
28 virtual double sigmaHat() {
return sigmaTotPtr->sigmaND();}
31 virtual void setIdColAcol() {}
34 virtual string name()
const {
return "minimum bias";}
35 virtual int code()
const {
return 101;}
36 virtual bool isMinBias()
const {
return true;}
54 virtual double sigmaHat() {
return sigmaTotPtr->sigmaEl();}
57 virtual void setIdColAcol();
60 virtual string name()
const {
return "A B -> A B elastic";}
61 virtual int code()
const {
return 102;}
62 virtual bool isResolved()
const {
return false;}
80 virtual double sigmaHat() {
return sigmaTotPtr->sigmaXB();}
83 virtual void setIdColAcol();
86 virtual string name()
const {
return "A B -> X B single diffractive";}
87 virtual int code()
const {
return 103;}
88 virtual bool isResolved()
const {
return false;}
89 virtual bool isDiffA()
const {
return true;};
107 virtual double sigmaHat() {
return sigmaTotPtr->sigmaAX();}
110 virtual void setIdColAcol();
113 virtual string name()
const {
return "A B -> A X single diffractive";}
114 virtual int code()
const {
return 104;}
115 virtual bool isResolved()
const {
return false;}
116 virtual bool isDiffB()
const {
return true;};
134 virtual double sigmaHat() {
return sigmaTotPtr->sigmaXX();}
137 virtual void setIdColAcol();
140 virtual string name()
const {
return "A B -> X X double diffractive";}
141 virtual int code()
const {
return 105;}
142 virtual bool isResolved()
const {
return false;}
143 virtual bool isDiffA()
const {
return true;};
144 virtual bool isDiffB()
const {
return true;};
162 virtual void sigmaKin();
165 virtual double sigmaHat() {
return sigma;}
168 virtual void setIdColAcol();
171 virtual string name()
const {
return "g g -> g g";}
172 virtual int code()
const {
return 111;}
173 virtual string inFlux()
const {
return "gg";}
178 double sigTS, sigUS, sigTU, sigSum, sigma;
194 virtual void initProc();
197 virtual void sigmaKin();
200 virtual double sigmaHat() {
return sigma;}
203 virtual void setIdColAcol();
206 virtual string name()
const {
return "g g -> q qbar (uds)";}
207 virtual int code()
const {
return 112;}
208 virtual string inFlux()
const {
return "gg";}
217 double mNew, m2New, sigTS, sigUS, sigSum, sigma;
234 virtual void sigmaKin();
237 virtual double sigmaHat() {
return sigma;}
240 virtual void setIdColAcol();
243 virtual string name()
const {
return "q g -> q g";}
244 virtual int code()
const {
return 113;}
245 virtual string inFlux()
const {
return "qg";}
250 double mNew, m2New, sigTS, sigTU, sigSum, sigma;
267 virtual void sigmaKin();
270 virtual double sigmaHat();
273 virtual void setIdColAcol();
276 virtual string name()
const {
return "q q(bar)' -> q q(bar)'";}
277 virtual int code()
const {
return 114;}
278 virtual string inFlux()
const {
return "qq";}
283 double sigT, sigU, sigTU, sigST, sigSum;
299 virtual void sigmaKin();
302 virtual double sigmaHat() {
return sigma;}
305 virtual void setIdColAcol();
308 virtual string name()
const {
return "q qbar -> g g";}
309 virtual int code()
const {
return 115;}
310 virtual string inFlux()
const {
return "qqbarSame";}
315 double sigTS, sigUS, sigSum, sigma;
331 virtual void initProc();
334 virtual void sigmaKin();
337 virtual double sigmaHat() {
return sigma;}
340 virtual void setIdColAcol();
343 virtual string name()
const {
return "q qbar -> q' qbar' (uds)";}
344 virtual int code()
const {
return 116;}
345 virtual string inFlux()
const {
return "qqbarSame";}
354 double mNew, m2New, sigS, sigma;
367 Sigma2gg2QQbar(
int idIn,
int codeIn) : idNew(idIn), codeSave(codeIn) {}
370 virtual void initProc();
373 virtual void sigmaKin();
376 virtual double sigmaHat() {
return sigma;}
379 virtual void setIdColAcol();
382 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
385 virtual string name()
const {
return nameSave;}
386 virtual int code()
const {
return codeSave;}
387 virtual string inFlux()
const {
return "gg";}
388 virtual int id3Mass()
const {
return idNew;}
389 virtual int id4Mass()
const {
return idNew;}
396 double sigTS, sigUS, sigSum, sigma, openFracPair;
412 virtual void initProc();
415 virtual void sigmaKin();
418 virtual double sigmaHat() {
return sigma;}
421 virtual void setIdColAcol();
424 virtual double weightDecay(
Event& process,
int iResBeg,
int iResEnd);
427 virtual string name()
const {
return nameSave;}
428 virtual int code()
const {
return codeSave;}
429 virtual string inFlux()
const {
return "qqbarSame";}
430 virtual int id3Mass()
const {
return idNew;}
431 virtual int id4Mass()
const {
return idNew;}
438 double sigma, openFracPair;
454 virtual void sigmaKin();
457 virtual double sigmaHat() {
return sigma;}
460 virtual void setIdColAcol();
463 virtual string name()
const {
return "g g -> g g g";}
464 virtual int code()
const {
return 131;}
465 virtual int nFinal()
const {
return 3;}
466 virtual string inFlux()
const {
return "gg";}
467 virtual bool isQCD3body()
const {
return true;}
476 double cycle(
int i1,
int i2,
int i3,
int i4,
int i5) {
return
477 pp[i1][i2] * pp[i2][i3] * pp[i3][i4] * pp[i4][i5] * pp[i5][i1];}
493 virtual void sigmaKin();
496 virtual double sigmaHat() {
return sigma;}
499 virtual void setIdColAcol();
502 virtual string name()
const {
return "q qbar -> g g g";}
503 virtual int code()
const {
return 132;}
504 virtual int nFinal()
const {
return 3;}
505 virtual string inFlux()
const {
return "qqbarSame";}
506 virtual bool isQCD3body()
const {
return true;}
512 inline void pickFinal() { config = int( 6 * rndmPtr->flat() ); }
513 inline void mapFinal();
516 inline double m2Calc();
522 double a[3], b[3], pp[3][3], ab[3][3];
542 virtual void sigmaKin();
545 virtual double sigmaHat();
548 virtual void setIdColAcol();
551 virtual string name()
const {
return "q g -> q g g";}
552 virtual int code()
const {
return 133;}
553 virtual int nFinal()
const {
return 3;}
554 virtual string inFlux()
const {
return "qg";}
555 virtual bool isQCD3body()
const {
return true;}
577 virtual void initProc();
580 virtual void sigmaKin();
583 virtual void setIdColAcol();
586 virtual string name()
const {
return "g g -> q qbar g";}
587 virtual int code()
const {
return 138;}
588 virtual int nFinal()
const {
return 3;}
589 virtual string inFlux()
const {
return "gg";}
590 virtual bool isQCD3body()
const {
return true;}
611 virtual void sigmaKin();
614 virtual double sigmaHat();
617 virtual void setIdColAcol();
620 virtual string name()
const
621 {
return "q(bar) q(bar)' -> q(bar) q(bar)' g";}
622 virtual int code()
const {
return 134;}
623 virtual int nFinal()
const {
return 3;}
624 virtual string inFlux()
const {
return "qq";}
625 virtual bool isQCD3body()
const {
return true;}
631 inline void pickFinal() { config = int( 6 * rndmPtr->flat() ); }
632 inline void mapFinal();
635 inline double m2Calc();
641 double s, t, u, sp, tp, up;
661 virtual void initProc();
664 virtual void sigmaKin();
667 virtual double sigmaHat() {
return sigma;}
670 virtual void setIdColAcol();
673 virtual string name()
const {
return "q qbar -> q' qbar' g";}
674 virtual int code()
const {
return 136;}
675 virtual int nFinal()
const {
return 3;}
676 virtual string inFlux()
const {
return "qqbarSame";}
677 virtual bool isQCD3body()
const {
return true;}
699 virtual void initProc();
702 virtual void sigmaKin();
705 virtual double sigmaHat();
708 virtual void setIdColAcol();
711 virtual string name()
const {
return "q g -> q q' qbar'";}
712 virtual int code()
const {
return 139;}
713 virtual int nFinal()
const {
return 3;}
714 virtual string inFlux()
const {
return "qg";}
715 virtual bool isQCD3body()
const {
return true;}
739 virtual void sigmaKin();
742 virtual double sigmaHat();
745 virtual void setIdColAcol();
748 virtual string name()
const
749 {
return "q(bar) q(bar) -> q(bar) q(bar) g";}
750 virtual int code()
const {
return 135;}
751 virtual int nFinal()
const {
return 3;}
752 virtual string inFlux()
const {
return "qq";}
753 virtual bool isQCD3body()
const {
return true;}
759 inline void pickFinal() { config = int( 6 * rndmPtr->flat() ); }
760 inline void mapFinal();
763 inline double m2Calc();
769 double s, t, u, sp, tp, up;
770 double ssp, ttp, uup, s_sp, t_tp, u_up;
790 virtual void sigmaKin();
793 virtual double sigmaHat() {
return sigma;}
796 virtual void setIdColAcol();
799 virtual string name()
const {
return "q qbar -> q qbar g";}
800 virtual int code()
const {
return 137;}
801 virtual int nFinal()
const {
return 3;}
802 virtual string inFlux()
const {
return "qqbarSame";}
803 virtual bool isQCD3body()
const {
return true;}
822 virtual void sigmaKin();
825 virtual double sigmaHat();
828 virtual void setIdColAcol();
831 virtual string name()
const {
return "q g -> q q qbar";}
832 virtual int code()
const {
return 140;}
833 virtual int nFinal()
const {
return 3;}
834 virtual string inFlux()
const {
return "qg";}
835 virtual bool isQCD3body()
const {
return true;}
848 #endif // Pythia8_SigmaQCD_H