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;
408 void setup(
int topModelIn,
double mtIn,
double gammatIn,
409 double thresholdWidthIn,
double singletFracIn,
410 int alphasOrder,
double alphasValue);
413 double multiplySigmaBy(
bool inInit,
double mHat,
double m3,
double m4,
417 double imGreenSin(
double eNow,
double mtNow);
420 double imGreenOct(
double eNow,
double mtNow);
426 double mt, gammat, thrWidth, singletFrac, alps;
443 sigTS(), sigUS(), sigSum(), sigma(), openFracPair() {}
461 virtual string name()
const {
return nameSave;}
462 virtual int code()
const {
return codeSave;}
463 virtual string inFlux()
const {
return "gg";}
465 virtual int id4Mass()
const {
return idNew;}
470 int idNew, codeSave, topModel;
472 double sigTS, sigUS, sigSum, sigma, openFracPair, ggSingletFrac;
489 sigma(), openFracPair() {}
507 virtual string name()
const {
return nameSave;}
508 virtual int code()
const {
return codeSave;}
509 virtual string inFlux()
const {
return "qqbarSame";}
511 virtual int id4Mass()
const {
return idNew;}
516 int idNew, codeSave, topModel;
518 double sigma, openFracPair, qqSingletFrac;
546 virtual string name()
const {
return "g g -> g g g";}
547 virtual int code()
const {
return 131;}
549 virtual string inFlux()
const {
return "gg";}
559 double cycle(
int i1,
int i2,
int i3,
int i4,
int i5) {
return 560 pp[i1][i2] * pp[i2][i3] * pp[i3][i4] * pp[i4][i5] * pp[i5][i1];}
585 virtual string name()
const {
return "q qbar -> g g g";}
586 virtual int code()
const {
return 132;}
588 virtual string inFlux()
const {
return "qqbarSame";}
595 inline void pickFinal() { config = int( 6 *
rndmPtr->
flat() ); }
596 inline void mapFinal();
599 inline double m2Calc();
605 double a[3], b[3], pp[3][3], ab[3][3];
634 virtual string name()
const {
return "q g -> q g g";}
635 virtual int code()
const {
return 133;}
637 virtual string inFlux()
const {
return "qg";}
669 virtual string name()
const {
return "g g -> q qbar g";}
670 virtual int code()
const {
return 138;}
672 virtual string inFlux()
const {
return "gg";}
704 {
return "q(bar) q(bar)' -> q(bar) q(bar)' g";}
705 virtual int code()
const {
return 134;}
707 virtual string inFlux()
const {
return "qq";}
714 inline void pickFinal() { config = int( 6 *
rndmPtr->
flat() ); }
715 inline void mapFinal();
718 inline double m2Calc();
724 double s, t, u, sp, tp, up;
756 virtual string name()
const {
return "q qbar -> q' qbar' g";}
757 virtual int code()
const {
return 136;}
759 virtual string inFlux()
const {
return "qqbarSame";}
794 virtual string name()
const {
return "q g -> q q' qbar'";}
795 virtual int code()
const {
return 139;}
797 virtual string inFlux()
const {
return "qg";}
820 ttp(), uup(), s_sp(), t_tp(), u_up(), sigma() {}
833 {
return "q(bar) q(bar) -> q(bar) q(bar) g";}
834 virtual int code()
const {
return 135;}
836 virtual string inFlux()
const {
return "qq";}
843 inline void pickFinal() { config = int( 6 *
rndmPtr->
flat() ); }
844 inline void mapFinal();
847 inline double m2Calc();
853 double s, t, u, sp, tp, up;
854 double ssp, ttp, uup, s_sp, t_tp, u_up;
883 virtual string name()
const {
return "q qbar -> q qbar g";}
884 virtual int code()
const {
return 137;}
886 virtual string inFlux()
const {
return "qqbarSame";}
915 virtual string name()
const {
return "q g -> q q qbar";}
916 virtual int code()
const {
return 140;}
918 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:585
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:546
Sigma2gg2qqbar()
Constructor.
Definition: SigmaQCD.h:225
TopThreshold()
Trivial constructor and destructor.
Definition: SigmaQCD.h:404
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:568
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:832
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:866
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:883
Definition: StandardModel.h:23
Definition: SigmaQCD.h:898
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:145
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:636
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:498
Sigma3qq2qqgSame()
Constructor.
Definition: SigmaQCD.h:819
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:917
Sigma3qqbar2qqbargDiff()
Constructor.
Definition: SigmaQCD.h:741
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:408
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:835
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:671
virtual double weightDecay(Event &, int, int)
Definition: SigmaProcess.h:169
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:548
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:35
Sigma3qqbar2ggg()
Constructor.
Definition: SigmaQCD.h:573
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:760
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:759
Definition: SigmaQCD.h:294
Definition: SigmaQCD.h:399
Sigma0AB2AX()
Constructor.
Definition: SigmaQCD.h:107
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:638
Rndm * rndmPtr
Pointer to the random number generator.
Definition: PhysicsBase.h:97
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:796
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:550
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:669
A derived class for g g -> g g.
Definition: SigmaQCD.h:188
Definition: SigmaQCD.h:652
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:534
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:199
Sigma3qg2qqqbarDiff()
Constructor.
Definition: SigmaQCD.h:779
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:589
Sigma0AB2AXB()
Constructor.
Definition: SigmaQCD.h:164
Sigma2gg2gg()
Constructor.
Definition: SigmaQCD.h:193
Sigma3qq2qqgDiff()
Constructor.
Definition: SigmaQCD.h:691
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:617
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:794
A derived class for q qbar -> g g.
Definition: SigmaQCD.h:326
A derived class for g g -> g g g.
Definition: SigmaQCD.h:529
Sigma2qg2qg()
Constructor.
Definition: SigmaQCD.h:266
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:707
Definition: SigmaProcess.h:545
double s
Four-products.
Definition: SigmaQCD.h:724
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:637
Definition: SigmaProcess.h:401
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:915
virtual double sigmaHat()
Evaluate sigma.
Definition: SigmaQCD.h:110
Sigma3qg2qqqbarSame()
Constructor.
Definition: SigmaQCD.h:903
A derived class for g g -> Q Qbar (Q = c, b or t).
Definition: SigmaQCD.h:437
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:634
A derived class for q qbar -> Q Qbar (Q = c, b or t).
Definition: SigmaQCD.h:483
Sigma2gg2QQbar(int idIn, int codeIn)
Constructor.
Definition: SigmaQCD.h:442
Sigma2qqbar2qqbarNew()
Constructor.
Definition: SigmaQCD.h:363
Sigma2qqbar2QQbar(int idIn, int codeIn)
Constructor.
Definition: SigmaQCD.h:488
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:509
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:886
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:549
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:510
double s
Four-products.
Definition: SigmaQCD.h:853
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:918
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:919
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:708
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:887
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:507
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:241
double sigma
Values stored for colour flow selection.
Definition: SigmaQCD.h:608
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:837
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:587
A derived class for minimum-bias (inelastic, nondiffractive) events.
Definition: SigmaQCD.h:20
Sigma3qg2qgg()
Constructor.
Definition: SigmaQCD.h:622
double sigma
Cross section.
Definition: SigmaQCD.h:857
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:540
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:797
Sigma0AB2AB()
Constructor.
Definition: SigmaQCD.h:52
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:758
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:836
Definition: SigmaQCD.h:261
int config
Pick/map a random final state configuration.
Definition: SigmaQCD.h:842
Sigma2qqbar2gg()
Constructor.
Definition: SigmaQCD.h:331
Info * infoPtr
Definition: PhysicsBase.h:82
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:594
Sigma3gg2qqbarg()
Constructor.
Definition: SigmaQCD.h:657
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:673
Definition: SigmaQCD.h:774
Sigma0nonDiffractive()
Constructor.
Definition: SigmaQCD.h:25
virtual int id3Mass() const
Definition: SigmaQCD.h:464
double sigma
Cross section.
Definition: SigmaQCD.h:727
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:706
Sigma2qq2qq()
Constructor.
Definition: SigmaQCD.h:299
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:672
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:579
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:703
Definition: SigmaQCD.h:736
Sigma3qqbar2qqbargSame()
Constructor.
Definition: SigmaQCD.h:871
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:798
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:452
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:756
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:885
bool doVarE
Initialization data, normally only set once.
Definition: SigmaProcess.h:309
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:750
A derived class for q q' -> q q' g.
Definition: SigmaQCD.h:686
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:119
A derived class for q q -> q q g.
Definition: SigmaQCD.h:814
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:877
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:588
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:461
int config
Pick/map a random final state configuration.
Definition: SigmaQCD.h:713
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:463