Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // SigmaNewGaugeBosons.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 new-gauge-boson-process differential cross sections.
0007 // Contains classes derived from SigmaProcess via Sigma1Process.
0008 
0009 #ifndef Pythia8_SigmaNewGaugeBosons_H
0010 #define Pythia8_SigmaNewGaugeBosons_H
0011 
0012 #include "Pythia8/PythiaComplex.h"
0013 #include "Pythia8/SigmaProcess.h"
0014 
0015 namespace Pythia8 {
0016 
0017 //==========================================================================
0018 
0019 // An intermediate class for f fbar -> Z'/W' -> WW/WZ -> 4 fermions.
0020 // Copied from SigmaEW for gauge-boson-pair production.
0021 
0022 class Sigma1ffbarZprimeWprime: public Sigma1Process {
0023 
0024 public:
0025 
0026   // Constructor.
0027   Sigma1ffbarZprimeWprime() {}
0028 
0029 protected:
0030 
0031   // Internal products.
0032   Vec4    pRot[7];
0033   complex hA[7][7];
0034   complex hC[7][7];
0035 
0036   // Calculate and store internal products.
0037   void setupProd( Event& process, int i1, int i2, int i3, int i4,
0038     int i5, int i6);
0039 
0040   // Evaluate the F function of Gunion and Kunszt.
0041   complex fGK(int i1, int i2, int i3, int i4, int i5, int i6);
0042 
0043   // Evaluate the Xi function of Gunion and Kunszt.
0044   double xiGK( double tHnow, double uHnow, double s3now, double s4now);
0045 
0046   // Evaluate the Xj function of Gunion and Kunszt.
0047   double xjGK( double tHnow, double uHnow, double s3now, double s4now);
0048 
0049 private:
0050 
0051 };
0052 
0053 //==========================================================================
0054 
0055 // A derived class for f fbar -> gamma*/Z0/Z'0.
0056 
0057 class Sigma1ffbar2gmZZprime : public Sigma1ffbarZprimeWprime {
0058 
0059 public:
0060 
0061   // Constructor.
0062   Sigma1ffbar2gmZZprime() : gmZmode(), maxZpGen(), mRes(), GammaRes(),
0063     m2Res(), GamMRat(), sin2tW(), cos2tW(), thetaWRat(), mZ(), GammaZ(), m2Z(),
0064     GamMRatZ(), afZp(), vfZp(), coupZpWW(), anglesZpWW(), gamSum(), gamZSum(),
0065     ZSum(), gamZpSum(), ZZpSum(), ZpSum(), gamNorm(), gamZNorm(), ZNorm(),
0066     gamZpNorm(), ZZpNorm(), ZpNorm(), particlePtr() {}
0067 
0068   // Initialize process.
0069   virtual void initProc();
0070 
0071   // Calculate flavour-independent parts of cross section.
0072   virtual void sigmaKin();
0073 
0074   // Evaluate sigmaHat(sHat).
0075   virtual double sigmaHat();
0076 
0077   // Select flavour, colour and anticolour.
0078   virtual void setIdColAcol();
0079 
0080   // Evaluate weight for Z' decay angle.
0081   virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
0082 
0083   // Info on the subprocess.
0084   virtual string name()       const {return "f fbar -> gamma*/Z0/Zprime0";}
0085   virtual int    code()       const {return 3001;}
0086   virtual string inFlux()     const {return "ffbarSame";}
0087   virtual int    resonanceA() const {return 23;}
0088   virtual int    resonanceB() const {return 32;}
0089 
0090 private:
0091 
0092   // Parameters set at initialization or for each new event.
0093   int    gmZmode, maxZpGen;
0094   double mRes, GammaRes, m2Res, GamMRat, sin2tW, cos2tW, thetaWRat,
0095          mZ, GammaZ, m2Z, GamMRatZ, afZp[20], vfZp[20], coupZpWW,
0096          anglesZpWW, gamSum, gamZSum, ZSum, gamZpSum, ZZpSum, ZpSum,
0097          gamNorm, gamZNorm, ZNorm, gamZpNorm, ZZpNorm, ZpNorm;
0098 
0099   // Pointer to properties of the particle species, to access decay channels.
0100   ParticleDataEntryPtr particlePtr;
0101 
0102 };
0103 
0104 //==========================================================================
0105 
0106 // A derived class for f fbar' -> W'+-.
0107 
0108 class Sigma1ffbar2Wprime : public Sigma1ffbarZprimeWprime {
0109 
0110 public:
0111 
0112   // Constructor.
0113   Sigma1ffbar2Wprime() : mRes(), GammaRes(), m2Res(), GamMRat(), thetaWRat(),
0114     sigma0Pos(), sigma0Neg(), aqWp(), vqWp(), alWp(), vlWp(), coupWpWZ(),
0115     anglesWpWZ(), particlePtr() {}
0116 
0117   // Initialize process.
0118   virtual void initProc();
0119 
0120   // Calculate flavour-independent parts of cross section.
0121   virtual void sigmaKin();
0122 
0123   // Evaluate sigmaHat(sHat).
0124   virtual double sigmaHat();
0125 
0126   // Select flavour, colour and anticolour.
0127   virtual void setIdColAcol();
0128 
0129   // Evaluate weight for W decay angle.
0130   virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
0131 
0132   // Info on the subprocess.
0133   virtual string name()       const {return "f fbar' -> W'+-";}
0134   virtual int    code()       const {return 3021;}
0135   virtual string inFlux()     const {return "ffbarChg";}
0136   virtual int    resonanceA() const {return 34;}
0137 
0138 private:
0139 
0140   // Parameters set at initialization.
0141   double mRes, GammaRes, m2Res, GamMRat, thetaWRat, sigma0Pos, sigma0Neg,
0142          aqWp, vqWp, alWp, vlWp, coupWpWZ, anglesWpWZ;
0143 
0144   // Pointer to properties of the particle species, to access decay channels.
0145   ParticleDataEntryPtr particlePtr;
0146 
0147 };
0148 //==========================================================================
0149 
0150 // A derived class for f fbar' -> R^0 (horizontal gauge boson).
0151 
0152 class Sigma1ffbar2Rhorizontal : public Sigma1Process {
0153 
0154 public:
0155 
0156   // Constructor.
0157   Sigma1ffbar2Rhorizontal() : mRes(), GammaRes(), m2Res(), GamMRat(),
0158     thetaWRat(), sigma0Pos(), sigma0Neg(), particlePtr() {}
0159 
0160   // Initialize process.
0161   virtual void initProc();
0162 
0163   // Calculate flavour-independent parts of cross section.
0164   virtual void sigmaKin();
0165 
0166   // Evaluate sigmaHat(sHat).
0167   virtual double sigmaHat();
0168 
0169   // Select flavour, colour and anticolour.
0170   virtual void setIdColAcol();
0171 
0172   // Info on the subprocess.
0173   virtual string name()       const {return "f fbar' -> R^0";}
0174   virtual int    code()       const {return 3041;}
0175   virtual string inFlux()     const {return "ffbar";}
0176   virtual int    resonanceA() const {return 41;}
0177 
0178 private:
0179 
0180   // Parameters set at initialization.
0181   double mRes, GammaRes, m2Res, GamMRat, thetaWRat, sigma0Pos, sigma0Neg;
0182 
0183   // Pointer to properties of the particle species, to access decay channels.
0184   ParticleDataEntryPtr particlePtr;
0185 
0186 };
0187 
0188 //==========================================================================
0189 
0190 } // end namespace Pythia8
0191 
0192 #endif // Pythia_SigmaNewGaugeBosons_H