9 #ifndef Pythia8_SigmaQCD_H 10 #define Pythia8_SigmaQCD_H 12 #include "Pythia8/SigmaProcess.h" 35 virtual string name()
const {
return "non-diffractive";}
36 virtual int code()
const {
return 101;}
56 return sigmaCmbPtr->sigmaPartial(
idA, idB,
infoPtr->eCM(), mA, mB, 2);}
62 virtual string name()
const {
return "A B -> A B elastic";}
63 virtual int code()
const {
return 102;}
64 virtual bool isResolved()
const {
return false;}
83 return sigmaCmbPtr->sigmaPartial(
idA, idB,
infoPtr->eCM(), mA, mB, 3);}
89 virtual string name()
const {
return "A B -> X B single diffractive";}
90 virtual int code()
const {
return 103;}
91 virtual bool isResolved()
const {
return false;}
92 virtual bool isDiffA()
const {
return true;};
111 return sigmaCmbPtr->sigmaPartial(
idA, idB,
infoPtr->eCM(), mA, mB, 4);}
117 virtual string name()
const {
return "A B -> A X single diffractive";}
118 virtual int code()
const {
return 104;}
119 virtual bool isResolved()
const {
return false;}
120 virtual bool isDiffB()
const {
return true;};
139 return sigmaCmbPtr->sigmaPartial(
idA, idB,
infoPtr->eCM(), mA, mB, 5);}
145 virtual string name()
const {
return "A B -> X X double diffractive";}
146 virtual int code()
const {
return 105;}
147 virtual bool isResolved()
const {
return false;}
148 virtual bool isDiffA()
const {
return true;};
149 virtual bool isDiffB()
const {
return true;};
168 return sigmaCmbPtr->sigmaPartial(
idA, idB,
infoPtr->eCM(), mA, mB, 6);}
174 virtual string name()
const {
return "A B -> A X B central diffractive";}
175 virtual int code()
const {
return 106;}
177 virtual bool isResolved()
const {
return false;}
178 virtual bool isDiffC()
const {
return true;};
205 virtual string name()
const {
return "g g -> g g";}
206 virtual int code()
const {
return 111;}
207 virtual string inFlux()
const {
return "gg";}
212 double sigTS, sigUS, sigTU, sigSum, sigma;
241 virtual string name()
const {
return "g g -> q qbar (uds)";}
242 virtual int code()
const {
return 112;}
243 virtual string inFlux()
const {
return "gg";}
252 double mNew, m2New, sigTS, sigUS, sigSum, sigma;
278 virtual string name()
const {
return "q g -> q g";}
279 virtual int code()
const {
return 113;}
280 virtual string inFlux()
const {
return "qg";}
285 double sigTS, sigTU, sigSum, sigma;
311 virtual string name()
const {
return "q q(bar)' -> q q(bar)'";}
312 virtual int code()
const {
return 114;}
313 virtual string inFlux()
const {
return "qq";}
318 double sigT, sigU, sigTU, sigST, sigSum;
343 virtual string name()
const {
return "q qbar -> g g";}
344 virtual int code()
const {
return 115;}
345 virtual string inFlux()
const {
return "qqbarSame";}
350 double sigTS, sigUS, sigSum, sigma;
379 virtual string name()
const {
return "q qbar -> q' qbar' (uds)";}
380 virtual int code()
const {
return 116;}
381 virtual string inFlux()
const {
return "qqbarSame";}
390 double mNew, m2New, sigS, sigma;
404 sigTS(), sigUS(), sigSum(), sigma(), openFracPair() {}
422 virtual string name()
const {
return nameSave;}
423 virtual int code()
const {
return codeSave;}
424 virtual string inFlux()
const {
return "gg";}
426 virtual int id4Mass()
const {
return idNew;}
433 double sigTS, sigUS, sigSum, sigma, openFracPair;
447 sigma(), openFracPair() {}
465 virtual string name()
const {
return nameSave;}
466 virtual int code()
const {
return codeSave;}
467 virtual string inFlux()
const {
return "qqbarSame";}
469 virtual int id4Mass()
const {
return idNew;}
476 double sigma, openFracPair;
501 virtual string name()
const {
return "g g -> g g g";}
502 virtual int code()
const {
return 131;}
504 virtual string inFlux()
const {
return "gg";}
514 double cycle(
int i1,
int i2,
int i3,
int i4,
int i5) {
return 515 pp[i1][i2] * pp[i2][i3] * pp[i3][i4] * pp[i4][i5] * pp[i5][i1];}
540 virtual string name()
const {
return "q qbar -> g g g";}
541 virtual int code()
const {
return 132;}
543 virtual string inFlux()
const {
return "qqbarSame";}
550 inline void pickFinal() { config = int( 6 *
rndmPtr->
flat() ); }
551 inline void mapFinal();
554 inline double m2Calc();
560 double a[3], b[3], pp[3][3], ab[3][3];
589 virtual string name()
const {
return "q g -> q g g";}
590 virtual int code()
const {
return 133;}
592 virtual string inFlux()
const {
return "qg";}
624 virtual string name()
const {
return "g g -> q qbar g";}
625 virtual int code()
const {
return 138;}
627 virtual string inFlux()
const {
return "gg";}
659 {
return "q(bar) q(bar)' -> q(bar) q(bar)' g";}
660 virtual int code()
const {
return 134;}
662 virtual string inFlux()
const {
return "qq";}
669 inline void pickFinal() { config = int( 6 *
rndmPtr->
flat() ); }
670 inline void mapFinal();
673 inline double m2Calc();
679 double s, t, u, sp, tp, up;
711 virtual string name()
const {
return "q qbar -> q' qbar' g";}
712 virtual int code()
const {
return 136;}
714 virtual string inFlux()
const {
return "qqbarSame";}
749 virtual string name()
const {
return "q g -> q q' qbar'";}
750 virtual int code()
const {
return 139;}
752 virtual string inFlux()
const {
return "qg";}
775 ttp(), uup(), s_sp(), t_tp(), u_up(), sigma() {}
788 {
return "q(bar) q(bar) -> q(bar) q(bar) g";}
789 virtual int code()
const {
return 135;}
791 virtual string inFlux()
const {
return "qq";}
798 inline void pickFinal() { config = int( 6 *
rndmPtr->
flat() ); }
799 inline void mapFinal();
802 inline double m2Calc();
808 double s, t, u, sp, tp, up;
809 double ssp, ttp, uup, s_sp, t_tp, u_up;
838 virtual string name()
const {
return "q qbar -> q qbar g";}
839 virtual int code()
const {
return 137;}
841 virtual string inFlux()
const {
return "qqbarSame";}
870 virtual string name()
const {
return "q g -> q q qbar";}
871 virtual int code()
const {
return 140;}
873 virtual string inFlux()
const {
return "qg";}
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:62
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:540
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:501
Sigma2gg2qqbar()
Constructor.
Definition: SigmaQCD.h:225
virtual void sigmaKin()
Calculate flavour-independent parts of cross section.
Definition: SigmaProcess.h:132
A derived class for q qbar -> g g g.
Definition: SigmaQCD.h:523
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:787
Sigma0AB2XB()
Constructor.
Definition: SigmaQCD.h:79
virtual double sigmaHat()
Evaluate sigma.
Definition: SigmaQCD.h:138
double sigmaPartial(int id1, int id2, double eCM12, double m1, double m2, int type, int mixLoHi=0)
Get partial cross sections.
Definition: SigmaLowEnergy.cc:1563
A derived class for elastic scattering A B -> A B.
Definition: SigmaQCD.h:47
Definition: SigmaQCD.h:821
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:838
Definition: SigmaQCD.h:853
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:145
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:591
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:456
Sigma3qq2qqgSame()
Constructor.
Definition: SigmaQCD.h:774
virtual bool isNonDiff() const
Special treatment needed for elastic and diffractive processes.
Definition: SigmaQCD.h:37
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:872
Sigma3qqbar2qqbargDiff()
Constructor.
Definition: SigmaQCD.h:696
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:280
The Event class holds all info on the generated event.
Definition: Event.h:453
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:790
A derived class for single diffractive scattering A B -> X B.
Definition: SigmaQCD.h:74
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:313
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:626
virtual double weightDecay(Event &, int, int)
Definition: SigmaProcess.h:169
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:503
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:35
Sigma3qqbar2ggg()
Constructor.
Definition: SigmaQCD.h:528
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:343
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:715
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:714
Definition: SigmaQCD.h:294
Sigma0AB2AX()
Constructor.
Definition: SigmaQCD.h:107
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:593
Rndm * rndmPtr
Pointer to the random number generator.
Definition: PhysicsBase.h:93
A derived class for g g -> q qbar (q = u, d, s, i.e. almost massless).
Definition: SigmaQCD.h:220
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:751
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:505
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:624
A derived class for g g -> g g.
Definition: SigmaQCD.h:188
Definition: SigmaQCD.h:607
A derived class for single diffractive scattering A B -> A X.
Definition: SigmaQCD.h:102
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:311
Sigma3gg2ggg()
Constructor.
Definition: SigmaQCD.h:489
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:199
Sigma3qg2qqqbarDiff()
Constructor.
Definition: SigmaQCD.h:734
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:544
Sigma0AB2AXB()
Constructor.
Definition: SigmaQCD.h:164
Sigma2gg2gg()
Constructor.
Definition: SigmaQCD.h:193
Sigma3qq2qqgDiff()
Constructor.
Definition: SigmaQCD.h:646
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:207
virtual double sigmaHat()
Evaluate sigma.
Definition: SigmaQCD.h:167
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:278
Definition: SigmaQCD.h:572
A derived class for double diffractive scattering A B -> X X.
Definition: SigmaQCD.h:130
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:749
A derived class for q qbar -> g g.
Definition: SigmaQCD.h:326
A derived class for g g -> g g g.
Definition: SigmaQCD.h:484
Sigma2qg2qg()
Constructor.
Definition: SigmaQCD.h:266
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:662
Definition: SigmaProcess.h:545
double s
Four-products.
Definition: SigmaQCD.h:679
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:592
Definition: SigmaProcess.h:401
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:870
virtual double sigmaHat()
Evaluate sigma.
Definition: SigmaQCD.h:110
Sigma3qg2qqqbarSame()
Constructor.
Definition: SigmaQCD.h:858
A derived class for g g -> Q Qbar (Q = c, b or t).
Definition: SigmaQCD.h:398
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:176
double sigmaXB() const
Integrated diffractive cross sections.
Definition: SigmaTotal.h:181
virtual double sigmaHat()
Evaluate sigma.
Definition: SigmaQCD.h:82
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:589
A derived class for q qbar -> Q Qbar (Q = c, b or t).
Definition: SigmaQCD.h:441
Sigma2gg2QQbar(int idIn, int codeIn)
Constructor.
Definition: SigmaQCD.h:403
Sigma2qqbar2qqbarNew()
Constructor.
Definition: SigmaQCD.h:363
Sigma2qqbar2QQbar(int idIn, int codeIn)
Constructor.
Definition: SigmaQCD.h:446
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:117
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:381
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:467
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:841
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:504
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:89
virtual double sigmaHat()
Evaluate sigma.
Definition: SigmaQCD.h:55
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:337
Definition: SigmaProcess.h:479
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:373
virtual int id3Mass() const
Definition: SigmaQCD.h:468
double s
Four-products.
Definition: SigmaQCD.h:808
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:873
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:874
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:272
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:663
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:842
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:465
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:241
double sigma
Values stored for colour flow selection.
Definition: SigmaQCD.h:563
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:792
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:542
A derived class for minimum-bias (inelastic, nondiffractive) events.
Definition: SigmaQCD.h:20
Sigma3qg2qgg()
Constructor.
Definition: SigmaQCD.h:577
double sigma
Cross section.
Definition: SigmaQCD.h:812
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:495
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:752
Sigma0AB2AB()
Constructor.
Definition: SigmaQCD.h:52
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:713
Sigma0AB2XX()
Constructor.
Definition: SigmaQCD.h:135
A derived class for q qbar -> q' qbar'.
Definition: SigmaQCD.h:358
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:235
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:791
Definition: SigmaQCD.h:261
int config
Pick/map a random final state configuration.
Definition: SigmaQCD.h:797
Sigma2qqbar2gg()
Constructor.
Definition: SigmaQCD.h:331
Info * infoPtr
Definition: PhysicsBase.h:78
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:379
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:345
int config
Pick/map a random final state configuration.
Definition: SigmaQCD.h:549
Sigma3gg2qqbarg()
Constructor.
Definition: SigmaQCD.h:612
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:628
Definition: SigmaQCD.h:729
Sigma0nonDiffractive()
Constructor.
Definition: SigmaQCD.h:25
virtual int id3Mass() const
Definition: SigmaQCD.h:425
double sigma
Cross section.
Definition: SigmaQCD.h:682
double flat()
Generate next random number uniformly between 0 and 1.
Definition: Basics.cc:189
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:205
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:661
Sigma2qq2qq()
Constructor.
Definition: SigmaQCD.h:299
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:627
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:534
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:174
A derived class for central diffractive scattering A B -> A X B.
Definition: SigmaQCD.h:159
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:658
Definition: SigmaQCD.h:691
Sigma3qqbar2qqbargSame()
Constructor.
Definition: SigmaQCD.h:826
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:753
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:413
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:711
virtual void setIdColAcol()
Select flavour, colour and anticolour.
Definition: SigmaQCD.h:32
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:243
virtual double sigmaHat()
Evaluate sigma.
Definition: SigmaQCD.h:28
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:840
bool doVarE
Initialization data, normally only set once.
Definition: SigmaProcess.h:309
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:705
A derived class for q q' -> q q' g.
Definition: SigmaQCD.h:641
virtual void initProc()
Initialize process. Only used for some processes.
Definition: SigmaProcess.h:105
SigmaTotal * sigmaTotPtr
Pointers to the total/elastic/diffractive cross sections.
Definition: PhysicsBase.h:115
A derived class for q q -> q q g.
Definition: SigmaQCD.h:769
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:832
int idA
Information on incoming beams.
Definition: SigmaProcess.h:321
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:543
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:422
int config
Pick/map a random final state configuration.
Definition: SigmaQCD.h:668
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:424