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 gammatGreenIn,
double thresholdRegionIn,
double singletFracIn,
410 int alphasOrder,
double alphasValue);
413 double multiplySigmaBy(
double mHat,
double m3,
double m4,
414 double m3Orig,
double m4Orig,
double eThr);
417 double imGreenSin(
double eNow,
double mtNow);
420 double imGreenOct(
double eNow,
double mtNow);
426 double matrixElementP2bbveevmumu(
const Event& work,
427 int ib,
int ibb,
int ive,
int ie,
int ivm,
int im);
433 double mt, gammat, gammatGreen, thrRegion, singletFrac, alps;
453 topModel(), topAngles(), topAnglesNow(), nameSave(), sigTS(), sigUS(),
454 sigSum(), sigma(), openFracPair(), ggSingletFrac(), eBegDamp(),
473 virtual string name()
const {
return nameSave;}
474 virtual int code()
const {
return codeSave;}
475 virtual string inFlux()
const {
return "gg";}
477 virtual int id4Mass()
const {
return idNew;}
482 int idNew, codeSave, topModel;
483 bool topAngles, topAnglesNow;
485 double sigTS, sigUS, sigSum, sigma, openFracPair, ggSingletFrac,
503 topModel(), topAngles(), topAnglesNow(), nameSave(), sigma(),
504 openFracPair(), qqSingletFrac(), eBegDamp(), eEndDamp() {}
522 virtual string name()
const {
return nameSave;}
523 virtual int code()
const {
return codeSave;}
524 virtual string inFlux()
const {
return "qqbarSame";}
526 virtual int id4Mass()
const {
return idNew;}
531 int idNew, codeSave, topModel;
532 bool topAngles, topAnglesNow;
534 double sigma, openFracPair, qqSingletFrac, eBegDamp, eEndDamp;
562 virtual string name()
const {
return "g g -> g g g";}
563 virtual int code()
const {
return 131;}
565 virtual string inFlux()
const {
return "gg";}
575 double cycle(
int i1,
int i2,
int i3,
int i4,
int i5) {
return 576 pp[i1][i2] * pp[i2][i3] * pp[i3][i4] * pp[i4][i5] * pp[i5][i1];}
601 virtual string name()
const {
return "q qbar -> g g g";}
602 virtual int code()
const {
return 132;}
604 virtual string inFlux()
const {
return "qqbarSame";}
611 inline void pickFinal() { config = int( 6 *
rndmPtr->
flat() ); }
612 inline void mapFinal();
615 inline double m2Calc();
621 double a[3], b[3], pp[3][3], ab[3][3];
650 virtual string name()
const {
return "q g -> q g g";}
651 virtual int code()
const {
return 133;}
653 virtual string inFlux()
const {
return "qg";}
685 virtual string name()
const {
return "g g -> q qbar g";}
686 virtual int code()
const {
return 138;}
688 virtual string inFlux()
const {
return "gg";}
720 {
return "q(bar) q(bar)' -> q(bar) q(bar)' g";}
721 virtual int code()
const {
return 134;}
723 virtual string inFlux()
const {
return "qq";}
730 inline void pickFinal() { config = int( 6 *
rndmPtr->
flat() ); }
731 inline void mapFinal();
734 inline double m2Calc();
740 double s, t, u, sp, tp, up;
772 virtual string name()
const {
return "q qbar -> q' qbar' g";}
773 virtual int code()
const {
return 136;}
775 virtual string inFlux()
const {
return "qqbarSame";}
810 virtual string name()
const {
return "q g -> q q' qbar'";}
811 virtual int code()
const {
return 139;}
813 virtual string inFlux()
const {
return "qg";}
836 ttp(), uup(), s_sp(), t_tp(), u_up(), sigma() {}
849 {
return "q(bar) q(bar) -> q(bar) q(bar) g";}
850 virtual int code()
const {
return 135;}
852 virtual string inFlux()
const {
return "qq";}
859 inline void pickFinal() { config = int( 6 *
rndmPtr->
flat() ); }
860 inline void mapFinal();
863 inline double m2Calc();
869 double s, t, u, sp, tp, up;
870 double ssp, ttp, uup, s_sp, t_tp, u_up;
899 virtual string name()
const {
return "q qbar -> q qbar g";}
900 virtual int code()
const {
return 137;}
902 virtual string inFlux()
const {
return "qqbarSame";}
931 virtual string name()
const {
return "q g -> q q qbar";}
932 virtual int code()
const {
return 140;}
934 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:601
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:562
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:584
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:848
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:882
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:899
Definition: StandardModel.h:23
Definition: SigmaQCD.h:914
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:145
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:652
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:513
Sigma3qq2qqgSame()
Constructor.
Definition: SigmaQCD.h:835
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:933
Sigma3qqbar2qqbargDiff()
Constructor.
Definition: SigmaQCD.h:757
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:851
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:687
virtual double weightDecay(Event &, int, int)
Definition: SigmaProcess.h:172
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:564
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:35
Sigma3qqbar2ggg()
Constructor.
Definition: SigmaQCD.h:589
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:776
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:775
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:654
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:812
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:566
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:685
A derived class for g g -> g g.
Definition: SigmaQCD.h:188
Definition: SigmaQCD.h:668
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:550
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:199
Sigma3qg2qqqbarDiff()
Constructor.
Definition: SigmaQCD.h:795
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:605
Sigma0AB2AXB()
Constructor.
Definition: SigmaQCD.h:164
Sigma2gg2gg()
Constructor.
Definition: SigmaQCD.h:193
Sigma3qq2qqgDiff()
Constructor.
Definition: SigmaQCD.h:707
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:633
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:810
A derived class for q qbar -> g g.
Definition: SigmaQCD.h:326
A derived class for g g -> g g g.
Definition: SigmaQCD.h:545
Sigma2qg2qg()
Constructor.
Definition: SigmaQCD.h:266
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:723
Definition: SigmaProcess.h:551
double s
Four-products.
Definition: SigmaQCD.h:740
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:653
Definition: SigmaProcess.h:407
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:931
virtual double sigmaHat()
Evaluate sigma.
Definition: SigmaQCD.h:110
Sigma3qg2qqqbarSame()
Constructor.
Definition: SigmaQCD.h:919
A derived class for g g -> Q Qbar (Q = c, b or t).
Definition: SigmaQCD.h:447
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:650
A derived class for q qbar -> Q Qbar (Q = c, b or t).
Definition: SigmaQCD.h:497
Sigma2gg2QQbar(int idIn, int codeIn)
Constructor.
Definition: SigmaQCD.h:452
Sigma2qqbar2qqbarNew()
Constructor.
Definition: SigmaQCD.h:363
Sigma2qqbar2QQbar(int idIn, int codeIn)
Constructor.
Definition: SigmaQCD.h:502
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:524
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:902
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:565
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:485
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:373
virtual int id3Mass() const
Definition: SigmaQCD.h:525
double s
Four-products.
Definition: SigmaQCD.h:869
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:934
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:935
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:724
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:903
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:522
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:241
double sigma
Values stored for colour flow selection.
Definition: SigmaQCD.h:624
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:853
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:603
A derived class for minimum-bias (inelastic, nondiffractive) events.
Definition: SigmaQCD.h:20
Sigma3qg2qgg()
Constructor.
Definition: SigmaQCD.h:638
double sigma
Cross section.
Definition: SigmaQCD.h:873
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:556
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:813
Sigma0AB2AB()
Constructor.
Definition: SigmaQCD.h:52
virtual int nFinal() const
Number of final-state particles.
Definition: SigmaQCD.h:774
double weightTopDecay(Event &process, int iResBeg, int iResEnd)
Common code for top and Higgs secondary decay angular weights.
Definition: SigmaProcess.cc:555
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:852
Definition: SigmaQCD.h:261
int config
Pick/map a random final state configuration.
Definition: SigmaQCD.h:858
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:610
Sigma3gg2qqbarg()
Constructor.
Definition: SigmaQCD.h:673
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:689
Definition: SigmaQCD.h:790
Sigma0nonDiffractive()
Constructor.
Definition: SigmaQCD.h:25
virtual int id3Mass() const
Definition: SigmaQCD.h:476
double sigma
Cross section.
Definition: SigmaQCD.h:743
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:722
Sigma2qq2qq()
Constructor.
Definition: SigmaQCD.h:299
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:688
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:595
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:719
Definition: SigmaQCD.h:752
Sigma3qqbar2qqbargSame()
Constructor.
Definition: SigmaQCD.h:887
virtual bool isQCD3body() const
QCD 2 -> 3 processes need special phase space selection machinery.
Definition: SigmaQCD.h:814
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:464
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:772
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:901
bool doVarE
Initialization data, normally only set once.
Definition: SigmaProcess.h:315
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:766
A derived class for q q' -> q q' g.
Definition: SigmaQCD.h:702
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:830
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaQCD.h:893
int idA
Information on incoming beams.
Definition: SigmaProcess.h:327
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:604
virtual string name() const
Info on the subprocess.
Definition: SigmaQCD.h:473
int config
Pick/map a random final state configuration.
Definition: SigmaQCD.h:729
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaQCD.h:475