]>
Commit | Line | Data |
---|---|---|
9419eeef | 1 | // SigmaCompositeness.h is a part of the PYTHIA event generator. |
2 | // Copyright (C) 2010 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 compositiness-process differential cross sections. | |
7 | // Contains classes derived from SigmaProcess via Sigma(1/2)Process. | |
8 | ||
9 | #ifndef Pythia8_SigmaCompositeness_H | |
10 | #define Pythia8_SigmaCompositeness_H | |
11 | ||
12 | #include "SigmaProcess.h" | |
13 | ||
14 | namespace Pythia8 { | |
15 | ||
16 | //========================================================================== | |
17 | ||
18 | // A derived class for q g -> q^* (excited quark state). | |
19 | ||
20 | class Sigma1qg2qStar : public Sigma1Process { | |
21 | ||
22 | public: | |
23 | ||
24 | // Constructor. | |
25 | Sigma1qg2qStar(int idqIn) : idq(idqIn) {} | |
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 q* decay angles (else inactive). | |
40 | virtual double weightDecay( Event& process, int iResBeg, int iResEnd); | |
41 | ||
42 | // Info on the subprocess. | |
43 | virtual string name() const {return nameSave;} | |
44 | virtual int code() const {return codeSave;} | |
45 | virtual string inFlux() const {return "qg";} | |
46 | virtual int resonanceA() const {return idRes;} | |
47 | ||
48 | private: | |
49 | ||
50 | // Parameters set at initialization or for current kinematics. | |
51 | int idq, idRes, codeSave; | |
52 | string nameSave; | |
53 | double mRes, GammaRes, m2Res, GamMRat, Lambda, coupFcol, widthIn, sigBW; | |
54 | ||
55 | // Pointer to properties of the particle species, to access decay channels. | |
56 | ParticleDataEntry* qStarPtr; | |
57 | ||
58 | }; | |
59 | ||
60 | //========================================================================== | |
61 | ||
62 | // A derived class for l gamma -> q^* (excited lepton state). | |
63 | ||
64 | class Sigma1lgm2lStar : public Sigma1Process { | |
65 | ||
66 | public: | |
67 | ||
68 | // Constructor. | |
69 | Sigma1lgm2lStar(int idlIn) : idl(idlIn) {} | |
70 | ||
71 | // Initialize process. | |
72 | virtual void initProc(); | |
73 | ||
74 | // Calculate flavour-independent parts of cross section. | |
75 | virtual void sigmaKin(); | |
76 | ||
77 | // Evaluate sigmaHat(sHat). | |
78 | virtual double sigmaHat(); | |
79 | ||
80 | // Select flavour, colour and anticolour. | |
81 | virtual void setIdColAcol(); | |
82 | ||
83 | // Evaluate weight for l* decay angles (else inactive). | |
84 | virtual double weightDecay( Event& process, int iResBeg, int iResEnd); | |
85 | ||
86 | // Info on the subprocess. | |
87 | virtual string name() const {return nameSave;} | |
88 | virtual int code() const {return codeSave;} | |
89 | virtual string inFlux() const {return "fgm";} | |
90 | virtual int resonanceA() const {return idRes;} | |
91 | ||
92 | private: | |
93 | ||
94 | // Parameters set at initialization or for current kinematics. | |
95 | int idl, idRes, codeSave; | |
96 | string nameSave; | |
97 | double mRes, GammaRes, m2Res, GamMRat, Lambda, coupChg, widthIn, sigBW; | |
98 | ||
99 | // Pointer to properties of the particle species, to access decay channels. | |
100 | ParticleDataEntry* qStarPtr; | |
101 | ||
102 | }; | |
103 | ||
104 | //========================================================================== | |
105 | ||
106 | // A derived class for q q' -> q^* q' (excited quark state). | |
107 | ||
108 | class Sigma2qq2qStarq : public Sigma2Process { | |
109 | ||
110 | public: | |
111 | ||
112 | // Constructor. | |
113 | Sigma2qq2qStarq(int idqIn) : idq(idqIn) {} | |
114 | ||
115 | // Initialize process. | |
116 | virtual void initProc(); | |
117 | ||
118 | // Calculate flavour-independent parts of cross section. | |
119 | virtual void sigmaKin(); | |
120 | ||
121 | // Evaluate sigmaHat(sHat). | |
122 | virtual double sigmaHat(); | |
123 | ||
124 | // Select flavour, colour and anticolour. | |
125 | virtual void setIdColAcol(); | |
126 | ||
127 | // Info on the subprocess. | |
128 | virtual string name() const {return nameSave;} | |
129 | virtual int code() const {return codeSave;} | |
130 | virtual string inFlux() const {return "qq";} | |
131 | virtual int id3Mass() const {return idRes;} | |
132 | ||
133 | private: | |
134 | ||
135 | // Parameters set at initialization or for current kinematics. | |
136 | int idq, idRes, codeSave; | |
137 | string nameSave; | |
138 | double Lambda, preFac, openFracPos, openFracNeg, sigmaA, sigmaB; | |
139 | ||
140 | }; | |
141 | ||
142 | //========================================================================== | |
143 | ||
144 | // A derived class for q qbar -> l^* lbar (excited lepton state). | |
145 | ||
146 | class Sigma2qqbar2lStarlbar : public Sigma2Process { | |
147 | ||
148 | public: | |
149 | ||
150 | // Constructor. | |
151 | Sigma2qqbar2lStarlbar(int idlIn) : idl(idlIn) {} | |
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() {return sigma;} | |
161 | ||
162 | // Select flavour, colour and anticolour. | |
163 | virtual void setIdColAcol(); | |
164 | ||
165 | // Info on the subprocess. | |
166 | virtual string name() const {return nameSave;} | |
167 | virtual int code() const {return codeSave;} | |
168 | virtual string inFlux() const {return "qqbarSame";} | |
169 | virtual int id3Mass() const {return idRes;} | |
170 | ||
171 | private: | |
172 | ||
173 | // Parameters set at initialization or for current kinematics. | |
174 | int idl, idRes, codeSave; | |
175 | string nameSave; | |
176 | double Lambda, preFac, openFracPos, openFracNeg, sigma; | |
177 | ||
178 | }; | |
179 | ||
180 | //========================================================================== | |
181 | ||
182 | // A derived class for q q -> q q (quark contact interactions). | |
183 | // Based on, Sigma2qq2qq (QCD). | |
184 | ||
185 | class Sigma2QCqq2qq : public Sigma2Process { | |
186 | ||
187 | public: | |
188 | ||
189 | // Constructor. | |
190 | Sigma2QCqq2qq(){} | |
191 | ||
192 | // Initialize process. | |
193 | virtual void initProc(); | |
194 | ||
195 | // Calculate flavour-independent parts of cross section. | |
196 | virtual void sigmaKin(); | |
197 | ||
198 | // Evaluate d(sigmaHat)/d(tHat). | |
199 | virtual double sigmaHat(); | |
200 | ||
201 | // Select flavour, colour and anticolour. | |
202 | virtual void setIdColAcol(); | |
203 | ||
204 | // Info on the subprocess. | |
205 | virtual string name() const {return "q q(bar)' -> (QC) -> q q(bar)'";} | |
206 | virtual int code() const {return 4201;} | |
207 | virtual string inFlux() const {return "qq";} | |
208 | ||
209 | private: | |
210 | ||
211 | // Values stored for colour flow selection. | |
212 | double sigT, sigU, sigTU, sigST, sigSum, sigQCSTU, sigQCUTS; | |
213 | ||
214 | // Compositeness parameters. | |
215 | double m_Lambda2; | |
216 | int m_etaLL, m_etaRR, m_etaLR; | |
217 | ||
218 | }; | |
219 | ||
220 | //========================================================================== | |
221 | ||
222 | // A derived class for q qbar -> q' qbar' (quark contact interactions). | |
223 | // Based on, Sigma2qqbar2qqbarNew(QCD). | |
224 | // Note: This process give the same contributions for q == q' and q != q'. | |
225 | ||
226 | class Sigma2QCqqbar2qqbar : public Sigma2Process { | |
227 | ||
228 | public: | |
229 | ||
230 | // Constructor. | |
231 | Sigma2QCqqbar2qqbar(){} | |
232 | ||
233 | // Initialize process. | |
234 | virtual void initProc(); | |
235 | ||
236 | // Calculate flavour-independent parts of cross section. | |
237 | virtual void sigmaKin(); | |
238 | ||
239 | // Evaluate d(sigmaHat)/d(tHat). | |
240 | virtual double sigmaHat() {return sigma;} | |
241 | ||
242 | // Select flavour, colour and anticolour. | |
243 | virtual void setIdColAcol(); | |
244 | ||
245 | // Info on the subprocess. | |
246 | virtual string name() const {return "q qbar -> (QC) -> q' qbar' (uds)";} | |
247 | virtual int code() const {return 4202;} | |
248 | virtual string inFlux() const {return "qqbarSame";} | |
249 | ||
250 | private: | |
251 | ||
252 | // Number of outgoing quark flavours to be considered, given that | |
253 | // matrix elements are calculated in the massless approximation. | |
254 | int m_nQuarkNew; | |
255 | ||
256 | // Values stored for colour flow selection. | |
257 | int idNew; | |
258 | double mNew, m2New, sigS, sigma; | |
259 | ||
260 | // Compositeness parameters. | |
261 | double m_Lambda2; | |
262 | int m_etaLL, m_etaRR, m_etaLR; | |
263 | ||
264 | }; | |
265 | ||
266 | //========================================================================== | |
267 | ||
268 | } // end namespace Pythia8 | |
269 | ||
270 | #endif // Pythia8_SigmaCompositeness_H |