Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:06:29

0001 // SigmaDM.h is a part of the PYTHIA event generator.
0002 // Copyright (C) 2024 Torbjorn Sjostrand.
0003 // PYTHIA is licenced under the GNU GPL v2 or later, see COPYING for details.
0004 // Please respect the MCnet Guidelines, see GUIDELINES for details.
0005 
0006 // Header file for Dark Matter process differential cross sections.
0007 // Contains classes derived from SigmaProcess.
0008 
0009 #ifndef Pythia8_SigmaDM_H
0010 #define Pythia8_SigmaDM_H
0011 
0012 #include "Pythia8/PythiaComplex.h"
0013 #include "Pythia8/SigmaProcess.h"
0014 #include "Pythia8/StandardModel.h"
0015 
0016 namespace Pythia8 {
0017 
0018 //==========================================================================
0019 
0020 // A derived class for f fbar' -> Zprime -> X X. (Zprime a.k.a. DMmed(s=1).)
0021 
0022 class Sigma1ffbar2Zp2XX : public Sigma1Process {
0023 
0024 public:
0025 
0026   // Constructor.
0027   Sigma1ffbar2Zp2XX() : kinMix(), mRes(), GammaRes(), m2Res(), sigma0(),
0028     preFac(), gZp(), eps(), particlePtr() {}
0029 
0030   // Initialize process.
0031   virtual void initProc();
0032 
0033   // Calculate flavour-independent parts of cross section.
0034   virtual void sigmaKin();
0035 
0036   // Evaluate sigmaHat(sHat).
0037   virtual double sigmaHat();
0038 
0039   // Select flavour, colour and anticolour.
0040   virtual void setIdColAcol();
0041 
0042   // Info on the subprocess.
0043   virtual string name()       const {return "f fbar -> Zp -> XX";}
0044   virtual int    code()       const {return 6001;}
0045   virtual string inFlux()     const {return "qqbar";}
0046   virtual int    resonanceA() const {return 55;} // Zprime
0047   virtual bool   isSChannel() const {return true;}
0048   virtual int    gmZmode()    const {return 3;}
0049 
0050 private:
0051 
0052   // Parameters set at initialization.
0053   bool   kinMix;
0054   double mRes, GammaRes, m2Res, sigma0, preFac, gZp, eps;
0055 
0056   // Pointer to properties of the particle species, to access decay channels.
0057   ParticleDataEntryPtr particlePtr;
0058 
0059 };
0060 
0061 //==========================================================================
0062 
0063 class Sigma2qqbar2Zpg2XXj : public Sigma2Process {
0064 
0065 public:
0066 
0067   // Constructor.
0068   Sigma2qqbar2Zpg2XXj() : kinMix(), mRes(), GammaRes(), m2Res(), preFac(),
0069     sigma0(), gZp(), eps(), particlePtr() {}
0070 
0071   // Initialize process.
0072   virtual void initProc();
0073 
0074   // Calculate flavour-independent parts of cross section.
0075   virtual void sigmaKin();
0076 
0077   // Evaluate sigmaHat(sHat).
0078   virtual double sigmaHat();
0079 
0080   // Select flavour, colour and anticolour.
0081   virtual void setIdColAcol();
0082 
0083   // Info on the subprocess.
0084   virtual string name()       const {return "q qbar -> Zp g -> XX + jet";}
0085   virtual int    code()       const {return 6002;}
0086   virtual string inFlux()     const {return "qqbar";}
0087   virtual int    resonanceA() const {return 55;} // Zprime
0088   virtual int    id3Mass()    const {return 55;}
0089   virtual int    id4Mass()    const {return 21;}
0090   virtual bool   isSChannel() const {return true;}
0091   virtual int    gmZmode()    const {return 3;}
0092 
0093 protected:
0094 
0095   // Parameters set at initialization.
0096   bool   kinMix;
0097   double mRes, GammaRes, m2Res, preFac, sigma0, gZp, eps;
0098 
0099   // Pointer to properties of the particle species, to access decay channels.
0100   ParticleDataEntryPtr particlePtr;
0101 
0102 };
0103 
0104 //==========================================================================
0105 
0106 class Sigma2qg2Zpq2XXj : public Sigma2qqbar2Zpg2XXj {
0107 
0108   // Constructor.
0109   Sigma2qg2Zpq2XXj() {}
0110 
0111   // Info on the subprocess.
0112   virtual string name()       const {return "q g -> Zp q -> XX + jet";}
0113   virtual int    code()       const {return 6003;}
0114   virtual string inFlux()     const {return "qg";}
0115   virtual int    resonanceA() const {return 55;} // Zprime
0116   virtual bool   isSChannel() const {return true;}
0117   virtual int    gmZmode()    const {return 3;}
0118 
0119 };
0120 
0121 //==========================================================================
0122 
0123 // A derived class for f fbar' -> Zprime H, Zprime -> X X.
0124 
0125 class Sigma2ffbar2ZpH : public Sigma2Process {
0126 
0127 public:
0128 
0129   // Constructor.
0130   Sigma2ffbar2ZpH() : kinMix(), mRes(), GammaRes(), m2Res(), sigma0(), gZp(),
0131     eps(), coupZpH(), openFrac(), particlePtr() {}
0132 
0133   // Initialize process.
0134   virtual void initProc();
0135 
0136   // Calculate flavour-independent parts of cross section.
0137   virtual void sigmaKin();
0138 
0139   // Evaluate sigmaHat(sHat).
0140   virtual double sigmaHat();
0141 
0142   // Select flavour, colour and anticolour.
0143   virtual void setIdColAcol();
0144 
0145   // Info on the subprocess.
0146   virtual string name()       const {return "f fbar -> Zprime H";}
0147   virtual int    code()       const {return 6004;}
0148   virtual string inFlux()     const {return "ffbarSame";}
0149   virtual bool   isSChannel() const {return true;}
0150   virtual int    id3Mass()    const {return 55;}
0151   virtual int    id4Mass()    const {return 25;}
0152   virtual int    resonanceA() const {return 55;} // Zprime
0153   virtual int    gmZmode()    const {return 3;}
0154 
0155 private:
0156 
0157   // Parameters set at initialization.
0158   bool   kinMix;
0159   double mRes, GammaRes, m2Res, sigma0, gZp, eps, coupZpH, openFrac;
0160 
0161   // Pointer to properties of the particle species, to access decay channels.
0162   ParticleDataEntryPtr particlePtr;
0163 
0164 };
0165 
0166 //==========================================================================
0167 
0168 class Sigma1gg2S2XX : public Sigma1Process {
0169 
0170 public:
0171 
0172   // Constructor.
0173   Sigma1gg2S2XX() : mRes(), GammaRes(), m2Res(), sigma0(), particlePtr() {}
0174 
0175   // Initialize process.
0176   virtual void initProc();
0177 
0178   // Calculate flavour-independent parts of cross section.
0179   virtual void sigmaKin();
0180 
0181   // Evaluate sigmaHat(sHat).
0182   virtual double sigmaHat();
0183 
0184   // Select flavour, colour and anticolour.
0185   virtual void setIdColAcol();
0186 
0187   // Info on the subprocess.
0188   virtual string name()       const {return "g g -> S -> XX";}
0189   virtual int    code()       const {return 6011;}
0190   virtual string inFlux()     const {return "gg";}
0191   virtual int    resonanceA() const {return 54;} // scalar mediator
0192   virtual bool   isSChannel() const {return true;}
0193 
0194 private:
0195 
0196   // Parameters set at initialization.
0197   double mRes, GammaRes, m2Res, sigma0;
0198 
0199   // Pointer to properties of the particle species, to access decay channels.
0200   ParticleDataEntryPtr particlePtr;
0201 
0202 };
0203 
0204 //==========================================================================
0205 
0206 class Sigma2gg2Sg2XXj : public Sigma2Process {
0207 
0208 public:
0209 
0210   // Constructor.
0211   Sigma2gg2Sg2XXj() : mRes(), GammaRes(), m2Res(), propS(), sigma0(),
0212     particlePtr() {}
0213 
0214   // Initialize process.
0215   virtual void initProc();
0216 
0217   // Calculate flavour-independent parts of cross section.
0218   virtual void sigmaKin();
0219 
0220   // Evaluate sigmaHat(sHat).
0221   virtual double sigmaHat();
0222 
0223   // Select flavour, colour and anticolour.
0224   virtual void setIdColAcol();
0225 
0226   // Info on the subprocess.
0227   virtual string name()       const {return "g g -> S g -> XX + jet";}
0228   virtual int    code()       const {return 6012;}
0229   virtual string inFlux()     const {return "gg";}
0230   virtual int    resonanceA() const {return 54;} // scalar mediator
0231   virtual bool   isSChannel() const {return true;}
0232   virtual int    id3Mass()    const {return 54;}
0233   virtual int    id4Mass()    const {return 21;}
0234 
0235 protected:
0236 
0237   // Parameters set at initialization.
0238   double mRes, GammaRes, m2Res, propS, sigma0;
0239 
0240   // Pointer to properties of the particle species, to access decay channels.
0241   ParticleDataEntryPtr particlePtr;
0242 
0243 };
0244 
0245 //==========================================================================
0246 
0247 class Sigma2qg2Sq2XXj : public Sigma2gg2Sg2XXj {
0248 
0249 public:
0250 
0251   // Constructor.
0252   Sigma2qg2Sq2XXj() {}
0253 
0254   // Info on the subprocess.
0255   virtual string name()       const {return "q g -> S q -> XX + jet";}
0256   virtual int    code()       const {return 6013;}
0257   virtual string inFlux()     const {return "qg";}
0258   virtual bool   isSChannel() const {return true;}
0259 
0260 };
0261 
0262 //==========================================================================
0263 
0264 class Sigma2qqbar2DY : public Sigma2Process {
0265 
0266 public:
0267 
0268   // Constructor,
0269   Sigma2qqbar2DY() : sigma0(), openFracPair(), propRes(), nameSave(), mRes(),
0270     GammaRes(), m2Res(), M1(), M2(), Lambda(), mixN1(), mixN2(), xW(),
0271     coupW11(), coupW12(), coupW2(), yuk(), type(), nplet(), isUD(),
0272     particlePtr() {}
0273 
0274   // Initialize process.
0275   virtual void initProc();
0276 
0277   // Calculate flavour-independent parts of cross section.
0278   virtual void sigmaKin();
0279 
0280   // Evaluate sigmaHat(sHat).
0281   virtual double sigmaHat();
0282 
0283   // Select flavour, colour and anticolour.
0284   virtual void setIdColAcol();
0285 
0286   // Info on the subprocess.
0287   virtual string name()       const {return nameSave;}
0288   virtual int    code()       const {return 6020;}
0289   virtual string inFlux()     const {return "qqbar";}
0290   virtual int    resonanceA() const {return 23;}
0291   virtual bool   isSChannel() const {return true;}
0292   virtual int    id3Mass()    const {return abs(id3);}
0293   virtual int    id4Mass()    const {return abs(id4);}
0294 
0295 protected:
0296 
0297   // Parameters set at initialization.
0298   double  sigma0, openFracPair;
0299   complex propRes;
0300   string  nameSave;
0301   double  mRes, GammaRes, m2Res;
0302 
0303   // Couplings for 5-plet.
0304   double M1, M2, Lambda, mixN1, mixN2, xW, coupW11, coupW12, coupW2;
0305 
0306   // Variables for sleptons.
0307   double yuk[4];
0308 
0309   // Type of model and N-plet. Flag for HNL production.
0310   int  type, nplet;
0311   bool isUD;
0312 
0313   // Pointer to properties of the particle species, to access decay channels.
0314   ParticleDataEntryPtr particlePtr;
0315 
0316   };
0317 
0318 //==========================================================================
0319 
0320 } // end namespace Pythia8
0321 
0322 #endif // Pythia_SigmaDM_H