using option '-treename HLTesdTree' for EsdCollector, adding default parameter for...
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8130 / include / SigmaNewGaugeBosons.h
CommitLineData
5ad4eb21 1// SigmaNewGaugeBosons.h is a part of the PYTHIA event generator.
2// Copyright (C) 2008 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