Line data Source code
1 : // SigmaLeptoquark.h is a part of the PYTHIA event generator.
2 : // Copyright (C) 2015 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 "Pythia8/SigmaProcess.h"
14 :
15 : namespace Pythia8 {
16 :
17 : //==========================================================================
18 :
19 : // A derived class for q l -> LQ (leptoquark).
20 :
21 0 : class Sigma1ql2LeptoQuark : public Sigma1Process {
22 :
23 : public:
24 :
25 : // Constructor.
26 0 : 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 0 : virtual string name() const {return "q l -> LQ (leptoquark)";}
42 0 : virtual int code() const {return 3201;}
43 0 : virtual string inFlux() const {return "ff";}
44 0 : 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 0 : class Sigma2qg2LeptoQuarkl : public Sigma2Process {
62 :
63 : public:
64 :
65 : // Constructor.
66 0 : 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 0 : virtual string name() const {return "q g -> LQ l (leptoquark)";}
82 0 : virtual int code() const {return 3202;}
83 0 : virtual string inFlux() const {return "qg";}
84 0 : 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 0 : class Sigma2gg2LQLQbar : public Sigma2Process {
100 :
101 : public:
102 :
103 : // Constructor.
104 0 : 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 0 : virtual double sigmaHat() {return sigma;}
114 :
115 : // Select flavour, colour and anticolour.
116 : virtual void setIdColAcol();
117 :
118 : // Info on the subprocess.
119 0 : virtual string name() const {return "g g -> LQ LQbar (leptoquark)";}
120 0 : virtual int code() const {return 3203;}
121 0 : virtual string inFlux() const {return "gg";}
122 0 : virtual int id3Mass() const {return 42;}
123 0 : 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 0 : class Sigma2qqbar2LQLQbar : public Sigma2Process {
137 :
138 : public:
139 :
140 : // Constructor.
141 0 : 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 0 : return (abs(id1) == idQuark) ? sigmaSame : sigmaDiff;}
152 :
153 : // Select flavour, colour and anticolour.
154 : virtual void setIdColAcol();
155 :
156 : // Info on the subprocess.
157 0 : virtual string name() const {return "q qbar -> LQ LQbar (leptoquark)";}
158 0 : virtual int code() const {return 3204;}
159 0 : virtual string inFlux() const {return "qqbarSame";}
160 0 : virtual int id3Mass() const {return 42;}
161 0 : 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
|