]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PYTHIA8/pythia8145/include/SigmaCompositeness.h
New pythia8 version
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8145 / include / SigmaCompositeness.h
CommitLineData
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
14namespace Pythia8 {
15
16//==========================================================================
17
18// A derived class for q g -> q^* (excited quark state).
19
20class Sigma1qg2qStar : public Sigma1Process {
21
22public:
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
48private:
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
64class Sigma1lgm2lStar : public Sigma1Process {
65
66public:
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
92private:
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
108class Sigma2qq2qStarq : public Sigma2Process {
109
110public:
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
133private:
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
146class Sigma2qqbar2lStarlbar : public Sigma2Process {
147
148public:
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
171private:
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
185class Sigma2QCqq2qq : public Sigma2Process {
186
187public:
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
226class Sigma2QCqqbar2qqbar : public Sigma2Process {
227
228public:
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