source: HiSusy/trunk/Pythia8/pythia8170/include/SigmaNewGaugeBosons.h @ 1

Last change on this file since 1 was 1, checked in by zerwas, 11 years ago

first import of structure, PYTHIA8 and DELPHES

File size: 5.1 KB
Line 
1// SigmaNewGaugeBosons.h is a part of the PYTHIA event generator.
2// Copyright (C) 2012 Torbjorn Sjostrand.
3// PYTHIA is licenced under the GNU GPL version 2, 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 "PythiaComplex.h"
13#include "SigmaProcess.h"
14
15namespace 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
22class Sigma1ffbarZprimeWprime: public Sigma1Process {
23
24public:
25
26  // Constructor.
27  Sigma1ffbarZprimeWprime() {}
28
29protected:
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
49private:
50
51};
52 
53//==========================================================================
54
55// A derived class for f fbar -> gamma*/Z0/Z'0.
56
57class Sigma1ffbar2gmZZprime : public Sigma1ffbarZprimeWprime {
58
59public:
60
61  // Constructor.
62  Sigma1ffbar2gmZZprime() {}
63
64  // Initialize process.
65  virtual void initProc(); 
66
67  // Calculate flavour-independent parts of cross section.
68  virtual void sigmaKin();
69
70  // Evaluate sigmaHat(sHat).
71  virtual double sigmaHat();
72
73  // Select flavour, colour and anticolour.
74  virtual void setIdColAcol();
75
76  // Evaluate weight for Z' decay angle.
77  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
78
79  // Info on the subprocess.
80  virtual string name()       const {return "f fbar -> gamma*/Z0/Zprime0";}
81  virtual int    code()       const {return 3001;}
82  virtual string inFlux()     const {return "ffbarSame";}
83  virtual int    resonanceA() const {return 23;}
84  virtual int    resonanceB() const {return 32;}
85
86private:
87
88  // Parameters set at initialization or for each new event.
89  int    gmZmode;
90  double mRes, GammaRes, m2Res, GamMRat, sin2tW, cos2tW, thetaWRat, 
91         mZ, GammaZ, m2Z, GamMRatZ, afZp[20], vfZp[20], coupZpWW,
92         anglesZpWW, gamSum, gamZSum, ZSum, gamZpSum, ZZpSum, ZpSum,
93         gamNorm, gamZNorm, ZNorm, gamZpNorm, ZZpNorm, ZpNorm;
94
95  // Pointer to properties of the particle species, to access decay channels.
96  ParticleDataEntry* particlePtr;
97
98};
99
100//==========================================================================
101
102// A derived class for f fbar' -> W'+-.
103
104class Sigma1ffbar2Wprime : public Sigma1ffbarZprimeWprime {
105
106public:
107
108  // Constructor.
109  Sigma1ffbar2Wprime() {}
110
111  // Initialize process.
112  virtual void initProc(); 
113
114  // Calculate flavour-independent parts of cross section.
115  virtual void sigmaKin();
116
117  // Evaluate sigmaHat(sHat).
118  virtual double sigmaHat();
119
120  // Select flavour, colour and anticolour.
121  virtual void setIdColAcol();
122
123  // Evaluate weight for W decay angle.
124  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
125
126  // Info on the subprocess.
127  virtual string name()       const {return "f fbar' -> W'+-";}
128  virtual int    code()       const {return 3021;}
129  virtual string inFlux()     const {return "ffbarChg";}
130  virtual int    resonanceA() const {return 34;}
131
132private:
133
134  // Parameters set at initialization.
135  double mRes, GammaRes, m2Res, GamMRat, thetaWRat, sigma0Pos, sigma0Neg,
136         aqWp, vqWp, alWp, vlWp, coupWpWZ, anglesWpWZ;
137
138  // Pointer to properties of the particle species, to access decay channels.
139  ParticleDataEntry* particlePtr;
140
141};
142//==========================================================================
143
144// A derived class for f fbar' -> R^0 (horizontal gauge boson).
145
146class Sigma1ffbar2Rhorizontal : public Sigma1Process {
147
148public:
149
150  // Constructor.
151  Sigma1ffbar2Rhorizontal() {}
152
153  // Initialize process.
154  virtual void initProc(); 
155
156  // Calculate flavour-independent parts of cross section.
157  virtual void sigmaKin();
158
159  // Evaluate sigmaHat(sHat).
160  virtual double sigmaHat();
161
162  // Select flavour, colour and anticolour.
163  virtual void setIdColAcol();
164
165  // Info on the subprocess.
166  virtual string name()       const {return "f fbar' -> R^0";}
167  virtual int    code()       const {return 3041;}
168  virtual string inFlux()     const {return "ffbar";}
169  virtual int    resonanceA() const {return 41;}
170
171private:
172
173  // Parameters set at initialization.
174  double mRes, GammaRes, m2Res, GamMRat, thetaWRat, sigma0Pos, sigma0Neg;
175
176  // Pointer to properties of the particle species, to access decay channels.
177  ParticleDataEntry* particlePtr;
178
179};
180 
181//==========================================================================
182
183} // end namespace Pythia8
184
185#endif // Pythia_SigmaNewGaugeBosons_H
Note: See TracBrowser for help on using the repository browser.