StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
SigmaDM.h
1 // SigmaDM.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2018 Torbjorn Sjostrand.
3 // PYTHIA is licenced under the GNU GPL v2 or later, see COPYING for details.
4 // Please respect the MCnet Guidelines, see GUIDELINES for details.
5 
6 // Header file for Dark Matter process differential cross sections.
7 // Contains classes derived from SigmaProcess.
8 
9 #ifndef Pythia8_SigmaDM_H
10 #define Pythia8_SigmaDM_H
11 
12 #include "Pythia8/PythiaComplex.h"
13 #include "Pythia8/SigmaProcess.h"
14 
15 namespace Pythia8 {
16 
17 //==========================================================================
18 
19 // A derived class for f fbar' -> Zprime -> X X. (Zprime a.k.a. DMmed(s=1).)
20 
22 
23 public:
24 
25  // Constructor.
27 
28  // Initialize process.
29  virtual void initProc();
30 
31  // Calculate flavour-independent parts of cross section.
32  virtual void sigmaKin();
33 
34  // Evaluate sigmaHat(sHat).
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 "f fbar -> Zp -> XX";}
42  virtual int code() const {return 6001;}
43  virtual string inFlux() const {return "qqbar";}
44  virtual int resonanceA() const {return 55;} // Zprime
45  virtual bool isSChannel() const {return true;}
46  virtual int gmZmode() const {return 3;}
47 
48 
49 
50 private:
51 
52  // Parameters set at initialization.
53  double mRes, GammaRes, m2Res, sigma0, preFac;
54 
55  // Pointer to properties of the particle species, to access decay channels.
56  ParticleDataEntry* particlePtr;
57 
58 };
59 
60 //==========================================================================
61 
63 
64 public:
65 
66  // Constructor.
68 
69  // Initialize process.
70  virtual void initProc();
71 
72  // Calculate flavour-independent parts of cross section.
73  virtual void sigmaKin();
74 
75  // Evaluate sigmaHat(sHat).
76  virtual double sigmaHat();
77 
78  // Select flavour, colour and anticolour.
79  virtual void setIdColAcol();
80 
81  // Info on the subprocess.
82  virtual string name() const {return "q qbar -> Zp g -> XX + jet";}
83  virtual int code() const {return 6002;}
84  virtual string inFlux() const {return "qqbar";}
85  virtual int resonanceA() const {return 55;} // Zprime
86  virtual int id3Mass() const {return 55;}
87  virtual int id4Mass() const {return 21;}
88  virtual bool isSChannel() const {return true;}
89  virtual int gmZmode() const {return 3;}
90 
91 protected:
92 
93  // Parameters set at initialization.
94  double mRes, GammaRes, m2Res, preFac, sigma0;
95 
96  // Pointer to properties of the particle species, to access decay channels.
97  ParticleDataEntry* particlePtr;
98 
99 };
100 
101 //==========================================================================
102 
104 
105  // Constructor.
106  Sigma2qg2Zpq2XXj() {}
107 
108  // Info on the subprocess.
109  virtual string name() const {return "q g -> Zp q -> XX + jet";}
110  virtual int code() const {return 6003;}
111  virtual string inFlux() const {return "qg";}
112  virtual int resonanceA() const {return 55;} // Zprime
113  virtual bool isSChannel() const {return true;}
114  virtual int gmZmode() const {return 3;}
115 
116 };
117 
118 //==========================================================================
119 
120 // A derived class for f fbar' -> Zprime H, Zprime -> X X.
121 
123 
124 public:
125 
126  // Constructor.
127  Sigma2ffbar2ZpH() {}
128 
129  // Initialize process.
130  virtual void initProc();
131 
132  // Calculate flavour-independent parts of cross section.
133  virtual void sigmaKin();
134 
135  // Evaluate sigmaHat(sHat).
136  virtual double sigmaHat();
137 
138  // Select flavour, colour and anticolour.
139  virtual void setIdColAcol();
140 
141  // Info on the subprocess.
142  virtual string name() const {return "f fbar -> Zprime H";}
143  virtual int code() const {return 6004;}
144  virtual string inFlux() const {return "ffbarSame";}
145  virtual bool isSChannel() const {return true;}
146  virtual int id3Mass() const {return 55;}
147  virtual int id4Mass() const {return 25;}
148  virtual int resonanceA() const {return 55;} // Zprime
149  virtual int gmZmode() const {return 3;}
150 
151  // virtual bool convertM2() const {return true;} // Use |M|^2
152 
153 private:
154 
155  // Parameters set at initialization.
156  double mRes, GammaRes, m2Res, sigma0, gZp, coupZpH, openFrac;
157 
158  // Pointer to properties of the particle species, to access decay channels.
159  ParticleDataEntry* particlePtr;
160 
161 };
162 
163 //==========================================================================
164 
165 class Sigma1gg2S2XX : public Sigma1Process {
166 
167 public:
168 
169  // Constructor.
170  Sigma1gg2S2XX() {}
171 
172  // Initialize process.
173  virtual void initProc();
174 
175  // Calculate flavour-independent parts of cross section.
176  virtual void sigmaKin();
177 
178  // Evaluate sigmaHat(sHat).
179  virtual double sigmaHat();
180 
181  // Select flavour, colour and anticolour.
182  virtual void setIdColAcol();
183 
184  // Info on the subprocess.
185  virtual string name() const {return "g g -> S -> XX";}
186  virtual int code() const {return 6011;}
187  virtual string inFlux() const {return "gg";}
188  virtual int resonanceA() const {return 54;} // scalar mediator
189  virtual bool isSChannel() const {return true;}
190 
191 private:
192 
193  // Parameters set at initialization.
194  double mRes, GammaRes, m2Res, sigma0;
195 
196  // Pointer to properties of the particle species, to access decay channels.
197  ParticleDataEntry* particlePtr;
198 
199 };
200 
201 //==========================================================================
202 
204 
205 public:
206 
207  // Constructor.
208  Sigma2gg2Sg2XXj() {}
209 
210  // Initialize process.
211  virtual void initProc();
212 
213  // Calculate flavour-independent parts of cross section.
214  virtual void sigmaKin();
215 
216  // Evaluate sigmaHat(sHat).
217  virtual double sigmaHat();
218 
219  // Select flavour, colour and anticolour.
220  virtual void setIdColAcol();
221 
222  // Info on the subprocess.
223  virtual string name() const {return "g g -> S g -> XX + jet";}
224  virtual int code() const {return 6012;}
225  virtual string inFlux() const {return "gg";}
226  virtual int resonanceA() const {return 54;} // scalar mediator
227  virtual bool isSChannel() const {return true;}
228  virtual int id3Mass() const {return 54;}
229  virtual int id4Mass() const {return 21;}
230 
231 protected:
232 
233  // Parameters set at initialization.
234  double mRes, GammaRes, m2Res, propS, sigma0;
235 
236  // Pointer to properties of the particle species, to access decay channels.
237  ParticleDataEntry* particlePtr;
238 
239 };
240 
241 //==========================================================================
242 
244 
245 public:
246 
247  // Constructor.
248  Sigma2qg2Sq2XXj() {}
249 
250  // Info on the subprocess.
251  virtual string name() const {return "q g -> S q -> XX + jet";}
252  virtual int code() const {return 6013;}
253  virtual string inFlux() const {return "qg";}
254  virtual bool isSChannel() const {return true;}
255 
256 };
257 
258 //==========================================================================
259 
260 } // end namespace Pythia8
261 
262 #endif // Pythia_SigmaDM_H