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.
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.
10 #ifndef Pythia8_SigmaLeptoquark_H
11 #define Pythia8_SigmaLeptoquark_H
13 #include "SigmaProcess.h"
17 //**************************************************************************
19 // A derived class for q l -> LQ (leptoquark).
21 class Sigma1ql2LeptoQuark : public Sigma1Process {
26 Sigma1ql2LeptoQuark() {}
28 // Initialize process.
29 virtual void initProc();
31 // Calculate flavour-independent parts of cross section.
32 virtual void sigmaKin();
34 // Evaluate sigmaHat(sHat).
35 virtual double sigmaHat();
37 // Select flavour, colour and anticolour.
38 virtual void setIdColAcol();
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;}
48 // Parameters set at initialization or for current kinematics.
49 int idQuark, idLepton;
50 double mRes, GammaRes, m2Res, GamMRat, kCoup, widthIn, sigBW;
52 // Pointer to properties of the particle species, to access decay channel.
53 ParticleDataEntry* LQPtr;
57 //**************************************************************************
59 // A derived class for q g -> LQ l (leptoquark).
61 class Sigma2qg2LeptoQuarkl : public Sigma2Process {
66 Sigma2qg2LeptoQuarkl() {}
68 // Initialize process.
69 virtual void initProc();
71 // Calculate flavour-independent parts of cross section.
72 virtual void sigmaKin();
74 // Evaluate sigmaHat(sHat).
75 virtual double sigmaHat();
77 // Select flavour, colour and anticolour.
78 virtual void setIdColAcol();
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;}
88 // Parameters set at initialization or for current kinematics.
89 int idQuark, idLepton;
90 double mRes, GammaRes, m2Res, GamMRat, kCoup, openFracPos, openFracNeg,
95 //**************************************************************************
97 // A derived class for g g -> LQ LQbar (leptoquark).
99 class Sigma2gg2LQLQbar : public Sigma2Process {
104 Sigma2gg2LQLQbar() {}
106 // Initialize process.
107 virtual void initProc();
109 // Calculate flavour-independent parts of cross section.
110 virtual void sigmaKin();
112 // Evaluate sigmaHat(sHat).
113 virtual double sigmaHat() {return sigma;}
115 // Select flavour, colour and anticolour.
116 virtual void setIdColAcol();
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;}
127 // Parameters set at initialization or for current kinematics.
128 double mRes, GammaRes, m2Res, GamMRat, openFrac, sigma;
132 //**************************************************************************
134 // A derived class for q qbar -> LQ LQbar (leptoquark).
136 class Sigma2qqbar2LQLQbar : public Sigma2Process {
141 Sigma2qqbar2LQLQbar() {}
143 // Initialize process.
144 virtual void initProc();
146 // Calculate flavour-independent parts of cross section.
147 virtual void sigmaKin();
149 // Evaluate sigmaHat(sHat).
150 virtual double sigmaHat() {
151 return (abs(id1) == idQuark) ? sigmaSame : sigmaDiff;}
153 // Select flavour, colour and anticolour.
154 virtual void setIdColAcol();
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;}
165 // Parameters set at initialization or for current kinematics.
167 double mRes, GammaRes, m2Res, GamMRat, kCoup, openFrac, sigmaDiff,
172 //**************************************************************************
174 } // end namespace Pythia8
176 #endif // Pythia8_SigmaLeptoquark_H