Line data Source code
1 : // SigmaLeftRightSym.h is a part of the PYTHIA event generator.
2 : // Copyright (C) 2015 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 left-rights-symmetry differential cross sections.
7 : // Contains classes derived from SigmaProcess via Sigma(1/2/3)Process.
8 :
9 : #ifndef Pythia8_SigmaLeftRightSym_H
10 : #define Pythia8_SigmaLeftRightSym_H
11 :
12 : #include "Pythia8/SigmaProcess.h"
13 :
14 : namespace Pythia8 {
15 :
16 : //==========================================================================
17 :
18 : // A derived class for f fbar -> Z_R^0 (righthanded gauge boson).
19 :
20 0 : class Sigma1ffbar2ZRight : public Sigma1Process {
21 :
22 : public:
23 :
24 : // Constructor.
25 0 : Sigma1ffbar2ZRight() {}
26 :
27 : // Initialize process.
28 : virtual void initProc();
29 :
30 : // Calculate flavour-independent parts of cross section.
31 : virtual void sigmaKin();
32 :
33 : // Evaluate sigmaHat(sHat).
34 : virtual double sigmaHat();
35 :
36 : // Select flavour, colour and anticolour.
37 : virtual void setIdColAcol();
38 :
39 : // Evaluate weight for G* decay angle.
40 : virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
41 :
42 : // Info on the subprocess.
43 0 : virtual string name() const {return "f fbar -> Z_R^0";}
44 0 : virtual int code() const {return 3101;}
45 0 : virtual string inFlux() const {return "ffbarSame";}
46 0 : virtual int resonanceA() const {return idZR;}
47 :
48 : private:
49 :
50 : // Parameters set at initialization or for current kinematics.
51 : int idZR;
52 : double mRes, GammaRes, m2Res, GamMRat, sin2tW, sigma0;
53 :
54 : // Pointer to properties of the particle species, to access decay channels.
55 : ParticleDataEntry* ZRPtr;
56 :
57 : };
58 :
59 : //==========================================================================
60 :
61 : // A derived class for f fbar' -> W_R^+- (righthanded gauge boson).
62 :
63 0 : class Sigma1ffbar2WRight : public Sigma1Process {
64 :
65 : public:
66 :
67 : // Constructor.
68 0 : Sigma1ffbar2WRight() {}
69 :
70 : // Initialize process.
71 : virtual void initProc();
72 :
73 : // Calculate flavour-independent parts of cross section.
74 : virtual void sigmaKin();
75 :
76 : // Evaluate sigmaHat(sHat).
77 : virtual double sigmaHat();
78 :
79 : // Select flavour, colour and anticolour.
80 : virtual void setIdColAcol();
81 :
82 : // Evaluate weight for W decay angle.
83 : virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
84 :
85 : // Info on the subprocess.
86 0 : virtual string name() const {return "f fbar' -> W_R^+-";}
87 0 : virtual int code() const {return 3102;}
88 0 : virtual string inFlux() const {return "ffbarChg";}
89 0 : virtual int resonanceA() const {return idWR;}
90 :
91 : private:
92 :
93 : // Parameters set at initialization.
94 : int idWR;
95 : double mRes, GammaRes, m2Res, GamMRat, thetaWRat, sigma0Pos, sigma0Neg;
96 :
97 : // Pointer to properties of the particle species, to access decay channels.
98 : ParticleDataEntry* particlePtr;
99 :
100 : };
101 :
102 : //==========================================================================
103 :
104 : // A derived class for l l -> H_L^++-- or H_R^++-- (doubly charged Higgs).
105 :
106 0 : class Sigma1ll2Hchgchg : public Sigma1Process {
107 :
108 : public:
109 :
110 : // Constructor.
111 0 : Sigma1ll2Hchgchg(int leftRightIn ) : leftRight(leftRightIn) {}
112 :
113 : // Initialize process.
114 : virtual void initProc();
115 :
116 : // Evaluate sigmaHat(sHat).
117 : virtual double sigmaHat();
118 :
119 : // Select flavour, colour and anticolour.
120 : virtual void setIdColAcol();
121 :
122 : // Evaluate weight for W decay angle.
123 : virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
124 :
125 : // Info on the subprocess.
126 0 : virtual string name() const {return nameSave;}
127 0 : virtual int code() const {return codeSave;}
128 0 : virtual string inFlux() const {return "ff";}
129 0 : virtual int resonanceA() const {return idHLR;}
130 :
131 : private:
132 :
133 : // Parameters set at initialization.
134 : int leftRight, idHLR, codeSave;
135 : string nameSave;
136 : double mRes, GammaRes, m2Res, GamMRat, yukawa[4][4];
137 :
138 : // Pointer to properties of the particle species, to access decay channels.
139 : ParticleDataEntry* particlePtr;
140 :
141 : };
142 :
143 : //==========================================================================
144 :
145 : // A derived class for l- gamma -> H_(L/R)^-- l+ (doubly charged Higgs).
146 :
147 0 : class Sigma2lgm2Hchgchgl : public Sigma2Process {
148 :
149 : public:
150 :
151 : // Constructor.
152 0 : Sigma2lgm2Hchgchgl(int leftRightIn, int idLepIn ) : leftRight(leftRightIn),
153 0 : idLep(idLepIn) {}
154 :
155 : // Initialize process.
156 : virtual void initProc();
157 :
158 : // Evaluate sigmaHat(sHat).
159 : virtual double sigmaHat();
160 :
161 : // Select flavour, colour and anticolour.
162 : virtual void setIdColAcol();
163 :
164 : // Evaluate weight for W decay angle.
165 : virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
166 :
167 : // Info on the subprocess.
168 0 : virtual string name() const {return nameSave;}
169 0 : virtual int code() const {return codeSave;}
170 0 : virtual string inFlux() const {return "fgm";}
171 0 : virtual int resonanceA() const {return idHLR;}
172 :
173 : private:
174 :
175 : // Parameters set at initialization.
176 : int leftRight, idHLR, idLep, codeSave;
177 : string nameSave;
178 : double yukawa[4], openFracPos, openFracNeg;
179 :
180 : };
181 :
182 : //==========================================================================
183 :
184 : // A derived class for f_1 f_2 -> H_(L/R)^++-- f_3 f_4 (W+- W+- fusion).
185 :
186 0 : class Sigma3ff2HchgchgfftWW : public Sigma3Process {
187 :
188 : public:
189 :
190 : // Constructor.
191 0 : Sigma3ff2HchgchgfftWW(int leftRightIn) : leftRight(leftRightIn) {}
192 :
193 : // Initialize process.
194 : virtual void initProc();
195 :
196 : // Calculate flavour-independent parts of cross section.
197 : virtual void sigmaKin();
198 :
199 : // Evaluate sigmaHat(sHat).
200 : virtual double sigmaHat();
201 :
202 : // Select flavour, colour and anticolour.
203 : virtual void setIdColAcol();
204 :
205 : // Evaluate weight for decay angles.
206 : virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
207 :
208 : // Info on the subprocess.
209 0 : virtual string name() const {return nameSave;}
210 0 : virtual int code() const {return codeSave;}
211 0 : virtual string inFlux() const {return "ff";}
212 0 : virtual int id3Mass() const {return idHLR;}
213 :
214 : // Instructions for 3-body phase space with t-channel propagators.
215 0 : virtual int idTchan1() const {return 9900024;}
216 0 : virtual int idTchan2() const {return 9900024;}
217 0 : virtual double tChanFracPow1() const {return 0.05;}
218 0 : virtual double tChanFracPow2() const {return 0.9;}
219 0 : virtual bool useMirrorWeight() const {return true;}
220 :
221 : private:
222 :
223 : // Store standard prefactor.
224 : int leftRight, idHLR, codeSave;
225 : string nameSave;
226 : double mWS, prefac, sigma0TU, sigma0T, openFracPos, openFracNeg;
227 :
228 : };
229 :
230 : //==========================================================================
231 :
232 : // A derived class for f fbar -> H_(L/R)^++ H_(L/R)^-- (doubly charged Higgs).
233 :
234 0 : class Sigma2ffbar2HchgchgHchgchg : public Sigma2Process {
235 :
236 : public:
237 :
238 : // Constructor.
239 0 : Sigma2ffbar2HchgchgHchgchg(int leftRightIn) : leftRight(leftRightIn) {}
240 :
241 : // Initialize process.
242 : virtual void initProc();
243 :
244 : // Evaluate sigmaHat(sHat).
245 : virtual double sigmaHat();
246 :
247 : // Select flavour, colour and anticolour.
248 : virtual void setIdColAcol();
249 :
250 : // Evaluate weight for W decay angle.
251 : virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
252 :
253 : // Info on the subprocess.
254 0 : virtual string name() const {return nameSave;}
255 0 : virtual int code() const {return codeSave;}
256 0 : virtual string inFlux() const {return "ffbarSame";}
257 0 : virtual int id3Mass() const {return idHLR;}
258 0 : virtual int id4Mass() const {return idHLR;}
259 0 : virtual int resonanceA() const {return 23;}
260 :
261 : private:
262 :
263 : // Parameters set at initialization.
264 : int leftRight, idHLR, codeSave;
265 : string nameSave;
266 : double mRes, GammaRes, m2Res, GamMRat, sin2tW, preFac, yukawa[4][4],
267 : openFrac;
268 :
269 : };
270 :
271 : //==========================================================================
272 :
273 : } // end namespace Pythia8
274 :
275 : #endif // Pythia8_SigmaLeftRightSym_H
|