]>
Commit | Line | Data |
---|---|---|
63ba5337 | 1 | // SigmaLeptoquark.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 leptoquark-process differential cross sections. | |
7 | // Contains classes derived from SigmaProcess via Sigma(1/2)Process. | |
8 | // Note: since leptoquark assumed scalar no need for decay-angles routines. | |
9 | ||
10 | #ifndef Pythia8_SigmaLeptoquark_H | |
11 | #define Pythia8_SigmaLeptoquark_H | |
12 | ||
13 | #include "SigmaProcess.h" | |
14 | ||
15 | namespace Pythia8 { | |
16 | ||
17 | //========================================================================== | |
18 | ||
19 | // A derived class for q l -> LQ (leptoquark). | |
20 | ||
21 | class Sigma1ql2LeptoQuark : public Sigma1Process { | |
22 | ||
23 | public: | |
24 | ||
25 | // Constructor. | |
26 | Sigma1ql2LeptoQuark() {} | |
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 | // Info on the subprocess. | |
41 | virtual string name() const {return "q l -> LQ (leptoquark)";} | |
42 | virtual int code() const {return 3201;} | |
43 | virtual string inFlux() const {return "ff";} | |
44 | virtual int resonanceA() const {return 42;} | |
45 | ||
46 | private: | |
47 | ||
48 | // Parameters set at initialization or for current kinematics. | |
49 | int idQuark, idLepton; | |
50 | double mRes, GammaRes, m2Res, GamMRat, kCoup, widthIn, sigBW; | |
51 | ||
52 | // Pointer to properties of the particle species, to access decay channel. | |
53 | ParticleDataEntry* LQPtr; | |
54 | ||
55 | }; | |
56 | ||
57 | //========================================================================== | |
58 | ||
59 | // A derived class for q g -> LQ l (leptoquark). | |
60 | ||
61 | class Sigma2qg2LeptoQuarkl : public Sigma2Process { | |
62 | ||
63 | public: | |
64 | ||
65 | // Constructor. | |
66 | Sigma2qg2LeptoQuarkl() {} | |
67 | ||
68 | // Initialize process. | |
69 | virtual void initProc(); | |
70 | ||
71 | // Calculate flavour-independent parts of cross section. | |
72 | virtual void sigmaKin(); | |
73 | ||
74 | // Evaluate sigmaHat(sHat). | |
75 | virtual double sigmaHat(); | |
76 | ||
77 | // Select flavour, colour and anticolour. | |
78 | virtual void setIdColAcol(); | |
79 | ||
80 | // Info on the subprocess. | |
81 | virtual string name() const {return "q g -> LQ l (leptoquark)";} | |
82 | virtual int code() const {return 3202;} | |
83 | virtual string inFlux() const {return "qg";} | |
84 | virtual int id3Mass() const {return 42;} | |
85 | ||
86 | private: | |
87 | ||
88 | // Parameters set at initialization or for current kinematics. | |
89 | int idQuark, idLepton; | |
90 | double mRes, GammaRes, m2Res, GamMRat, kCoup, openFracPos, openFracNeg, | |
91 | sigma0; | |
92 | ||
93 | }; | |
94 | ||
95 | //========================================================================== | |
96 | ||
97 | // A derived class for g g -> LQ LQbar (leptoquark). | |
98 | ||
99 | class Sigma2gg2LQLQbar : public Sigma2Process { | |
100 | ||
101 | public: | |
102 | ||
103 | // Constructor. | |
104 | Sigma2gg2LQLQbar() {} | |
105 | ||
106 | // Initialize process. | |
107 | virtual void initProc(); | |
108 | ||
109 | // Calculate flavour-independent parts of cross section. | |
110 | virtual void sigmaKin(); | |
111 | ||
112 | // Evaluate sigmaHat(sHat). | |
113 | virtual double sigmaHat() {return sigma;} | |
114 | ||
115 | // Select flavour, colour and anticolour. | |
116 | virtual void setIdColAcol(); | |
117 | ||
118 | // Info on the subprocess. | |
119 | virtual string name() const {return "g g -> LQ LQbar (leptoquark)";} | |
120 | virtual int code() const {return 3203;} | |
121 | virtual string inFlux() const {return "gg";} | |
122 | virtual int id3Mass() const {return 42;} | |
123 | virtual int id4Mass() const {return 42;} | |
124 | ||
125 | private: | |
126 | ||
127 | // Parameters set at initialization or for current kinematics. | |
128 | double mRes, GammaRes, m2Res, GamMRat, openFrac, sigma; | |
129 | ||
130 | }; | |
131 | ||
132 | //========================================================================== | |
133 | ||
134 | // A derived class for q qbar -> LQ LQbar (leptoquark). | |
135 | ||
136 | class Sigma2qqbar2LQLQbar : public Sigma2Process { | |
137 | ||
138 | public: | |
139 | ||
140 | // Constructor. | |
141 | Sigma2qqbar2LQLQbar() {} | |
142 | ||
143 | // Initialize process. | |
144 | virtual void initProc(); | |
145 | ||
146 | // Calculate flavour-independent parts of cross section. | |
147 | virtual void sigmaKin(); | |
148 | ||
149 | // Evaluate sigmaHat(sHat). | |
150 | virtual double sigmaHat() { | |
151 | return (abs(id1) == idQuark) ? sigmaSame : sigmaDiff;} | |
152 | ||
153 | // Select flavour, colour and anticolour. | |
154 | virtual void setIdColAcol(); | |
155 | ||
156 | // Info on the subprocess. | |
157 | virtual string name() const {return "q qbar -> LQ LQbar (leptoquark)";} | |
158 | virtual int code() const {return 3204;} | |
159 | virtual string inFlux() const {return "qqbarSame";} | |
160 | virtual int id3Mass() const {return 42;} | |
161 | virtual int id4Mass() const {return 42;} | |
162 | ||
163 | private: | |
164 | ||
165 | // Parameters set at initialization or for current kinematics. | |
166 | int idQuark; | |
167 | double mRes, GammaRes, m2Res, GamMRat, kCoup, openFrac, sigmaDiff, | |
168 | sigmaSame; | |
169 | ||
170 | }; | |
171 | ||
172 | //========================================================================== | |
173 | ||
174 | } // end namespace Pythia8 | |
175 | ||
176 | #endif // Pythia8_SigmaLeptoquark_H |