1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
|
// SigmaNewGaugeBosons.h is a part of the PYTHIA event generator.
// Copyright (C) 2012 Torbjorn Sjostrand.
// PYTHIA is licenced under the GNU GPL version 2, see COPYING for details.
// Please respect the MCnet Guidelines, see GUIDELINES for details.
// Header file for new-gauge-boson-process differential cross sections.
// Contains classes derived from SigmaProcess via Sigma1Process.
#ifndef Pythia8_SigmaNewGaugeBosons_H
#define Pythia8_SigmaNewGaugeBosons_H
#include "PythiaComplex.h"
#include "SigmaProcess.h"
namespace Pythia8 {
//==========================================================================
// An intermediate class for f fbar -> Z'/W' -> WW/WZ -> 4 fermions.
// Copied from SigmaEW for gauge-boson-pair production.
class Sigma1ffbarZprimeWprime: public Sigma1Process {
public:
// Constructor.
Sigma1ffbarZprimeWprime() {}
protected:
// Internal products.
Vec4 pRot[7];
complex hA[7][7];
complex hC[7][7];
// Calculate and store internal products.
void setupProd( Event& process, int i1, int i2, int i3, int i4,
int i5, int i6);
// Evaluate the F function of Gunion and Kunszt.
complex fGK(int i1, int i2, int i3, int i4, int i5, int i6);
// Evaluate the Xi function of Gunion and Kunszt.
double xiGK( double tHnow, double uHnow, double s3now, double s4now);
// Evaluate the Xj function of Gunion and Kunszt.
double xjGK( double tHnow, double uHnow, double s3now, double s4now);
private:
};
//==========================================================================
// A derived class for f fbar -> gamma*/Z0/Z'0.
class Sigma1ffbar2gmZZprime : public Sigma1ffbarZprimeWprime {
public:
// Constructor.
Sigma1ffbar2gmZZprime() {}
// Initialize process.
virtual void initProc();
// Calculate flavour-independent parts of cross section.
virtual void sigmaKin();
// Evaluate sigmaHat(sHat).
virtual double sigmaHat();
// Select flavour, colour and anticolour.
virtual void setIdColAcol();
// Evaluate weight for Z' decay angle.
virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
// Info on the subprocess.
virtual string name() const {return "f fbar -> gamma*/Z0/Zprime0";}
virtual int code() const {return 3001;}
virtual string inFlux() const {return "ffbarSame";}
virtual int resonanceA() const {return 23;}
virtual int resonanceB() const {return 32;}
private:
// Parameters set at initialization or for each new event.
int gmZmode;
double mRes, GammaRes, m2Res, GamMRat, sin2tW, cos2tW, thetaWRat,
mZ, GammaZ, m2Z, GamMRatZ, afZp[20], vfZp[20], coupZpWW,
anglesZpWW, gamSum, gamZSum, ZSum, gamZpSum, ZZpSum, ZpSum,
gamNorm, gamZNorm, ZNorm, gamZpNorm, ZZpNorm, ZpNorm;
// Pointer to properties of the particle species, to access decay channels.
ParticleDataEntry* particlePtr;
};
//==========================================================================
// A derived class for f fbar' -> W'+-.
class Sigma1ffbar2Wprime : public Sigma1ffbarZprimeWprime {
public:
// Constructor.
Sigma1ffbar2Wprime() {}
// Initialize process.
virtual void initProc();
// Calculate flavour-independent parts of cross section.
virtual void sigmaKin();
// Evaluate sigmaHat(sHat).
virtual double sigmaHat();
// Select flavour, colour and anticolour.
virtual void setIdColAcol();
// Evaluate weight for W decay angle.
virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
// Info on the subprocess.
virtual string name() const {return "f fbar' -> W'+-";}
virtual int code() const {return 3021;}
virtual string inFlux() const {return "ffbarChg";}
virtual int resonanceA() const {return 34;}
private:
// Parameters set at initialization.
double mRes, GammaRes, m2Res, GamMRat, thetaWRat, sigma0Pos, sigma0Neg,
aqWp, vqWp, alWp, vlWp, coupWpWZ, anglesWpWZ;
// Pointer to properties of the particle species, to access decay channels.
ParticleDataEntry* particlePtr;
};
//==========================================================================
// A derived class for f fbar' -> R^0 (horizontal gauge boson).
class Sigma1ffbar2Rhorizontal : public Sigma1Process {
public:
// Constructor.
Sigma1ffbar2Rhorizontal() {}
// Initialize process.
virtual void initProc();
// Calculate flavour-independent parts of cross section.
virtual void sigmaKin();
// Evaluate sigmaHat(sHat).
virtual double sigmaHat();
// Select flavour, colour and anticolour.
virtual void setIdColAcol();
// Info on the subprocess.
virtual string name() const {return "f fbar' -> R^0";}
virtual int code() const {return 3041;}
virtual string inFlux() const {return "ffbar";}
virtual int resonanceA() const {return 41;}
private:
// Parameters set at initialization.
double mRes, GammaRes, m2Res, GamMRat, thetaWRat, sigma0Pos, sigma0Neg;
// Pointer to properties of the particle species, to access decay channels.
ParticleDataEntry* particlePtr;
};
//==========================================================================
} // end namespace Pythia8
#endif // Pythia_SigmaNewGaugeBosons_H
|