]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA8/pythia8130/include/SigmaLeptoquark.h
pythia8130 distributed with AliRoot
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8130 / include / SigmaLeptoquark.h
1 // SigmaLeptoquark.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2008 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