using option '-treename HLTesdTree' for EsdCollector, adding default parameter for...
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8130 / include / SigmaSUSY.h
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.
5
6 // Header file for Supersymmetric process differential cross sections.
7 // Contains classes derived from SigmaProcess via Sigma2Process.
8
9 #ifndef Pythia8_SigmaSUSY_H
10 #define Pythia8_SigmaSUSY_H
11
12 #include "PythiaComplex.h"
13 #include "SigmaProcess.h"
14
15 namespace Pythia8 {
16  
17 //**************************************************************************
18
19 // A derived class for q qbar -> gaugino_i gaugino_j.
20
21 class Sigma2qqbar2gauginogaugino : public Sigma2Process {
22
23 public:
24
25   // Constructor.
26   Sigma2qqbar2gauginogaugino() { }
27
28   // Initialize process. 
29   virtual void initProc(); 
30
31   // Calculate flavour-independent parts of cross section.
32   virtual void sigmaKin();
33
34   // Evaluate d(sigmaHat)/d(tHat). 
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 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;}
46
47  protected:  
48
49   // Values stored for later use.  
50   int     id3chi, id4chi, codeSave;
51   string  nameSave;
52   double  sigma0, ui, uj, ti, tj, sz, d;
53   complex propZ;
54
55   // Couplings.
56   // Shorthand for sin2thetaW, mZ, and GammaZ.
57   double  sin2W, mZpole, wZpole;      
58   // qqZ couplings.
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;
68
69   // Code to say whether it is chi0chi0, chi+chi0, or chi+chi+
70   int nCharged;
71
72 };
73
74 class Sigma2qqbar2chi0chi0 : public Sigma2qqbar2gauginogaugino {
75
76 public:
77
78   // Constructor.
79   Sigma2qqbar2chi0chi0(int id3chiIn, int id4chiIn, int codeIn) { 
80
81     // Save ordering indices and process code
82     id3chi=id3chiIn; 
83     id4chi=id4chiIn; 
84     codeSave=codeIn; 
85
86     // Construct id codes from ordering indices.
87     id3                  = 1000022; 
88     if (id3chi == 2) id3 = 1000023; 
89     if (id3chi == 3) id3 = 1000025; 
90     if (id3chi == 4) id3 = 1000035; 
91     if (id3chi == 5) id3 = 1000045; 
92     id4                  = 1000022; 
93     if (id4chi == 2) id4 = 1000023; 
94     if (id4chi == 3) id4 = 1000025; 
95     if (id4chi == 4) id4 = 1000035; 
96     if (id4chi == 5) id4 = 1000045; 
97
98   }
99
100 };
101   
102 // A derived class for q qbar -> neutralino_i chargino_j.
103
104 class Sigma2qqbar2chi0char : public Sigma2qqbar2gauginogaugino {
105
106 public:
107
108   // Constructor.
109   Sigma2qqbar2chi0char(int id3chiIn, int id4chiIn, int codeIn) {
110     
111     // Save ordering indices and process code
112     id3chi=id3chiIn; 
113     id4chi=id4chiIn; 
114     codeSave=codeIn; 
115
116     // Construct id codes from ordering indices.
117     id3                  = 1000022; 
118     if (id3chi == 2) id3 = 1000023; 
119     if (id3chi == 3) id3 = 1000025; 
120     if (id3chi == 4) id3 = 1000035; 
121     if (id3chi == 5) id3 = 1000045; 
122     id4                  = 1000024; 
123     if (id4chi == 2) id4 = 1000037; 
124
125   }
126
127   // Evaluate d(sigmaHat)/d(tHat). 
128   virtual double sigmaHat();
129
130 };
131
132 // A derived class for q qbar -> chargino_i chargino_j.
133
134 class Sigma2qqbar2charchar : public Sigma2qqbar2gauginogaugino {
135
136 public:
137
138   // Constructor.
139   Sigma2qqbar2charchar(int id3chiIn, int id4chiIn, int codeIn) {
140
141     // Save ordering indices and process code
142     id3chi=id3chiIn; 
143     id4chi=id4chiIn; 
144     codeSave=codeIn; 
145
146     // Construct id codes from ordering indices.
147     id3                  = -1000024; 
148     if (id3chi == 2) id3 = -1000037; 
149     id4                  = 1000024; 
150     if (id4chi == 2) id4 = 1000037; 
151
152   }
153
154   // Evaluate d(sigmaHat)/d(tHat). 
155   virtual double sigmaHat();
156
157 };
158
159 //**************************************************************************
160
161 } // end namespace Pythia8
162
163 #endif // Pythia8_SigmaSUSY_H
164