LCOV - code coverage report
Current view: top level - PYTHIA8/pythia8210dev/include/Pythia8 - SigmaExtraDim.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 152 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 210 0.0 %

          Line data    Source code
       1             : // SigmaExtraDim.h is a part of the PYTHIA event generator.
       2             : // Copyright (C) 2015 Torbjorn Sjostrand.
       3             : // PYTHIA is licenced under the GNU GPL version 2, see COPYING for details.
       4             : // Please respect the MCnet Guidelines, see GUIDELINES for details.
       5             : 
       6             : // Author: Stefan Ask for the *LED* routines.
       7             : // Header file for extra-dimensional-process differential cross sections.
       8             : // Contains classes derived from SigmaProcess via Sigma(1/2)Process.
       9             : 
      10             : #ifndef Pythia8_SigmaExtraDim_H
      11             : #define Pythia8_SigmaExtraDim_H
      12             : 
      13             : #include "Pythia8/SigmaProcess.h"
      14             : 
      15             : namespace Pythia8 {
      16             : 
      17             : //==========================================================================
      18             : 
      19             : // A derived class for g g -> G^* (excited graviton state).
      20             : 
      21           0 : class Sigma1gg2GravitonStar : public Sigma1Process {
      22             : 
      23             : public:
      24             : 
      25             :   // Constructor.
      26           0 :   Sigma1gg2GravitonStar() {}
      27             : 
      28             :   // Initialize process.
      29             :   virtual void initProc();
      30             : 
      31             :   // Calculate flavour-independent parts of cross section.
      32             :   virtual void sigmaKin();
      33             : 
      34             :   // Evaluate sigmaHat(sHat).
      35           0 :   virtual double sigmaHat() {return sigma;}
      36             : 
      37             :   // Select flavour, colour and anticolour.
      38             :   virtual void setIdColAcol();
      39             : 
      40             :   // Evaluate weight for G* decay angle.
      41             :   virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
      42             : 
      43             :   // Info on the subprocess.
      44           0 :   virtual string name()       const {return "g g -> G*";}
      45           0 :   virtual int    code()       const {return 5001;}
      46           0 :   virtual string inFlux()     const {return "gg";}
      47           0 :   virtual int    resonanceA() const {return idGstar;}
      48             : 
      49             : private:
      50             : 
      51             :   // Parameters set at initialization or for current kinematics.
      52             :   bool   eDsmbulk, eDvlvl;
      53             :   int    idGstar;
      54             :   double mRes, GammaRes, m2Res, GamMRat, kappaMG, sigma;
      55             : 
      56             :   // Couplings between graviton and SM (indexed by particle id).
      57             :   double eDcoupling[27];
      58             : 
      59             :   // Pointer to properties of the particle species, to access decay channels.
      60             :   ParticleDataEntry* gStarPtr;
      61             : 
      62             : };
      63             : 
      64             : //==========================================================================
      65             : 
      66             : // A derived class for f fbar -> G^* (excited graviton state).
      67             : 
      68           0 : class Sigma1ffbar2GravitonStar : public Sigma1Process {
      69             : 
      70             : public:
      71             : 
      72             :   // Constructor.
      73           0 :   Sigma1ffbar2GravitonStar() {}
      74             : 
      75             :   // Initialize process.
      76             :   virtual void initProc();
      77             : 
      78             :   // Calculate flavour-independent parts of cross section.
      79             :   virtual void sigmaKin();
      80             : 
      81             :   // Evaluate sigmaHat(sHat).
      82             :   virtual double sigmaHat();
      83             : 
      84             :   // Select flavour, colour and anticolour.
      85             :   virtual void setIdColAcol();
      86             : 
      87             :   // Evaluate weight for G* decay angle.
      88             :   virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
      89             : 
      90             :   // Info on the subprocess.
      91           0 :   virtual string name()       const {return "f fbar -> G*";}
      92           0 :   virtual int    code()       const {return 5002;}
      93           0 :   virtual string inFlux()     const {return "ffbarSame";}
      94           0 :   virtual int    resonanceA() const {return idGstar;}
      95             : 
      96             : private:
      97             : 
      98             :   // Parameters set at initialization or for current kinematics.
      99             :   bool   eDsmbulk, eDvlvl;
     100             :   int    idGstar;
     101             :   double mRes, GammaRes, m2Res, GamMRat, kappaMG, sigma0;
     102             : 
     103             :   // Couplings between graviton and SM (indexed by particle id).
     104             :   double eDcoupling[27];
     105             : 
     106             :   // Pointer to properties of the particle species, to access decay channels.
     107             :   ParticleDataEntry* gStarPtr;
     108             : 
     109             : };
     110             : 
     111             : //==========================================================================
     112             : 
     113             : // A derived class for q qbar -> g^*/KK-gluon^* (excited kk-gluon state).
     114             : 
     115           0 : class Sigma1qqbar2KKgluonStar : public Sigma1Process {
     116             : 
     117             : public:
     118             : 
     119             :   // Constructor.
     120           0 :   Sigma1qqbar2KKgluonStar() {}
     121             : 
     122             :   // Initialize process.
     123             :   virtual void initProc();
     124             : 
     125             :   // Calculate flavour-independent parts of cross section.
     126             :   virtual void sigmaKin();
     127             : 
     128             :   // Evaluate sigmaHat(sHat).
     129             :   virtual double sigmaHat();
     130             : 
     131             :   // Select flavour, colour and anticolour.
     132             :   virtual void setIdColAcol();
     133             : 
     134             :   // Evaluate weight for g* decay angle.
     135             :   virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
     136             : 
     137             :   // Info on the subprocess.
     138           0 :   virtual string name()       const {return "q qbar -> g*/KK-gluon*";}
     139           0 :   virtual int    code()       const {return 5006;}
     140           0 :   virtual string inFlux()     const {return "qqbarSame";}
     141           0 :   virtual int    resonanceA() const {return idKKgluon;}
     142             : 
     143             : private:
     144             : 
     145             :   // Parameters set at initialization or for current kinematics.
     146             :   int    idKKgluon;
     147             :   double mRes, GammaRes, m2Res, GamMRat;
     148             :   double sumSM, sumInt, sumKK, sigSM, sigInt, sigKK;
     149             : 
     150             :   // Couplings between kk gluon and SM (indexed by particle id).
     151             :   // Helicity dependent couplings. Use vector/axial-vector
     152             :   // couplings internally, gv/ga = 0.5 * (gL +/- gR).
     153             :   double eDgv[10], eDga[10];
     154             : 
     155             :   // Interference parameter.
     156             :   int interfMode;
     157             : 
     158             :   // Pointer to properties of the particle species, to access decay
     159             :   // channels.
     160             :   ParticleDataEntry* gStarPtr;
     161             : 
     162             : };
     163             : 
     164             : //==========================================================================
     165             : 
     166             : // A derived class for g g -> G^* g (excited graviton state).
     167             : 
     168           0 : class Sigma2gg2GravitonStarg : public Sigma2Process {
     169             : 
     170             : public:
     171             : 
     172             :   // Constructor.
     173           0 :   Sigma2gg2GravitonStarg() {}
     174             : 
     175             :   // Initialize process.
     176             :   virtual void initProc();
     177             : 
     178             :   // Calculate flavour-independent parts of cross section.
     179             :   virtual void sigmaKin();
     180             : 
     181             :   // Evaluate sigmaHat(sHat).
     182           0 :   virtual double sigmaHat() {return sigma;}
     183             : 
     184             :   // Select flavour, colour and anticolour.
     185             :   virtual void setIdColAcol();
     186             : 
     187             :   // Evaluate weight: currently isotropic (except secondary top decay)..
     188             :   virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
     189             : 
     190             :   // Info on the subprocess.
     191           0 :   virtual string name()    const {return "g g -> G* g";}
     192           0 :   virtual int    code()    const {return 5003;}
     193           0 :   virtual string inFlux()  const {return "gg";}
     194           0 :   virtual int    id3Mass() const {return idGstar;}
     195             : 
     196             : private:
     197             : 
     198             :   // Parameters set at initialization or for current kinematics.
     199             :   int    idGstar;
     200             :   double mRes, GammaRes, m2Res, GamMRat, kappaMG, openFrac, sigma;
     201             : 
     202             : };
     203             : 
     204             : //==========================================================================
     205             : 
     206             : // A derived class for q g -> G^* q (excited graviton state).
     207             : 
     208           0 : class Sigma2qg2GravitonStarq : public Sigma2Process {
     209             : 
     210             : public:
     211             : 
     212             :   // Constructor.
     213           0 :   Sigma2qg2GravitonStarq() {}
     214             : 
     215             :   // Initialize process.
     216             :   virtual void initProc();
     217             : 
     218             :   // Calculate flavour-independent parts of cross section.
     219             :   virtual void sigmaKin();
     220             : 
     221             :   // Evaluate sigmaHat(sHat).
     222           0 :   virtual double sigmaHat() {return sigma;}
     223             : 
     224             :   // Select flavour, colour and anticolour.
     225             :   virtual void setIdColAcol();
     226             : 
     227             :   // Evaluate weight: currently isotropic (except secondary top decay).
     228             :   virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
     229             : 
     230             :   // Info on the subprocess.
     231           0 :   virtual string name()    const {return "q g -> G* q";}
     232           0 :   virtual int    code()    const {return 5004;}
     233           0 :   virtual string inFlux()  const {return "qg";}
     234           0 :   virtual int    id3Mass() const {return idGstar;}
     235             : 
     236             : private:
     237             : 
     238             :   // Parameters set at initialization or for current kinematics.
     239             :   int    idGstar;
     240             :   double mRes, GammaRes, m2Res, GamMRat, kappaMG, openFrac, sigma;
     241             : 
     242             : };
     243             : 
     244             : //==========================================================================
     245             : 
     246             : // A derived class for q qbar -> G^* g (excited graviton state).
     247             : 
     248           0 : class Sigma2qqbar2GravitonStarg : public Sigma2Process {
     249             : 
     250             : public:
     251             : 
     252             :   // Constructor.
     253           0 :   Sigma2qqbar2GravitonStarg() {}
     254             : 
     255             :   // Initialize process.
     256             :   virtual void initProc();
     257             : 
     258             :   // Calculate flavour-independent parts of cross section.
     259             :   virtual void sigmaKin();
     260             : 
     261             :   // Evaluate sigmaHat(sHat).
     262           0 :   virtual double sigmaHat() {return sigma;}
     263             : 
     264             :   // Select flavour, colour and anticolour.
     265             :   virtual void setIdColAcol();
     266             : 
     267             :   // Evaluate weight: currently isotropic (except secondary top decay).
     268             :   virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
     269             : 
     270             :   // Info on the subprocess.
     271           0 :   virtual string name()    const {return "q qbar -> G* g";}
     272           0 :   virtual int    code()    const {return 5005;}
     273           0 :   virtual string inFlux()  const {return "qqbarSame";}
     274           0 :   virtual int    id3Mass() const {return idGstar;}
     275             : 
     276             : private:
     277             : 
     278             :   // Parameters set at initialization or for current kinematics.
     279             :   int    idGstar;
     280             :   double mRes, GammaRes, m2Res, GamMRat, kappaMG, openFrac, sigma;
     281             : 
     282             : };
     283             : 
     284             : //==========================================================================
     285             : 
     286             : // NOAM: A derived class for, f fbar -> (gamma/Z)_KKTower -> F Fbar,
     287             : // for one heavy F.
     288             : // Process provided by N. Hod et al. and is described in arXiv:XXXX.YYYY
     289             : 
     290           0 : class Sigma2ffbar2TEVffbar : public Sigma2Process {
     291             : 
     292             : public:
     293             : 
     294             :   // Constructor.
     295           0 :   Sigma2ffbar2TEVffbar(int idIn, int codeIn) : idNew(idIn), codeSave(codeIn) {}
     296             : 
     297             :   // Initialize process.
     298             :   virtual void initProc();
     299             : 
     300             :   // Calculate flavour-independent parts of cross section.
     301             :   virtual void sigmaKin();
     302             : 
     303             :   // Evaluate sigmaHat(sHat).
     304             :   virtual double sigmaHat();
     305             : 
     306             :   // Select flavour, colour and anticolour.
     307             :   virtual void setIdColAcol();
     308             : 
     309             :   // Evaluate weight for W decay angles in top decay (else inactive).
     310             :   virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
     311             : 
     312             :   // Info on the subprocess.
     313           0 :   virtual string name()       const {return nameSave;}
     314           0 :   virtual int    code()       const {return codeSave;}
     315           0 :   virtual string inFlux()     const {return "ffbarSame";}
     316           0 :   virtual bool   isSChannel() const {return true;}
     317           0 :   virtual int    idSChannel() const {return 5000023;}
     318           0 :   virtual int    resonanceA() const {return 23;}
     319           0 :   virtual int    resonanceB() const {return 5000023;}
     320           0 :   virtual int    id3Mass()    const {return idNew;}
     321           0 :   virtual int    id4Mass()    const {return idNew;}
     322             :   // Add phase-space sampling also around the Z_KK resonance.
     323             :   virtual int    resonanceA();
     324             :   virtual int    resonanceB();
     325             : 
     326             : private:
     327             : 
     328             :   // Values stored for process type.
     329             :   string  nameSave;
     330             :   int     idNew, gmZmode, codeSave, nexcitationmax;
     331             :   bool    isPhysical;
     332             :   double  gPlusf, gMinusf, gPlusF, gMinusF, gPlusTop, gMinusTop, gf, gF;
     333             :   double  mRes, m2Res, mStar, mTop, m2Top, mZKKn, m2ZKKn, m2gmKKn, mgmKKn,
     334             :           alphaemfixed;
     335             :   double  helicityME2, coefTot, coefAngular;
     336             :   double  mr, betaf, cosThe, openFracPair;
     337             :   double  wgmKKFactor, wgmKKn, wZKKn,
     338             :           wZ0, ttbarwZKKn, ttbarwgmKKn,
     339             :           ttbarwFactorA, ttbarwFactorB;
     340             :   double  phaseSpacemHatMin, phaseSpacemHatMax;
     341             :   complex gammaProp, resProp, gmPropKK, ZPropKK, totalProp;
     342             :   complex mI;
     343             : };
     344             : 
     345             : //==========================================================================
     346             : 
     347             : // A derived class for g g -> U/G g (real graviton emission in
     348             : // large extra dimensions or unparticle emission).
     349             : 
     350           0 : class Sigma2gg2LEDUnparticleg : public Sigma2Process {
     351             : 
     352             : public:
     353             : 
     354             :   // Constructor: bool Graviton  = true, to use LED graviton settings.
     355           0 :   Sigma2gg2LEDUnparticleg( bool Graviton ) : eDgraviton(Graviton) {}
     356             : 
     357             :   // Initialize process.
     358             :   virtual void initProc();
     359             : 
     360             :   // Calculate flavour-independent parts of cross section;
     361             :   // first step when inflavours unknown.
     362             :   virtual void sigmaKin();
     363             : 
     364             :   // Evaluate sigmaHat(sHat); second step for given inflavours.
     365             :   virtual double sigmaHat();
     366             : 
     367             :   // Select flavour, colour and anticolour.
     368             :   virtual void setIdColAcol();
     369             : 
     370             :   // Info on the subprocess.
     371           0 :   virtual string name()       const {return
     372           0 :     (eDgraviton ? "g g -> G g" : "g g -> U g") ;}
     373           0 :   virtual int    code()       const {return (eDgraviton ? 5021 : 5045);}
     374           0 :   virtual string inFlux()     const {return "gg";}
     375           0 :   virtual int    id3Mass()    const {return 5000039;}
     376           0 :   virtual int    id4Mass()    const {return 21;}
     377             : 
     378             : private:
     379             : 
     380             :   bool   eDgraviton;
     381             :   int    eDspin, eDnGrav, eDidG, eDcutoff;
     382             :   double mG, mGS, eDsigma0, eDdU, eDLambdaU, eDlambda, eDconstantTerm,
     383             :          eDtff, eDcf;
     384             : 
     385             : };
     386             : 
     387             : //==========================================================================
     388             : 
     389             : // A derived class for q g -> U/G q (real graviton emission in
     390             : // large extra dimensions or unparticle emission).
     391             : 
     392           0 : class Sigma2qg2LEDUnparticleq : public Sigma2Process {
     393             : 
     394             : public:
     395             : 
     396             :   // Constructor: bool Graviton  = true, to use LED graviton settings.
     397           0 :   Sigma2qg2LEDUnparticleq( bool Graviton) : eDgraviton(Graviton) {}
     398             : 
     399             :   // Initialize process.
     400             :   virtual void initProc();
     401             : 
     402             :   // Calculate flavour-independent parts of cross section;
     403             :   // first step when inflavours unknown.
     404             :   virtual void sigmaKin();
     405             : 
     406             :   // Evaluate sigmaHat(sHat); second step for given inflavours.
     407             :   virtual double sigmaHat();
     408             : 
     409             :   // Select flavour, colour and anticolour.
     410             :   virtual void setIdColAcol();
     411             : 
     412             :   // Info on the subprocess.
     413           0 :   virtual string name()       const {return
     414           0 :     (eDgraviton ? "q g -> G q" : "q g -> U q") ;}
     415           0 :   virtual int    code()       const {return (eDgraviton ? 5022 : 5046);}
     416           0 :   virtual string inFlux()     const {return "qg";}
     417           0 :   virtual int    id3Mass()    const {return 5000039;}
     418             : 
     419             : private:
     420             : 
     421             :   bool   eDgraviton;
     422             :   int    eDspin, eDnGrav, eDidG, eDcutoff;
     423             :   double mG, mGS, eDsigma0, eDdU, eDLambdaU, eDlambda, eDconstantTerm,
     424             :          eDtff, eDgf, eDcf;
     425             : 
     426             : };
     427             : 
     428             : //==========================================================================
     429             : 
     430             : // A derived class for q qbar -> U/G g (real graviton emission in
     431             : // large extra dimensions or unparticle emission).
     432             : 
     433           0 : class Sigma2qqbar2LEDUnparticleg : public Sigma2Process {
     434             : 
     435             : public:
     436             : 
     437             :   // Constructor: bool Graviton  = true, to use LED graviton settings.
     438           0 :   Sigma2qqbar2LEDUnparticleg( bool Graviton) : eDgraviton(Graviton) {}
     439             : 
     440             :   // Initialize process.
     441             :   virtual void initProc();
     442             : 
     443             :   // Calculate flavour-independent parts of cross section;
     444             :   // first step when inflavours unknown.
     445             :   virtual void sigmaKin();
     446             : 
     447             :   // Evaluate sigmaHat(sHat); second step for given inflavours.
     448             :   virtual double sigmaHat();
     449             : 
     450             :   // Select flavour, colour and anticolour.
     451             :   virtual void setIdColAcol();
     452             : 
     453             :   // Info on the subprocess.
     454           0 :   virtual string name()       const {return
     455           0 :     (eDgraviton ? "q qbar -> G g" : "q qbar -> U g") ;}
     456           0 :   virtual int    code()       const {return (eDgraviton ? 5023 : 5047);}
     457           0 :   virtual string inFlux()     const {return "qqbarSame";}
     458           0 :   virtual int    id3Mass()    const {return 5000039;}
     459           0 :   virtual int    id4Mass()    const {return 21;}
     460             : 
     461             : private:
     462             : 
     463             :   bool   eDgraviton;
     464             :   int    eDspin, eDnGrav, eDidG, eDcutoff;
     465             :   double mG, mGS, eDsigma0, eDdU, eDLambdaU, eDlambda, eDconstantTerm,
     466             :          eDtff, eDgf, eDcf;
     467             : 
     468             : };
     469             : 
     470             : //==========================================================================
     471             : 
     472             : // A derived class for f fbar -> U/G Z (real graviton emission in
     473             : // large extra dimensions or unparticle emission).
     474             : 
     475           0 : class Sigma2ffbar2LEDUnparticleZ : public Sigma2Process {
     476             : 
     477             : public:
     478             : 
     479             :   // Constructor: bool Graviton  = true, to use LED graviton settings.
     480           0 :   Sigma2ffbar2LEDUnparticleZ( bool Graviton) : eDgraviton(Graviton) {}
     481             : 
     482             :   // Initialize process.
     483             :   virtual void initProc();
     484             : 
     485             :   // Calculate flavour-independent parts of cross section;
     486             :   // first step when inflavours unknown.
     487             :   virtual void sigmaKin();
     488             : 
     489             :   // Evaluate sigmaHat(sHat); second step for given inflavours.
     490             :   virtual double sigmaHat();
     491             : 
     492             :   // Select flavour, colour and anticolour.
     493             :   virtual void setIdColAcol();
     494             : 
     495             :   // Info on the subprocess.
     496           0 :   virtual string name()       const {return
     497           0 :     (eDgraviton ? "f fbar -> G Z" : "f fbar -> U Z") ;}
     498           0 :   virtual int    code()       const {return (eDgraviton ? 5024 : 5041);}
     499           0 :   virtual string inFlux()     const {return "ffbarSame";}
     500           0 :   virtual int    id3Mass()    const {return 5000039;}
     501           0 :   virtual int    id4Mass()    const {return 23;}
     502           0 :   virtual int    resonanceA() const {return 23;}
     503           0 :   virtual int    gmZmode()    const {return 2;}
     504             : 
     505             : private:
     506             : 
     507             :   // Constants: could only be changed in the code itself.
     508             :   static const double FIXRATIO;
     509             : 
     510             :   int    eDspin, eDnGrav, eDcutoff, eDidG;
     511             :   bool   eDgraviton;
     512             :   double eDdU, eDLambdaU, eDlambda, eDratio, eDlambdaPrime,
     513             :          eDtff, eDconstantTerm;
     514             :   double sHS, tHS, uHS, tHC, uHC, tHQ, uHQ, tHuH, mU, mUS, mZ, widZ,
     515             :          mZS, mwZS, eDsigma0;
     516             : 
     517             : };
     518             : 
     519             : //==========================================================================
     520             : 
     521             : // A derived class for f fbar -> U/G gamma (real graviton emission in
     522             : // large extra dimensions or unparticle emission).
     523             : 
     524           0 : class Sigma2ffbar2LEDUnparticlegamma : public Sigma2Process {
     525             : 
     526             : public:
     527             : 
     528             :   // Constructor: bool Graviton  = true, to use LED graviton settings.
     529           0 :   Sigma2ffbar2LEDUnparticlegamma( bool Graviton) : eDgraviton(Graviton) {}
     530             : 
     531             :   // Initialize process.
     532             :   virtual void initProc();
     533             : 
     534             :   // Calculate flavour-independent parts of cross section;
     535             :   // first step when inflavours unknown.
     536             :   virtual void sigmaKin();
     537             : 
     538             :   // Evaluate sigmaHat(sHat); second step for given inflavours.
     539             :   virtual double sigmaHat();
     540             : 
     541             :   // Select flavour, colour and anticolour.
     542             :   virtual void setIdColAcol();
     543             : 
     544             :   // Info on the subprocess.
     545           0 :   virtual string name()       const {return
     546           0 :     (eDgraviton ? "f fbar -> G gamma" : "f fbar -> U gamma") ;}
     547           0 :   virtual int    code()       const {return (eDgraviton ? 5025 : 5042);}
     548           0 :   virtual string inFlux()     const {return "ffbarSame";}
     549           0 :   virtual int    id3Mass()    const {return 5000039;}
     550           0 :   virtual int    id4Mass()    const {return 22;}
     551             : 
     552             : private:
     553             : 
     554             :   // Constants: could only be changed in the code itself.
     555             :   static const double FIXRATIO;
     556             : 
     557             :   int    eDspin, eDnGrav, eDcutoff, eDidG;
     558             :   bool   eDgraviton;
     559             :   double eDdU, eDLambdaU, eDlambda, eDratio, eDlambdaPrime,
     560             :          eDtff, eDconstantTerm;
     561             :   double sHS, tHS, uHS, tHC, uHC, tHQ, uHQ, tHuH, mU, mUS, mZ,
     562             :          mZS, eDsigma0;
     563             : 
     564             : };
     565             : 
     566             : //==========================================================================
     567             : 
     568             : // A derived class for f fbar -> (LED G*/U*) -> gamma gamma
     569             : // (virtual graviton/unparticle exchange).
     570             : 
     571           0 : class Sigma2ffbar2LEDgammagamma : public Sigma2Process {
     572             : 
     573             : public:
     574             : 
     575             :   // Constructor: bool Graviton  = true, to use LED graviton settings.
     576           0 :   Sigma2ffbar2LEDgammagamma( bool Graviton) : eDgraviton(Graviton) {}
     577             : 
     578             :   // Initialize process.
     579             :   virtual void initProc();
     580             : 
     581             :   // Calculate flavour-independent parts of cross section;
     582             :   // first step when inflavours unknown.
     583             :   virtual void sigmaKin();
     584             : 
     585             :   // Evaluate sigmaHat(sHat); second step for given inflavours.
     586             :   virtual double sigmaHat();
     587             : 
     588             :   // Select flavour, colour and anticolour.
     589             :   virtual void setIdColAcol();
     590             : 
     591             :   // Info on the subprocess.
     592           0 :   virtual string name()       const {return
     593           0 :     (eDgraviton ? "f fbar -> (LED G*) -> gamma gamma"
     594             :     : "f fbar -> (U*) -> gamma gamma") ;}
     595           0 :   virtual int    code()       const {return (eDgraviton ? 5026 : 5043);}
     596           0 :   virtual string inFlux()     const {return "ffbarSame";}
     597             : 
     598             : private:
     599             : 
     600             :   int    eDspin, eDcutoff, eDnGrav, eDnegInt;
     601             :   bool   eDgraviton;
     602             :   double eDdU, eDLambdaU, eDlambda, eDlambda2chi,
     603             :          eDterm1, eDterm2, eDterm3, eDtff;
     604             : 
     605             : };
     606             : 
     607             : //==========================================================================
     608             : 
     609             : // A derived class for g g -> (LED G*/U*) -> gamma gamma
     610             : // (virtual graviton/unparticle exchange).
     611             : 
     612           0 : class Sigma2gg2LEDgammagamma : public Sigma2Process {
     613             : 
     614             : public:
     615             : 
     616             :   // Constructor: bool Graviton  = true, to use LED graviton settings.
     617           0 :   Sigma2gg2LEDgammagamma( bool Graviton) : eDgraviton(Graviton) {}
     618             : 
     619             :   // Initialize process.
     620             :   virtual void initProc();
     621             : 
     622             :   // Calculate flavour-independent parts of cross section;
     623             :   // first step when inflavours unknown.
     624             :   virtual void sigmaKin();
     625             : 
     626             :   // Evaluate sigmaHat(sHat); second step for given inflavours.
     627             :   virtual double sigmaHat();
     628             : 
     629             :   // Select flavour, colour and anticolour.
     630             :   virtual void setIdColAcol();
     631             : 
     632             :   // Info on the subprocess.
     633           0 :   virtual string name()       const {return (eDgraviton
     634             :     ? "g g -> (LED G*) -> gamma gamma" : "g g -> (U*) -> gamma gamma") ;}
     635           0 :   virtual int    code()       const {return (eDgraviton ? 5027 : 5044);}
     636           0 :   virtual string inFlux()     const {return "gg";}
     637             : 
     638             : private:
     639             : 
     640             :   int    eDspin, eDcutoff, eDnGrav;
     641             :   bool   eDgraviton;
     642             :   double eDdU, eDLambdaU, eDlambda, eDlambda2chi, eDsigma0, eDtff;
     643             : 
     644             : };
     645             : 
     646             : //==========================================================================
     647             : 
     648             : // A derived class for f fbar -> (LED G*/U*) -> l lbar
     649             : // (virtual graviton/unparticle exchange).
     650             : // Does not include t-channel contributions relevant for e^+e^- to e^+e^-
     651             : 
     652           0 : class Sigma2ffbar2LEDllbar : public Sigma2Process {
     653             : 
     654             : public:
     655             : 
     656             :   // Constructor: bool Graviton  = true, to use LED graviton settings.
     657           0 :   Sigma2ffbar2LEDllbar( bool Graviton) : eDgraviton(Graviton) {}
     658             : 
     659             :   // Initialize process.
     660             :   virtual void initProc();
     661             : 
     662             :   // Calculate flavour-independent parts of cross section;
     663             :   // first step when inflavours unknown.
     664             :   virtual void sigmaKin();
     665             : 
     666             :   // Evaluate sigmaHat(sHat); second step for given inflavours.
     667             :   virtual double sigmaHat();
     668             : 
     669             :   // Select flavour, colour and anticolour.
     670             :   virtual void setIdColAcol();
     671             : 
     672             :   // Info on the subprocess.
     673           0 :   virtual string name()       const {return
     674           0 :     (eDgraviton ? "f fbar -> (LED G*) -> l l" : "f fbar -> (U*) -> l l") ;}
     675           0 :   virtual int    code()       const {return (eDgraviton ? 5028 : 5048);}
     676           0 :   virtual string inFlux()     const {return "ffbarSame";}
     677           0 :   virtual bool   isSChannel() const {return true;}
     678             : 
     679             : private:
     680             : 
     681             :   int    eDspin, eDcutoff, eDnGrav,eDnxx, eDnxy, eDnegInt;
     682             :   bool   eDgraviton;
     683             :   double eDdU, eDLambdaU, eDlambda, eDlambda2chi, eDtff,
     684             :          eDmZ, eDmZS, eDGZ, eDGZS, eDabsMeU, eDdenomPropZ, eDrePropGamma,
     685             :          eDrePropZ, eDimPropZ, eDabsAS, eDreA, eDreABW, eDpoly1, eDpoly2,
     686             :          eDpoly3;
     687             : 
     688             : };
     689             : 
     690             : //==========================================================================
     691             : 
     692             : // A derived class for g g -> (LED G*/U*) -> l lbar
     693             : // (virtual graviton/unparticle exchange).
     694             : 
     695           0 : class Sigma2gg2LEDllbar : public Sigma2Process {
     696             : 
     697             : public:
     698             : 
     699             :   // Constructor: bool Graviton  = true, to use LED graviton settings.
     700           0 :   Sigma2gg2LEDllbar( bool Graviton) : eDgraviton(Graviton) {}
     701             : 
     702             : 
     703             :   // Initialize process.
     704             :   virtual void initProc();
     705             : 
     706             :   // Calculate flavour-independent parts of cross section;
     707             :   // first step when inflavours unknown.
     708             :   virtual void sigmaKin();
     709             : 
     710             :   // Evaluate sigmaHat(sHat); second step for given inflavours.
     711           0 :   virtual double sigmaHat() {return eDsigma0;}
     712             : 
     713             :   // Select flavour, colour and anticolour.
     714             :   virtual void setIdColAcol();
     715             : 
     716             :   // Info on the subprocess.
     717           0 :   virtual string name()       const {return
     718           0 :     (eDgraviton ? "g g -> (LED G*) -> l l" : "g g -> (U*) -> l l") ;}
     719           0 :   virtual int    code()       const {return (eDgraviton ? 5029 : 5049);}
     720           0 :   virtual string inFlux()     const {return "gg";}
     721             : 
     722             : private:
     723             : 
     724             :   int    eDspin, eDcutoff, eDnGrav;
     725             :   bool   eDgraviton;
     726             :   double eDdU, eDLambdaU, eDlambda, eDlambda2chi, eDsigma0, eDtff;
     727             : 
     728             : };
     729             : 
     730             : //==========================================================================
     731             : 
     732             : // A derived class for g g -> (LED G*) -> g g.
     733             : 
     734           0 : class Sigma2gg2LEDgg : public Sigma2Process {
     735             : 
     736             : public:
     737             : 
     738             :   // Constructor.
     739           0 :   Sigma2gg2LEDgg() {}
     740             : 
     741             :   // Initialize process.
     742             :   virtual void initProc();
     743             : 
     744             :   // Calculate flavour-independent parts of cross section.
     745             :   virtual void sigmaKin();
     746             : 
     747             :   // Evaluate d(sigmaHat)/d(tHat).
     748           0 :   virtual double sigmaHat() {return sigma;}
     749             : 
     750             :   // Select flavour, colour and anticolour.
     751             :   virtual void setIdColAcol();
     752             : 
     753             :   // Info on the subprocess.
     754           0 :   virtual string name()   const {return "g g -> (LED G*) -> g g";}
     755           0 :   virtual int    code()   const {return 5030;}
     756           0 :   virtual string inFlux() const {return "gg";}
     757             : 
     758             : private:
     759             : 
     760             :   // Values stored for colour flow selection.
     761             :   double sigTS, sigUS, sigTU, sigSum, sigma;
     762             : 
     763             :   // Model parameters.
     764             :   int eDopMode, eDnGrav, eDcutoff, eDnegInt;
     765             :   double eDMD, eDLambdaT, eDtff;
     766             : 
     767             : };
     768             : 
     769             : //==========================================================================
     770             : 
     771             : // A derived class for g g -> (LED G*) -> q qbar.
     772             : 
     773           0 : class Sigma2gg2LEDqqbar : public Sigma2Process {
     774             : 
     775             : public:
     776             : 
     777             :   // Constructor.
     778           0 :   Sigma2gg2LEDqqbar() {}
     779             : 
     780             :   // Initialize process.
     781             :   virtual void initProc();
     782             : 
     783             :   // Calculate flavour-independent parts of cross section.
     784             :   virtual void sigmaKin();
     785             : 
     786             :   // Evaluate d(sigmaHat)/d(tHat).
     787           0 :   virtual double sigmaHat() {return sigma;}
     788             : 
     789             :   // Select flavour, colour and anticolour.
     790             :   virtual void setIdColAcol();
     791             : 
     792             :   // Info on the subprocess.
     793           0 :   virtual string name()   const {return "g g -> (LED G*) -> q qbar (uds)";}
     794           0 :   virtual int    code()   const {return 5031;}
     795           0 :   virtual string inFlux() const {return "gg";}
     796             : 
     797             : private:
     798             : 
     799             :   // Number of quarks to be considered in massless approximation.
     800             :   int    nQuarkNew;
     801             : 
     802             :   // Values stored for colour flow selection.
     803             :   int    idNew;
     804             :   double mNew, m2New, sigTS, sigUS, sigSum, sigma;
     805             : 
     806             :   // Model parameters.
     807             :   int eDopMode, eDnGrav, eDcutoff, eDnegInt;
     808             :   double eDMD, eDLambdaT, eDtff;
     809             : 
     810             : };
     811             : 
     812             : //==========================================================================
     813             : 
     814             : // A derived class for q g -> (LED G*) -> q g.
     815             : // Use massless approximation also for Q since no alternative.
     816             : 
     817           0 : class Sigma2qg2LEDqg : public Sigma2Process {
     818             : 
     819             : public:
     820             : 
     821             :   // Constructor.
     822           0 :   Sigma2qg2LEDqg() {}
     823             : 
     824             :   // Initialize process.
     825             :   virtual void initProc();
     826             : 
     827             :   // Calculate flavour-independent parts of cross section.
     828             :   virtual void sigmaKin();
     829             : 
     830             :   // Evaluate d(sigmaHat)/d(tHat).
     831           0 :   virtual double sigmaHat() {return sigma;}
     832             : 
     833             :   // Select flavour, colour and anticolour.
     834             :   virtual void setIdColAcol();
     835             : 
     836             :   // Info on the subprocess.
     837           0 :   virtual string name()   const {return "q g -> (LED G*) -> q g";}
     838           0 :   virtual int    code()   const {return 5032;}
     839           0 :   virtual string inFlux() const {return "qg";}
     840             : 
     841             : private:
     842             : 
     843             :   // Values stored for colour flow selection.
     844             :   double sigTS, sigTU, sigSum, sigma;
     845             : 
     846             :   // Model parameters.
     847             :   int eDopMode, eDnGrav, eDcutoff, eDnegInt;
     848             :   double eDMD, eDLambdaT, eDtff;
     849             : 
     850             : };
     851             : 
     852             : //==========================================================================
     853             : 
     854             : // A derived class for q q(bar)' -> (LED G*) -> q q(bar)'.
     855             : 
     856           0 : class Sigma2qq2LEDqq : public Sigma2Process {
     857             : 
     858             : public:
     859             : 
     860             :   // Constructor.
     861           0 :   Sigma2qq2LEDqq() {}
     862             : 
     863             :   // Initialize process.
     864             :   virtual void initProc();
     865             : 
     866             :   // Calculate flavour-independent parts of cross section.
     867             :   virtual void sigmaKin();
     868             : 
     869             :   // Evaluate d(sigmaHat)/d(tHat).
     870             :   virtual double sigmaHat();
     871             : 
     872             :   // Select flavour, colour and anticolour.
     873             :   virtual void setIdColAcol();
     874             : 
     875             :   // Info on the subprocess.
     876           0 :   virtual string name()   const {return "q q(bar)' -> (LED G*) -> q q(bar)'";}
     877           0 :   virtual int    code()   const {return 5033;}
     878           0 :   virtual string inFlux() const {return "qq";}
     879             : 
     880             :  private:
     881             : 
     882             :   // Values stored for colour flow selection.
     883             :   double sigT, sigU, sigTU, sigST, sigSum;
     884             :   double sigGrT1, sigGrT2, sigGrU, sigGrTU, sigGrST;
     885             : 
     886             :   // Model parameters.
     887             :   int eDopMode, eDnGrav, eDcutoff, eDnegInt;
     888             :   double eDMD, eDLambdaT, eDtff;
     889             : 
     890             : };
     891             : 
     892             : //==========================================================================
     893             : 
     894             : // A derived class for q qbar -> (LED G*) -> g g.
     895             : 
     896           0 : class Sigma2qqbar2LEDgg : public Sigma2Process {
     897             : 
     898             : public:
     899             : 
     900             :   // Constructor.
     901           0 :   Sigma2qqbar2LEDgg() {}
     902             : 
     903             :   // Initialize process.
     904             :   virtual void initProc();
     905             : 
     906             :   // Calculate flavour-independent parts of cross section.
     907             :   virtual void sigmaKin();
     908             : 
     909             :   // Evaluate d(sigmaHat)/d(tHat).
     910           0 :   virtual double sigmaHat() {return sigma;}
     911             : 
     912             :   // Select flavour, colour and anticolour.
     913             :   virtual void setIdColAcol();
     914             : 
     915             :   // Info on the subprocess.
     916           0 :   virtual string name()   const {return "q qbar -> (LED G*) -> g g";}
     917           0 :   virtual int    code()   const {return 5034;}
     918           0 :   virtual string inFlux() const {return "qqbarSame";}
     919             : 
     920             :  private:
     921             : 
     922             :   // Values stored for colour flow selection.
     923             :   double sigTS, sigUS, sigSum, sigma;
     924             : 
     925             :   // Model parameters.
     926             :   int eDopMode, eDnGrav, eDcutoff, eDnegInt;
     927             :   double eDMD, eDLambdaT, eDtff;
     928             : 
     929             : };
     930             : 
     931             : //==========================================================================
     932             : 
     933             : // A derived class for q qbar -> (LED G*) -> q' qbar'.
     934             : 
     935           0 : class Sigma2qqbar2LEDqqbarNew : public Sigma2Process {
     936             : 
     937             : public:
     938             : 
     939             :   // Constructor.
     940           0 :   Sigma2qqbar2LEDqqbarNew() {}
     941             : 
     942             :   // Initialize process.
     943             :   virtual void initProc();
     944             : 
     945             :   // Calculate flavour-independent parts of cross section.
     946             :   virtual void sigmaKin();
     947             : 
     948             :   // Evaluate d(sigmaHat)/d(tHat).
     949           0 :   virtual double sigmaHat() {return sigma;}
     950             : 
     951             :   // Select flavour, colour and anticolour.
     952             :   virtual void setIdColAcol();
     953             : 
     954             :   // Info on the subprocess.
     955           0 :   virtual string name()  const {return "q qbar -> (LED G*) -> q' qbar' (uds)";}
     956           0 :   virtual int    code()   const {return 5035;}
     957           0 :   virtual string inFlux() const {return "qqbarSame";}
     958             : 
     959             :  private:
     960             : 
     961             :   // Number of quarks to be considered in massless approximation.
     962             :   int    nQuarkNew;
     963             : 
     964             :   // Values stored for colour flow selection.
     965             :   int    idNew;
     966             :   double mNew, m2New, sigS, sigma;
     967             : 
     968             :   // Model parameters.
     969             :   int eDopMode, eDnGrav, eDcutoff;
     970             :   double eDMD, eDLambdaT, eDtff;
     971             : 
     972             : };
     973             : 
     974             : //==========================================================================
     975             : 
     976             : } // end namespace Pythia8
     977             : 
     978             : #endif // Pythia8_SigmaExtraDim_H

Generated by: LCOV version 1.11