source: HiSusy/trunk/Pythia8/pythia8170/include/SigmaCompositeness.h @ 1

Last change on this file since 1 was 1, checked in by zerwas, 11 years ago

first import of structure, PYTHIA8 and DELPHES

File size: 8.7 KB
Line 
1// SigmaCompositeness.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 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 -> l^* (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  // Evaluate weight for q* decay angles (else inactive).
128  virtual double weightDecay(Event& process, int iResBeg, int iResEnd); 
129
130  // Info on the subprocess.
131  virtual string name()       const {return nameSave;}
132  virtual int    code()       const {return codeSave;}
133  virtual string inFlux()     const {return "qq";}
134  virtual int    id3Mass()    const {return idRes;}
135
136private:
137
138  // Parameters set at initialization or for current kinematics.
139  int    idq, idRes, codeSave;
140  string nameSave;
141  double Lambda, preFac, openFracPos, openFracNeg, sigmaA, sigmaB;
142
143};
144 
145//==========================================================================
146
147// A derived class for q qbar -> l^* lbar (excited lepton state).
148
149class Sigma2qqbar2lStarlbar : public Sigma2Process {
150
151public:
152
153  // Constructor.
154  Sigma2qqbar2lStarlbar(int idlIn) : idl(idlIn) {}
155
156  // Initialize process.
157  virtual void initProc(); 
158
159  // Calculate flavour-independent parts of cross section.
160  virtual void sigmaKin();
161
162  // Evaluate sigmaHat(sHat).
163  virtual double sigmaHat() {return sigma;}
164
165  // Select flavour, colour and anticolour.
166  virtual void setIdColAcol();
167
168  // Evaluate weight for l* decay angles (else inactive).
169  virtual double weightDecay(Event& process, int iResBeg, int iResEnd); 
170
171  // Info on the subprocess.
172  virtual string name()       const {return nameSave;}
173  virtual int    code()       const {return codeSave;}
174  virtual string inFlux()     const {return "qqbarSame";}
175  virtual int    id3Mass()    const {return idRes;}
176
177private:
178
179  // Parameters set at initialization or for current kinematics.
180  int    idl, idRes, codeSave;
181  string nameSave;
182  double Lambda, preFac, openFracPos, openFracNeg, sigma;
183
184};
185
186//==========================================================================
187
188// A derived class for q q -> q q (quark contact interactions).
189// Based on, Sigma2qq2qq (QCD).
190
191class Sigma2QCqq2qq : public Sigma2Process {
192
193public:
194
195  // Constructor.
196  Sigma2QCqq2qq(){}
197
198  // Initialize process.
199  virtual void initProc(); 
200
201  // Calculate flavour-independent parts of cross section.
202  virtual void sigmaKin();
203
204  // Evaluate d(sigmaHat)/d(tHat).
205  virtual double sigmaHat();
206
207  // Select flavour, colour and anticolour.
208  virtual void setIdColAcol();
209
210  // Info on the subprocess.
211  virtual string name()   const {return "q q(bar)' -> (QC) -> q q(bar)'";}
212  virtual int    code()   const {return 4201;}
213  virtual string inFlux() const {return "qq";}
214
215 private:
216
217  // Values stored for colour flow selection.
218  double sigT, sigU, sigTU, sigST, sigSum, sigQCSTU, sigQCUTS;
219
220  // Compositeness parameters.
221  double qCLambda2;
222  int    qCetaLL, qCetaRR, qCetaLR;
223
224};
225
226//==========================================================================
227
228// A derived class for q qbar -> q' qbar' (quark contact interactions).
229// Based on, Sigma2qqbar2qqbarNew(QCD).
230// Note: This process give the same contributions for q == q' and q != q'.
231
232class Sigma2QCqqbar2qqbar : public Sigma2Process {
233
234public:
235
236  // Constructor.
237  Sigma2QCqqbar2qqbar(){}
238
239  // Initialize process.
240  virtual void initProc(); 
241
242  // Calculate flavour-independent parts of cross section.
243  virtual void sigmaKin();
244
245  // Evaluate d(sigmaHat)/d(tHat).
246  virtual double sigmaHat() {return sigma;}
247
248  // Select flavour, colour and anticolour.
249  virtual void setIdColAcol();
250
251  // Info on the subprocess.
252  virtual string name()   const {return "q qbar -> (QC) -> q' qbar' (uds)";}
253  virtual int    code()   const {return 4202;}
254  virtual string inFlux() const {return "qqbarSame";}
255
256 private:
257
258  // Number of outgoing quark flavours to be considered, given that
259  // matrix elements are calculated in the massless approximation.
260  int    qCnQuarkNew;
261
262  // Values stored for colour flow selection.
263  int    idNew;
264  double mNew, m2New, sigS, sigma;
265
266  // Compositeness parameters.
267  double qCLambda2;
268  int    qCetaLL, qCetaRR, qCetaLR;
269
270};
271
272//==========================================================================
273 
274// A derived class for f fbar -> l lbar
275// (contact interactions).
276// Does not include t-channel contributions relevant for e^+e^- to e^+e^-
277 
278class Sigma2QCffbar2llbar : public Sigma2Process {
279 
280public:
281 
282  // Constructor: bool Graviton  = true, to use LED graviton settings.
283  Sigma2QCffbar2llbar (int idIn, int codeIn) : idNew(idIn), codeNew(codeIn) {}
284 
285  // Initialize process.
286  virtual void initProc();
287 
288  // Calculate flavour-independent parts of cross section;
289  // first step when inflavours unknown.
290  virtual void sigmaKin();
291 
292  // Evaluate sigmaHat(sHat); second step for given inflavours.
293  virtual double sigmaHat();
294 
295  // Select flavour, colour and anticolour.
296  virtual void setIdColAcol();
297 
298  // Info on the subprocess.
299  virtual string name()       const {return nameNew;}
300  virtual int    code()       const {return codeNew;}
301  virtual string inFlux()     const {return "ffbarSame";}
302  virtual bool   isSChannel() const {return true;}
303 
304private:
305 
306  // Process values.
307  string nameNew;
308  int    idNew, codeNew;
309  double qCmNew, qCmNew2, qCmZ, qCmZ2, qCGZ, qCGZ2, sigma0;
310
311  // Compositeness parameters.
312  double qCLambda2;
313  int    qCetaLL, qCetaRR, qCetaLR;
314  double qCPropGm, qCrePropZ, qCimPropZ;
315 
316};
317
318//==========================================================================
319
320} // end namespace Pythia8
321
322#endif // Pythia8_SigmaCompositeness_H
Note: See TracBrowser for help on using the repository browser.