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