Line data Source code
1 : // SusyResonanceWidths.h is a part of the PYTHIA event generator.
2 : // Copyright (C) 2015 Torbjorn Sjostrand
3 : // Main author of this file: N. Desai
4 : // PYTHIA is licenced under the GNU GPL version 2, see COPYING for details.
5 : // Please respect the MCnet Guidelines, see GUIDELINES for details.
6 :
7 : // Header file for resonance properties: dynamical widths etc.
8 : // SusyResonanceWidths: base class for all SUSY resonances.
9 :
10 : #ifndef Pythia8_SusyResonanceWidths_H
11 : #define Pythia8_SusyResonanceWidths_H
12 :
13 : #include "Pythia8/ParticleData.h"
14 : #include "Pythia8/ResonanceWidths.h"
15 : #include "Pythia8/SusyWidthFunctions.h"
16 : #include "Pythia8/SusyCouplings.h"
17 :
18 : namespace Pythia8 {
19 :
20 : //==========================================================================
21 :
22 0 : class SUSYResonanceWidths : public ResonanceWidths{
23 :
24 : public:
25 :
26 0 : SUSYResonanceWidths() {}
27 :
28 : protected:
29 :
30 : // Virtual methods to handle model-specific (non-SM) part of initialization
31 : virtual bool initBSM();
32 : virtual bool allowCalc();
33 0 : virtual bool getChannels(int) { return false; };
34 :
35 : double integrateGauss( WidthFunction* widthFn, double, double, double);
36 :
37 : // SUSY couplings
38 : CoupSUSY* coupSUSYPtr;
39 : static const bool DBSUSY;
40 :
41 : };
42 :
43 : //==========================================================================
44 :
45 : // The ResonanceSquark class handles the Squark resonances.
46 :
47 0 : class ResonanceSquark : public SUSYResonanceWidths {
48 :
49 : public:
50 :
51 : // Constructor.
52 0 : ResonanceSquark(int idResIn) {initBasic(idResIn);}
53 :
54 :
55 : private:
56 :
57 : // Locally stored properties and couplings.
58 :
59 : // Initialize constants.
60 : virtual void initConstants();
61 :
62 : // Calculate various common prefactors for the current mass.
63 : virtual void calcPreFac(bool = false);
64 :
65 : bool getChannels(int idPDG);
66 :
67 : // Caclulate width for currently considered channel.
68 : virtual void calcWidth(bool calledFromInit = false);
69 :
70 :
71 : double s2W;
72 :
73 : };
74 :
75 : //==========================================================================
76 :
77 : // The ResonanceGluino class handles the Gluino resonances.
78 :
79 0 : class ResonanceGluino : public SUSYResonanceWidths {
80 :
81 : public:
82 :
83 : // Constructor.
84 0 : ResonanceGluino(int idResIn) {initBasic(idResIn);}
85 :
86 : private:
87 :
88 : bool getChannels(int idPDG);
89 :
90 : // Locally stored properties and couplings.
91 :
92 : // Initialize constants.
93 : virtual void initConstants();
94 :
95 : // Calculate various common prefactors for the current mass.
96 : virtual void calcPreFac(bool = false);
97 :
98 : // Caclulate width for currently considered channel.
99 : virtual void calcWidth(bool calledFromInit = false);
100 :
101 : };
102 :
103 : //==========================================================================
104 :
105 : // The ResonanceNeut class handles the Neutralino resonances.
106 :
107 0 : class ResonanceNeut : public SUSYResonanceWidths {
108 :
109 : public:
110 :
111 : // Constructor.
112 0 : ResonanceNeut(int idResIn) {initBasic(idResIn);}
113 :
114 : private:
115 :
116 : bool getChannels(int idPDG);
117 : // Locally stored properties and couplings.
118 : double kinFac2;
119 :
120 : // Initialize constants.
121 : virtual void initConstants();
122 :
123 : // Calculate various common prefactors for the current mass.
124 : virtual void calcPreFac(bool = false);
125 :
126 : // Caclulate width for currently considered channel.
127 : virtual void calcWidth(bool calledFromInit = false);
128 :
129 : double s2W;
130 :
131 : // Functions for 3-body decays
132 : /* Psi psi; */
133 : /* Phi phi; */
134 : /* Upsilon upsil; */
135 :
136 : };
137 :
138 : //==========================================================================
139 :
140 : // The ResonanceChar class handles the Chargino resonances.
141 :
142 0 : class ResonanceChar : public SUSYResonanceWidths {
143 :
144 : public:
145 :
146 : // Constructor.
147 0 : ResonanceChar(int idResIn) {initBasic(idResIn);}
148 :
149 : private:
150 :
151 : bool getChannels(int idPDG);
152 :
153 : // Locally stored properties and couplings.
154 : double kinFac2;
155 :
156 : // Initialize constants.
157 : virtual void initConstants();
158 :
159 : // Calculate various common prefactors for the current mass.
160 : virtual void calcPreFac(bool = false);
161 :
162 : // Caclulate width for currently considered channel.
163 : virtual void calcWidth(bool calledFromInit = false);
164 :
165 : double s2W;
166 :
167 : //Functions for 3-body decays
168 : /* Psi psi; */
169 : /* Phi phi; */
170 : /* Upsilon upsil; */
171 :
172 : };
173 :
174 : //==========================================================================
175 :
176 : // The ResonanceSlepton class handles the Slepton/Sneutrino resonances.
177 :
178 0 : class ResonanceSlepton : public SUSYResonanceWidths {
179 :
180 : public:
181 :
182 : // Constructor.
183 0 : ResonanceSlepton(int idResIn) {initBasic(idResIn);}
184 :
185 : private:
186 :
187 : bool getChannels(int idPDG);
188 :
189 : // Locally stored properties and couplings.
190 :
191 : // Initialize constants.
192 : virtual void initConstants();
193 :
194 : // Calculate various common prefactors for the current mass.
195 : virtual void calcPreFac(bool = false);
196 :
197 : // Calculate width for currently considered channel.
198 : virtual void calcWidth(bool calledFromInit = false);
199 :
200 : double s2W;
201 :
202 : // Three-body stau decaywidth classes
203 : StauWidths stauWidths;
204 :
205 : };
206 :
207 : //==========================================================================
208 :
209 : } // end namespace Pythia8
210 :
211 : #endif // end Pythia8_SusyResonanceWidths_H
|