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