]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA8/pythia8175/include/SigmaCompositeness.h
- remove descriptors and classes with obsolete TRD inputs
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8175 / include / SigmaCompositeness.h
1 // SigmaCompositeness.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2013 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), idRes(0), codeSave(0),
26       nameSave(""),
27       mRes(0), GammaRes(0), m2Res(0), GamMRat(0), Lambda(0), coupFcol(0), widthIn(0), sigBW(0),
28       qStarPtr(0x0)  {}
29
30   // Initialize process. 
31   virtual void initProc(); 
32
33   // Calculate flavour-independent parts of cross section.
34   virtual void sigmaKin();
35
36   // Evaluate sigmaHat(sHat). 
37   virtual double sigmaHat();
38
39   // Select flavour, colour and anticolour.
40   virtual void setIdColAcol();
41
42   // Evaluate weight for q* decay angles (else inactive).
43   virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
44
45   // Info on the subprocess.
46   virtual string name()       const {return nameSave;}
47   virtual int    code()       const {return codeSave;}
48   virtual string inFlux()     const {return "qg";}
49   virtual int    resonanceA() const {return idRes;}
50
51 private:
52
53   // Parameters set at initialization or for current kinematics. 
54   int    idq, idRes, codeSave;
55   string nameSave;
56   double mRes, GammaRes, m2Res, GamMRat, Lambda, coupFcol, widthIn, sigBW;
57
58   // Pointer to properties of the particle species, to access decay channels.
59   ParticleDataEntry* qStarPtr;
60
61 };
62  
63 //==========================================================================
64
65 // A derived class for l gamma -> l^* (excited lepton state).
66
67 class Sigma1lgm2lStar : public Sigma1Process {
68
69 public:
70
71   // Constructor.
72   Sigma1lgm2lStar(int idlIn) : idl(idlIn), idRes(0), codeSave(0),
73       nameSave(""),
74       mRes(0), GammaRes(0), m2Res(0), GamMRat(0), Lambda(0), coupChg(0), widthIn(0), sigBW(0),
75       qStarPtr(0x0) {}
76
77   // Initialize process. 
78   virtual void initProc(); 
79
80   // Calculate flavour-independent parts of cross section.
81   virtual void sigmaKin();
82
83   // Evaluate sigmaHat(sHat). 
84   virtual double sigmaHat();
85
86   // Select flavour, colour and anticolour.
87   virtual void setIdColAcol();
88
89   // Evaluate weight for l* decay angles (else inactive).
90   virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
91
92   // Info on the subprocess.
93   virtual string name()       const {return nameSave;}
94   virtual int    code()       const {return codeSave;}
95   virtual string inFlux()     const {return "fgm";}
96   virtual int    resonanceA() const {return idRes;}
97
98 private:
99
100   // Parameters set at initialization or for current kinematics. 
101   int    idl, idRes, codeSave;
102   string nameSave;
103   double mRes, GammaRes, m2Res, GamMRat, Lambda, coupChg, widthIn, sigBW;
104
105   // Pointer to properties of the particle species, to access decay channels.
106   ParticleDataEntry* qStarPtr;
107
108 };
109  
110 //==========================================================================
111
112 // A derived class for q q' -> q^* q' (excited quark state).
113
114 class Sigma2qq2qStarq : public Sigma2Process {
115
116 public:
117
118   // Constructor.
119   Sigma2qq2qStarq(int idqIn) : idq(idqIn), idRes(0), codeSave(0),
120       nameSave(""),
121       Lambda(0), preFac(0), openFracPos(0), openFracNeg(0), sigmaA(0), sigmaB(0) {}
122
123   // Initialize process. 
124   virtual void initProc(); 
125
126   // Calculate flavour-independent parts of cross section.
127   virtual void sigmaKin();
128
129   // Evaluate sigmaHat(sHat). 
130   virtual double sigmaHat();
131
132   // Select flavour, colour and anticolour.
133   virtual void setIdColAcol();
134
135   // Evaluate weight for q* decay angles (else inactive).
136   virtual double weightDecay(Event& process, int iResBeg, int iResEnd); 
137
138   // Info on the subprocess.
139   virtual string name()       const {return nameSave;}
140   virtual int    code()       const {return codeSave;}
141   virtual string inFlux()     const {return "qq";}
142   virtual int    id3Mass()    const {return idRes;}
143
144 private:
145
146   // Parameters set at initialization or for current kinematics. 
147   int    idq, idRes, codeSave;
148   string nameSave;
149   double Lambda, preFac, openFracPos, openFracNeg, sigmaA, sigmaB;
150
151 };
152  
153 //==========================================================================
154
155 // A derived class for q qbar -> l^* lbar (excited lepton state).
156
157 class Sigma2qqbar2lStarlbar : public Sigma2Process {
158
159 public:
160
161   // Constructor.
162   Sigma2qqbar2lStarlbar(int idlIn) : idl(idlIn), idRes(0), codeSave(0),
163       nameSave(""),
164       Lambda(0), preFac(0), openFracPos(0), openFracNeg(0), sigma(0) {}
165
166   // Initialize process. 
167   virtual void initProc(); 
168
169   // Calculate flavour-independent parts of cross section.
170   virtual void sigmaKin();
171
172   // Evaluate sigmaHat(sHat). 
173   virtual double sigmaHat() {return sigma;}
174
175   // Select flavour, colour and anticolour.
176   virtual void setIdColAcol();
177
178   // Evaluate weight for l* decay angles (else inactive).
179   virtual double weightDecay(Event& process, int iResBeg, int iResEnd); 
180
181   // Info on the subprocess.
182   virtual string name()       const {return nameSave;}
183   virtual int    code()       const {return codeSave;}
184   virtual string inFlux()     const {return "qqbarSame";}
185   virtual int    id3Mass()    const {return idRes;}
186
187 private:
188
189   // Parameters set at initialization or for current kinematics. 
190   int    idl, idRes, codeSave;
191   string nameSave;
192   double Lambda, preFac, openFracPos, openFracNeg, sigma;
193
194 };
195
196 //==========================================================================
197
198 // A derived class for q q -> q q (quark contact interactions).
199 // Based on, Sigma2qq2qq (QCD).
200
201 class Sigma2QCqq2qq : public Sigma2Process {
202
203 public:
204
205   // Constructor.
206   Sigma2QCqq2qq() : sigT(0), sigU(0), sigTU(0), sigST(0), sigSum(0), sigQCSTU(0), sigQCUTS(0),
207       qCLambda2(0),
208       qCetaLL(0), qCetaRR(0), qCetaLR(0) {}
209
210   // Initialize process. 
211   virtual void initProc(); 
212
213   // Calculate flavour-independent parts of cross section.
214   virtual void sigmaKin();
215
216   // Evaluate d(sigmaHat)/d(tHat). 
217   virtual double sigmaHat();
218
219   // Select flavour, colour and anticolour.
220   virtual void setIdColAcol();
221
222   // Info on the subprocess.
223   virtual string name()   const {return "q q(bar)' -> (QC) -> q q(bar)'";}
224   virtual int    code()   const {return 4201;}
225   virtual string inFlux() const {return "qq";}
226
227  private:
228
229   // Values stored for colour flow selection.
230   double sigT, sigU, sigTU, sigST, sigSum, sigQCSTU, sigQCUTS;
231
232   // Compositeness parameters.
233   double qCLambda2;
234   int    qCetaLL, qCetaRR, qCetaLR;
235
236 };
237
238 //==========================================================================
239
240 // A derived class for q qbar -> q' qbar' (quark contact interactions).
241 // Based on, Sigma2qqbar2qqbarNew(QCD). 
242 // Note: This process give the same contributions for q == q' and q != q'.
243
244 class Sigma2QCqqbar2qqbar : public Sigma2Process {
245
246 public:
247
248   // Constructor.
249   Sigma2QCqqbar2qqbar() : qCnQuarkNew(0),
250       idNew(0),
251       mNew(0), m2New(0), sigS(0), sigma(0),
252       qCLambda2(0),
253       qCetaLL(0), qCetaRR(0), qCetaLR(0) {}
254
255   // Initialize process. 
256   virtual void initProc(); 
257
258   // Calculate flavour-independent parts of cross section.
259   virtual void sigmaKin();
260
261   // Evaluate d(sigmaHat)/d(tHat). 
262   virtual double sigmaHat() {return sigma;}
263
264   // Select flavour, colour and anticolour.
265   virtual void setIdColAcol();
266
267   // Info on the subprocess.
268   virtual string name()   const {return "q qbar -> (QC) -> q' qbar' (uds)";}
269   virtual int    code()   const {return 4202;}
270   virtual string inFlux() const {return "qqbarSame";}
271
272  private:
273
274   // Number of outgoing quark flavours to be considered, given that
275   // matrix elements are calculated in the massless approximation.
276   int    qCnQuarkNew;
277
278   // Values stored for colour flow selection.
279   int    idNew;
280   double mNew, m2New, sigS, sigma;
281
282   // Compositeness parameters.
283   double qCLambda2;
284   int    qCetaLL, qCetaRR, qCetaLR;
285
286 };
287
288 //==========================================================================
289  
290 // A derived class for f fbar -> l lbar 
291 // (contact interactions).
292 // Does not include t-channel contributions relevant for e^+e^- to e^+e^-
293  
294 class Sigma2QCffbar2llbar : public Sigma2Process {
295  
296 public:
297  
298   // Constructor: bool Graviton  = true, to use LED graviton settings.
299     Sigma2QCffbar2llbar (int idIn, int codeIn) : nameNew(""), idNew(idIn), codeNew(codeIn),
300       qCmNew(0), qCmNew2(0), qCmZ(0), qCmZ2(0), qCGZ(0), qCGZ2(0), sigma0(0),
301       qCLambda2(0),
302       qCetaLL(0), qCetaRR(0), qCetaLR(0),
303       qCPropGm(0), qCrePropZ(0), qCimPropZ(0) {}
304  
305   // Initialize process.
306   virtual void initProc();
307  
308   // Calculate flavour-independent parts of cross section;
309   // first step when inflavours unknown.
310   virtual void sigmaKin();
311  
312   // Evaluate sigmaHat(sHat); second step for given inflavours.
313   virtual double sigmaHat();
314  
315   // Select flavour, colour and anticolour.
316   virtual void setIdColAcol();
317  
318   // Info on the subprocess.
319   virtual string name()       const {return nameNew;}
320   virtual int    code()       const {return codeNew;}
321   virtual string inFlux()     const {return "ffbarSame";}
322   virtual bool   isSChannel() const {return true;}
323  
324 private:
325  
326   // Process values.
327   string nameNew;
328   int    idNew, codeNew;
329   double qCmNew, qCmNew2, qCmZ, qCmZ2, qCGZ, qCGZ2, sigma0;
330
331   // Compositeness parameters.
332   double qCLambda2;
333   int    qCetaLL, qCetaRR, qCetaLR;
334   double qCPropGm, qCrePropZ, qCimPropZ;
335  
336 };
337
338 //==========================================================================
339
340 } // end namespace Pythia8
341
342 #endif // Pythia8_SigmaCompositeness_H