1 // SigmaSUSY.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 Supersymmetric process differential cross sections.
7 // Contains classes derived from SigmaProcess via Sigma2Process.
9 #ifndef Pythia8_SigmaSUSY_H
10 #define Pythia8_SigmaSUSY_H
12 #include "PythiaComplex.h"
13 #include "SigmaProcess.h"
17 //**************************************************************************
19 // A derived class for q qbar -> gaugino_i gaugino_j.
21 class Sigma2qqbar2gauginogaugino : public Sigma2Process {
26 Sigma2qqbar2gauginogaugino() { }
28 // Initialize process.
29 virtual void initProc();
31 // Calculate flavour-independent parts of cross section.
32 virtual void sigmaKin();
34 // Evaluate d(sigmaHat)/d(tHat).
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 nameSave;}
42 virtual int code() const {return codeSave;}
43 virtual string inFlux() const {return "qq";}
44 virtual int id3Mass() const {return id3;}
45 virtual int id4Mass() const {return id4;}
49 // Values stored for later use.
50 int id3chi, id4chi, codeSave;
52 double sigma0, ui, uj, ti, tj, sz, d;
56 // Shorthand for sin2thetaW, mZ, and GammaZ.
57 double sin2W, mZpole, wZpole;
59 double LqqZ[10], RqqZ[10];
60 // qsqchi_i couplings.
61 complex LsqXi[10][10], RsqXi[10][10];
62 complex LsqCi[10][10], RsqCi[10][10];
63 // qsqchi_j couplings.
64 complex LsqXj[10][10], RsqXj[10][10];
65 complex LsqCj[10][10], RsqCj[10][10];
66 // W/Z chi chi couplings
67 complex OL, OR, OLp, ORp, OLpp, ORpp;
69 // Code to say whether it is chi0chi0, chi+chi0, or chi+chi+
74 class Sigma2qqbar2chi0chi0 : public Sigma2qqbar2gauginogaugino {
79 Sigma2qqbar2chi0chi0(int id3chiIn, int id4chiIn, int codeIn) {
81 // Save ordering indices and process code
86 // Construct id codes from ordering indices.
88 if (id3chi == 2) id3 = 1000023;
89 if (id3chi == 3) id3 = 1000025;
90 if (id3chi == 4) id3 = 1000035;
91 if (id3chi == 5) id3 = 1000045;
93 if (id4chi == 2) id4 = 1000023;
94 if (id4chi == 3) id4 = 1000025;
95 if (id4chi == 4) id4 = 1000035;
96 if (id4chi == 5) id4 = 1000045;
102 // A derived class for q qbar -> neutralino_i chargino_j.
104 class Sigma2qqbar2chi0char : public Sigma2qqbar2gauginogaugino {
109 Sigma2qqbar2chi0char(int id3chiIn, int id4chiIn, int codeIn) {
111 // Save ordering indices and process code
116 // Construct id codes from ordering indices.
118 if (id3chi == 2) id3 = 1000023;
119 if (id3chi == 3) id3 = 1000025;
120 if (id3chi == 4) id3 = 1000035;
121 if (id3chi == 5) id3 = 1000045;
123 if (id4chi == 2) id4 = 1000037;
127 // Evaluate d(sigmaHat)/d(tHat).
128 virtual double sigmaHat();
132 // A derived class for q qbar -> chargino_i chargino_j.
134 class Sigma2qqbar2charchar : public Sigma2qqbar2gauginogaugino {
139 Sigma2qqbar2charchar(int id3chiIn, int id4chiIn, int codeIn) {
141 // Save ordering indices and process code
146 // Construct id codes from ordering indices.
148 if (id3chi == 2) id3 = -1000037;
150 if (id4chi == 2) id4 = 1000037;
154 // Evaluate d(sigmaHat)/d(tHat).
155 virtual double sigmaHat();
159 //**************************************************************************
161 } // end namespace Pythia8
163 #endif // Pythia8_SigmaSUSY_H