]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PYTHIA8/pythia8130/include/SigmaLeptoquark.h
pythia8130 distributed with AliRoot
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8130 / include / SigmaLeptoquark.h
CommitLineData
5ad4eb21 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
15namespace Pythia8 {
16
17//**************************************************************************
18
19// A derived class for q l -> LQ (leptoquark).
20
21class Sigma1ql2LeptoQuark : public Sigma1Process {
22
23public:
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
46private:
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
61class Sigma2qg2LeptoQuarkl : public Sigma2Process {
62
63public:
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
86private:
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
99class Sigma2gg2LQLQbar : public Sigma2Process {
100
101public:
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
125private:
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
136class Sigma2qqbar2LQLQbar : public Sigma2Process {
137
138public:
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
163private:
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