PYTHIA  8.312
SigmaNewGaugeBosons.h
1 // SigmaNewGaugeBosons.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2024 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 
23 
24 public:
25 
26  // Constructor.
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 
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  ParticleDataEntryPtr particlePtr;
101 
102 };
103 
104 //==========================================================================
105 
106 // A derived class for f fbar' -> W'+-.
107 
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  ParticleDataEntryPtr particlePtr;
146 
147 };
148 //==========================================================================
149 
150 // A derived class for f fbar' -> R^0 (horizontal gauge boson).
151 
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  ParticleDataEntryPtr particlePtr;
185 
186 };
187 
188 //==========================================================================
189 
190 } // end namespace Pythia8
191 
192 #endif // Pythia_SigmaNewGaugeBosons_H
virtual string name() const
Info on the subprocess.
Definition: SigmaNewGaugeBosons.h:133
Sigma1ffbar2Wprime()
Constructor.
Definition: SigmaNewGaugeBosons.h:113
virtual void sigmaKin()
Calculate flavour-independent parts of cross section.
Definition: SigmaProcess.h:132
std::complex< double > complex
Convenient typedef for double precision complex numbers.
Definition: PythiaComplex.h:17
virtual double sigmaHat()
Evaluate sigmaHat(sHat) for resolved 2 -> 1 processes.
Definition: SigmaProcess.h:454
Definition: SigmaNewGaugeBosons.h:22
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaNewGaugeBosons.h:135
Definition: SigmaProcess.h:439
The Event class holds all info on the generated event.
Definition: Event.h:453
virtual double weightDecay(Event &, int, int)
Definition: SigmaProcess.h:169
complex fGK(int i1, int i2, int i3, int i4, int i5, int i6)
Evaluate the F function of Gunion and Kunszt.
Definition: SigmaNewGaugeBosons.cc:71
Sigma1ffbar2gmZZprime()
Constructor.
Definition: SigmaNewGaugeBosons.h:62
double xiGK(double tHnow, double uHnow, double s3now, double s4now)
Evaluate the Xi function of Gunion and Kunszt.
Definition: SigmaNewGaugeBosons.cc:83
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaNewGaugeBosons.h:87
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaNewGaugeBosons.h:86
void setupProd(Event &process, int i1, int i2, int i3, int i4, int i5, int i6)
Calculate and store internal products.
Definition: SigmaNewGaugeBosons.cc:24
Vec4 pRot[7]
Internal products.
Definition: SigmaNewGaugeBosons.h:32
virtual void setIdColAcol()
Select flavour, colour and anticolour.
Definition: SigmaProcess.h:156
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaNewGaugeBosons.h:176
A derived class for f fbar&#39; -> R^0 (horizontal gauge boson).
Definition: SigmaNewGaugeBosons.h:152
double xjGK(double tHnow, double uHnow, double s3now, double s4now)
Evaluate the Xj function of Gunion and Kunszt.
Definition: SigmaNewGaugeBosons.cc:97
virtual string name() const
Info on the subprocess.
Definition: SigmaNewGaugeBosons.h:84
virtual int gmZmode() const
Special process-specific gamma*/Z0 choice if >=0 (e.g. f fbar -> H0 Z0).
Definition: SigmaProcess.h:232
A derived class for f fbar&#39; -> W&#39;+-.
Definition: SigmaNewGaugeBosons.h:108
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaNewGaugeBosons.h:136
Sigma1ffbarZprimeWprime()
Constructor.
Definition: SigmaNewGaugeBosons.h:27
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
A derived class for f fbar -> gamma*/Z0/Z&#39;0.
Definition: SigmaNewGaugeBosons.h:57
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaNewGaugeBosons.h:175
virtual string name() const
Info on the subprocess.
Definition: SigmaNewGaugeBosons.h:173
Definition: Basics.h:32
Sigma1ffbar2Rhorizontal()
Constructor.
Definition: SigmaNewGaugeBosons.h:157
virtual void initProc()
Initialize process. Only used for some processes.
Definition: SigmaProcess.h:105