Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // SusyResonanceWidths.h is a part of the PYTHIA event generator.
0002 // Copyright (C) 2024 Torbjorn Sjostrand
0003 // Main author of this file: N. Desai
0004 // PYTHIA is licenced under the GNU GPL v2 or later, see COPYING for details.
0005 // Please respect the MCnet Guidelines, see GUIDELINES for details.
0006 
0007 // Header file for SUSY resonance properties: dynamical widths etc.
0008 // SusyResonanceWidths: base class for all SUSY resonances.
0009 
0010 #ifndef Pythia8_SusyResonanceWidths_H
0011 #define Pythia8_SusyResonanceWidths_H
0012 
0013 #include "Pythia8/ParticleData.h"
0014 #include "Pythia8/ResonanceWidths.h"
0015 #include "Pythia8/SusyWidthFunctions.h"
0016 #include "Pythia8/SusyCouplings.h"
0017 
0018 namespace Pythia8 {
0019 
0020 //==========================================================================
0021 
0022 class SUSYResonanceWidths : public ResonanceWidths{
0023 
0024 public:
0025 
0026   // Constructor
0027   SUSYResonanceWidths() {}
0028 
0029   // Destructor
0030   virtual ~SUSYResonanceWidths() {}
0031 
0032 protected:
0033 
0034   // Virtual methods to handle model-specific (non-SM) part of initialization
0035   virtual bool initBSM() override;
0036   virtual bool allowCalc() override;
0037   virtual bool getChannels(int) { return false; };
0038 
0039   static const bool DBSUSY;
0040 
0041 };
0042 
0043 //==========================================================================
0044 
0045 // The ResonanceSquark class handles the Squark resonances.
0046 
0047 class ResonanceSquark : public SUSYResonanceWidths {
0048 
0049 public:
0050 
0051   // Constructor.
0052   ResonanceSquark(int idResIn) : s2W() {initBasic(idResIn);}
0053 
0054 
0055 private:
0056 
0057   // Locally stored properties and couplings.
0058 
0059   // Initialize constants.
0060   virtual void initConstants() override;
0061 
0062   // Calculate various common prefactors for the current mass.
0063   virtual void calcPreFac(bool = false) override;
0064 
0065   bool getChannels(int idPDG) override;
0066 
0067   // Caclulate width for currently considered channel.
0068   virtual void calcWidth(bool calledFromInit = false) override;
0069 
0070   double s2W;
0071 
0072 };
0073 
0074 //==========================================================================
0075 
0076 // The ResonanceGluino class handles the Gluino resonances.
0077 
0078 class ResonanceGluino : public SUSYResonanceWidths {
0079 
0080 public:
0081 
0082   // Constructor.
0083   ResonanceGluino(int idResIn) {initBasic(idResIn);}
0084 
0085 private:
0086 
0087   bool getChannels(int idPDG) override;
0088 
0089   // Locally stored properties and couplings.
0090 
0091   // Initialize constants.
0092   virtual void initConstants() override;
0093 
0094   // Calculate various common prefactors for the current mass.
0095   virtual void calcPreFac(bool = false) override;
0096 
0097   // Caclulate width for currently considered channel.
0098   virtual void calcWidth(bool calledFromInit = false) override;
0099 
0100 };
0101 
0102 //==========================================================================
0103 
0104 // The ResonanceNeut class handles the Neutralino resonances.
0105 
0106 class ResonanceNeut : public SUSYResonanceWidths {
0107 
0108 public:
0109 
0110   // Constructor.
0111   ResonanceNeut(int idResIn) : kinFac2(), s2W() {initBasic(idResIn);}
0112 
0113 private:
0114 
0115   bool getChannels(int idPDG) override;
0116   // Locally stored properties and couplings.
0117   double kinFac2;
0118 
0119   // Initialize constants.
0120   virtual void initConstants() override;
0121 
0122   // Calculate various common prefactors for the current mass.
0123   virtual void calcPreFac(bool = false) override;
0124 
0125   // Caclulate width for currently considered channel.
0126   virtual void calcWidth(bool calledFromInit = false) override;
0127 
0128   double s2W;
0129 
0130   // Functions for 3-body decays
0131   /* Psi psi; */
0132   /* Phi phi; */
0133   /* Upsilon upsil; */
0134 
0135 };
0136 
0137 //==========================================================================
0138 
0139 // The ResonanceChar class handles the Chargino resonances.
0140 
0141 class ResonanceChar : public SUSYResonanceWidths {
0142 
0143 public:
0144 
0145   // Constructor.
0146   ResonanceChar(int idResIn) : kinFac2(), s2W() {initBasic(idResIn);}
0147 
0148 private:
0149 
0150   bool getChannels(int idPDG) override;
0151 
0152   // Locally stored properties and couplings.
0153   double kinFac2;
0154 
0155   // Initialize constants.
0156   virtual void initConstants() override;
0157 
0158   // Calculate various common prefactors for the current mass.
0159   virtual void calcPreFac(bool = false) override;
0160 
0161   // Caclulate width for currently considered channel.
0162   virtual void calcWidth(bool calledFromInit = false) override;
0163 
0164   double s2W;
0165 
0166   //Functions for 3-body decays
0167   /* Psi psi; */
0168   /* Phi phi; */
0169   /* Upsilon upsil; */
0170 
0171 };
0172 
0173 //==========================================================================
0174 
0175 // The ResonanceSlepton class handles the Slepton/Sneutrino resonances.
0176 
0177 class ResonanceSlepton : public SUSYResonanceWidths {
0178 
0179 public:
0180 
0181   // Constructor.
0182   ResonanceSlepton(int idResIn) : s2W() {initBasic(idResIn);}
0183 
0184 private:
0185 
0186   bool getChannels(int idPDG) override;
0187 
0188   // Locally stored properties and couplings.
0189 
0190   // Initialize constants.
0191   virtual void initConstants() override;
0192 
0193   // Calculate various common prefactors for the current mass.
0194   virtual void calcPreFac(bool = false) override;
0195 
0196   // Calculate width for currently considered channel.
0197   virtual void calcWidth(bool calledFromInit = false) override;
0198 
0199   double s2W;
0200 
0201   // Three-body stau decaywidth classes
0202   StauWidths stauWidths;
0203 
0204 };
0205 
0206 //==========================================================================
0207 
0208 } // end namespace Pythia8
0209 
0210 #endif // end Pythia8_SusyResonanceWidths_H