source: HiSusy/trunk/Pythia8/pythia8170/include/SusyResonanceWidths.h @ 1

Last change on this file since 1 was 1, checked in by zerwas, 12 years ago

first import of structure, PYTHIA8 and DELPHES

File size: 6.5 KB
Line 
1// SusyResonanceWidths.h is a part of the PYTHIA event generator.
2// Copyright (C) 2012 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 "ResonanceWidths.h"
14#include "SusyCouplings.h"
15
16namespace Pythia8 {
17
18class ParticleData;
19
20//==========================================================================
21
22class WidthFunction {
23
24public:
25
26  // Constructor and destructor.
27  WidthFunction() { };
28  virtual ~WidthFunction() { };
29
30  void init( ParticleData* particleDataPtrIn, CoupSUSY* coupSUSYPtrIn);
31
32  virtual void setInternal(int idResIn, int id1In, int id2In, int id3In, 
33    int idIntIn, int) {setInternal2(idResIn, id1In, id2In, id3In, idIntIn);}
34
35  virtual double function(double m12);
36  virtual double function(double m12, double m23);
37 
38protected:
39
40  void setInternal2(int idResIn, int id1In, int id2In, int id3In, int idIntIn);
41
42  ParticleData* particleDataPtr;
43  CoupSUSY* coupSUSYPtr;
44  int id1,id2,id3;
45
46  // Variables for 3-body decays
47  double mRes, mInt, gammaInt, m1,m2,m3;
48  int idRes, idInt,iSq,iQ,iX;
49  bool isSqDown;
50
51};
52
53//==========================================================================
54
55class Psi: public WidthFunction {
56
57public:
58
59  // Destructor.
60  virtual ~Psi() { };
61
62  virtual void setInternal(int idResIn, int id1In, int id2In, int id3In, 
63    int idIntIn, int);
64  virtual double function(double m12);
65
66};
67
68//==========================================================================
69
70class Upsilon: public WidthFunction {
71
72public:
73
74  // Destructor.
75  virtual ~Upsilon() { };
76
77  virtual void setInternal(int idResIn, int id1In, int id2In, int id3In, 
78    int idIntIn, int idInt2);
79  virtual double function(double m12);
80
81protected:
82
83  int iSq2, idInt2;
84  double mInt2, gammaInt2;
85
86};
87
88//==========================================================================
89
90class Phi: public WidthFunction {
91
92public:
93
94  // Destructor.
95  virtual ~Phi() { };
96
97  virtual void setInternal(int idResIn, int id1In, int id2In, int id3In, 
98    int idIntIn, int idInt2);
99  virtual double function(double m12sqIn);
100
101protected:
102
103  int iSq2, idInt2;
104  double mInt2, gammaInt2, m12sq;
105
106private:
107
108  double function2(double m23sq);
109  double integrateGauss(double m23min, double m23max, double tol);
110
111};
112
113//==========================================================================
114
115class SUSYResonanceWidths : public ResonanceWidths{
116
117public:
118
119  SUSYResonanceWidths() {}
120
121  // Return particle type
122  int typeNeut(int idPDG);
123  int typeChar(int idPDG); 
124
125protected:
126
127  virtual bool init(Info* infoPtrIn, Settings* settingsPtrIn,
128            ParticleData* particleDataPtrIn, Couplings* couplingsPtrIn);
129
130  // Gaussian integrator
131  double integrateGauss( WidthFunction* widthFn, double, double, double);
132 
133  // SUSY couplings
134  CoupSUSY* coupSUSYPtr;
135 
136  static const bool DEBUG;
137
138};
139
140//==========================================================================
141
142// The ResonanceSquark class handles the Squark resonances.
143
144class ResonanceSquark : public SUSYResonanceWidths {
145
146public:
147
148  // Constructor.
149  ResonanceSquark(int idResIn) {initBasic(idResIn);} 
150
151private: 
152
153  // Locally stored properties and couplings.
154
155  // Initialize constants.
156  virtual void initConstants(); 
157 
158  // Calculate various common prefactors for the current mass.
159  virtual void calcPreFac(bool = false);
160
161  // Caclulate width for currently considered channel.
162  virtual void calcWidth(bool calledFromInit = false);
163
164  double s2W;
165
166};
167 
168//==========================================================================
169
170// The ResonanceGluino class handles the Gluino resonances.
171
172class ResonanceGluino : public SUSYResonanceWidths {
173
174public:
175
176  // Constructor.
177  ResonanceGluino(int idResIn) {initBasic(idResIn);} 
178
179private: 
180
181  // Locally stored properties and couplings.
182 
183  // Initialize constants.
184  virtual void initConstants(); 
185 
186  // Calculate various common prefactors for the current mass.
187  virtual void calcPreFac(bool = false);
188
189  // Caclulate width for currently considered channel.
190  virtual void calcWidth(bool calledFromInit = false);
191 
192};
193 
194//==========================================================================
195
196// The ResonanceNeut class handles the Neutralino resonances.
197
198class ResonanceNeut : public SUSYResonanceWidths {
199
200public:
201
202  // Constructor.
203  ResonanceNeut(int idResIn) {initBasic(idResIn);} 
204
205private: 
206
207  // Locally stored properties and couplings.
208  double kinFac2;
209
210  // Initialize constants.
211  virtual void initConstants(); 
212 
213  // Calculate various common prefactors for the current mass.
214  virtual void calcPreFac(bool = false);
215
216  // Caclulate width for currently considered channel.
217  virtual void calcWidth(bool calledFromInit = false);
218
219  double s2W;
220
221  // Functions for 3-body decays
222  Psi psi;
223  Phi phi;
224  Upsilon upsil;
225
226};
227 
228//==========================================================================
229
230// The ResonanceChar class handles the Chargino resonances.
231
232class ResonanceChar : public SUSYResonanceWidths {
233
234public:
235
236  // Constructor.
237  ResonanceChar(int idResIn) {initBasic(idResIn);} 
238
239private: 
240
241  // Locally stored properties and couplings.
242  double kinFac2;
243
244  // Initialize constants.
245  virtual void initConstants(); 
246 
247  // Calculate various common prefactors for the current mass.
248  virtual void calcPreFac(bool = false);
249
250  // Caclulate width for currently considered channel.
251  virtual void calcWidth(bool calledFromInit = false);
252
253  double s2W;
254
255  //Functions for 3-body decays
256  Psi psi;
257  Phi phi;
258  Upsilon upsil;
259
260};
261 
262//==========================================================================
263
264// The ResonanceSlepton class handles the Slepton/Sneutrino resonances.
265
266class ResonanceSlepton : public SUSYResonanceWidths {
267
268public:
269
270  // Constructor.
271  ResonanceSlepton(int idResIn) {initBasic(idResIn);} 
272
273private: 
274
275  // Locally stored properties and couplings.
276
277  // Initialize constants.
278  virtual void initConstants(); 
279 
280  // Calculate various common prefactors for the current mass.
281  virtual void calcPreFac(bool = false);
282
283  // Calculate width for currently considered channel.
284  virtual void calcWidth(bool calledFromInit = false);
285
286  double s2W;
287
288};
289 
290//==========================================================================
291
292} // end namespace Pythia8
293
294#endif // end Pythia8_SusyResonanceWidths_H
Note: See TracBrowser for help on using the repository browser.