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