1 // SigmaLeftRightSym.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.
6 // Header file for left-rights-symmetry differential cross sections.
7 // Contains classes derived from SigmaProcess via Sigma(1/2/3)Process.
9 #ifndef Pythia8_SigmaLeftRightSym_H
10 #define Pythia8_SigmaLeftRightSym_H
12 #include "SigmaProcess.h"
16 //**************************************************************************
18 // A derived class for f fbar -> Z_R^0 (righthanded gauge boson).
20 class Sigma1ffbar2ZRight : public Sigma1Process {
25 Sigma1ffbar2ZRight() {}
27 // Initialize process.
28 virtual void initProc();
30 // Calculate flavour-independent parts of cross section.
31 virtual void sigmaKin();
33 // Evaluate sigmaHat(sHat).
34 virtual double sigmaHat();
36 // Select flavour, colour and anticolour.
37 virtual void setIdColAcol();
39 // Evaluate weight for G* decay angle.
40 virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
42 // Info on the subprocess.
43 virtual string name() const {return "f fbar -> Z_R^0";}
44 virtual int code() const {return 3101;}
45 virtual string inFlux() const {return "ffbarSame";}
46 virtual int resonanceA() const {return idZR;}
50 // Parameters set at initialization or for current kinematics.
52 double mRes, GammaRes, m2Res, GamMRat, sin2tW, sigma0;
54 // Pointer to properties of the particle species, to access decay channels.
55 ParticleDataEntry* ZRPtr;
59 //**************************************************************************
61 // A derived class for f fbar' -> W_R^+- (righthanded gauge boson).
63 class Sigma1ffbar2WRight : public Sigma1Process {
68 Sigma1ffbar2WRight() {}
70 // Initialize process.
71 virtual void initProc();
73 // Calculate flavour-independent parts of cross section.
74 virtual void sigmaKin();
76 // Evaluate sigmaHat(sHat).
77 virtual double sigmaHat();
79 // Select flavour, colour and anticolour.
80 virtual void setIdColAcol();
82 // Evaluate weight for W decay angle.
83 virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
85 // Info on the subprocess.
86 virtual string name() const {return "f fbar' -> W_R^+-";}
87 virtual int code() const {return 3102;}
88 virtual string inFlux() const {return "ffbarChg";}
89 virtual int resonanceA() const {return idWR;}
93 // Parameters set at initialization.
95 double mRes, GammaRes, m2Res, GamMRat, thetaWRat, sigma0Pos, sigma0Neg;
97 // Pointer to properties of the particle species, to access decay channels.
98 ParticleDataEntry* particlePtr;
102 //**************************************************************************
104 // A derived class for l l -> H_L^++-- or H_R^++-- (doubly charged Higgs).
106 class Sigma1ll2Hchgchg : public Sigma1Process {
111 Sigma1ll2Hchgchg(int leftRightIn ) : leftRight(leftRightIn) {}
113 // Initialize process.
114 virtual void initProc();
116 // Evaluate sigmaHat(sHat).
117 virtual double sigmaHat();
119 // Select flavour, colour and anticolour.
120 virtual void setIdColAcol();
122 // Evaluate weight for W decay angle.
123 virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
125 // Info on the subprocess.
126 virtual string name() const {return nameSave;}
127 virtual int code() const {return codeSave;}
128 virtual string inFlux() const {return "ff";}
129 virtual int resonanceA() const {return idHLR;}
133 // Parameters set at initialization.
134 int leftRight, idHLR, codeSave;
136 double mRes, GammaRes, m2Res, GamMRat, thetaWRat, yukawa[4][4];
138 // Pointer to properties of the particle species, to access decay channels.
139 ParticleDataEntry* particlePtr;
143 //**************************************************************************
145 // A derived class for l- gamma -> H_(L/R)^-- l+ (doubly charged Higgs).
147 class Sigma2lgm2Hchgchgl : public Sigma2Process {
152 Sigma2lgm2Hchgchgl(int leftRightIn, int idLepIn ) : leftRight(leftRightIn),
155 // Initialize process.
156 virtual void initProc();
158 // Evaluate sigmaHat(sHat).
159 virtual double sigmaHat();
161 // Select flavour, colour and anticolour.
162 virtual void setIdColAcol();
164 // Evaluate weight for W decay angle.
165 virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
167 // Info on the subprocess.
168 virtual string name() const {return nameSave;}
169 virtual int code() const {return codeSave;}
170 virtual string inFlux() const {return "fgm";}
171 virtual int resonanceA() const {return idHLR;}
175 // Parameters set at initialization.
176 int leftRight, idHLR, idLep, codeSave;
178 double yukawa[4], openFracPos, openFracNeg;
182 //**************************************************************************
184 // A derived class for f_1 f_2 -> H_(L/R)^++-- f_3 f_4 (W+- W+- fusion).
186 class Sigma3ff2HchgchgfftWW : public Sigma3Process {
191 Sigma3ff2HchgchgfftWW(int leftRightIn) : leftRight(leftRightIn) {}
193 // Initialize process.
194 virtual void initProc();
196 // Calculate flavour-independent parts of cross section.
197 virtual void sigmaKin();
199 // Evaluate sigmaHat(sHat).
200 virtual double sigmaHat();
202 // Select flavour, colour and anticolour.
203 virtual void setIdColAcol();
205 // Evaluate weight for decay angles.
206 virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
208 // Info on the subprocess.
209 virtual string name() const {return nameSave;}
210 virtual int code() const {return codeSave;}
211 virtual string inFlux() const {return "ff";}
212 virtual int id3Mass() const {return idHLR;}
214 // Instructions for 3-body phase space with t-channel propagators.
215 virtual int idTchan1() const {return 9900024;}
216 virtual int idTchan2() const {return 9900024;}
217 virtual double tChanFracPow1() const {return 0.05;}
218 virtual double tChanFracPow2() const {return 0.9;}
219 virtual bool useMirrorWeight() const {return true;}
223 // Store standard prefactor.
224 int leftRight, idHLR, codeSave;
226 double mWS, prefac, sigma0TU, sigma0T, openFracPos, openFracNeg;
230 //**************************************************************************
232 // A derived class for f fbar -> H_(L/R)^++ H_(L/R)^-- (doubly charged Higgs).
234 class Sigma2ffbar2HchgchgHchgchg : public Sigma2Process {
239 Sigma2ffbar2HchgchgHchgchg(int leftRightIn) : leftRight(leftRightIn) {}
241 // Initialize process.
242 virtual void initProc();
244 // Evaluate sigmaHat(sHat).
245 virtual double sigmaHat();
247 // Select flavour, colour and anticolour.
248 virtual void setIdColAcol();
250 // Evaluate weight for W decay angle.
251 virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
253 // Info on the subprocess.
254 virtual string name() const {return nameSave;}
255 virtual int code() const {return codeSave;}
256 virtual string inFlux() const {return "ffbarSame";}
257 virtual int id3Mass() const {return idHLR;}
258 virtual int id4Mass() const {return idHLR;}
259 virtual int resonanceA() const {return 23;}
263 // Parameters set at initialization.
264 int leftRight, idHLR, codeSave;
266 double mRes, GammaRes, m2Res, GamMRat, sin2tW, preFac, yukawa[4][4],
271 //**************************************************************************
273 } // end namespace Pythia8
275 #endif // Pythia8_SigmaLeftRightSym_H