PYTHIA  8.312
SigmaDM.h
1 // SigmaDM.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2024 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 #include "Pythia8/StandardModel.h"
15 
16 namespace Pythia8 {
17 
18 //==========================================================================
19 
20 // A derived class for f fbar' -> Zprime -> X X. (Zprime a.k.a. DMmed(s=1).)
21 
23 
24 public:
25 
26  // Constructor.
27  Sigma1ffbar2Zp2XX() : kinMix(), mRes(), GammaRes(), m2Res(), sigma0(),
28  preFac(), gZp(), eps(), particlePtr() {}
29 
30  // Initialize process.
31  virtual void initProc();
32 
33  // Calculate flavour-independent parts of cross section.
34  virtual void sigmaKin();
35 
36  // Evaluate sigmaHat(sHat).
37  virtual double sigmaHat();
38 
39  // Select flavour, colour and anticolour.
40  virtual void setIdColAcol();
41 
42  // Info on the subprocess.
43  virtual string name() const {return "f fbar -> Zp -> XX";}
44  virtual int code() const {return 6001;}
45  virtual string inFlux() const {return "qqbar";}
46  virtual int resonanceA() const {return 55;} // Zprime
47  virtual bool isSChannel() const {return true;}
48  virtual int gmZmode() const {return 3;}
49 
50 private:
51 
52  // Parameters set at initialization.
53  bool kinMix;
54  double mRes, GammaRes, m2Res, sigma0, preFac, gZp, eps;
55 
56  // Pointer to properties of the particle species, to access decay channels.
57  ParticleDataEntryPtr particlePtr;
58 
59 };
60 
61 //==========================================================================
62 
64 
65 public:
66 
67  // Constructor.
68  Sigma2qqbar2Zpg2XXj() : kinMix(), mRes(), GammaRes(), m2Res(), preFac(),
69  sigma0(), gZp(), eps(), particlePtr() {}
70 
71  // Initialize process.
72  virtual void initProc();
73 
74  // Calculate flavour-independent parts of cross section.
75  virtual void sigmaKin();
76 
77  // Evaluate sigmaHat(sHat).
78  virtual double sigmaHat();
79 
80  // Select flavour, colour and anticolour.
81  virtual void setIdColAcol();
82 
83  // Info on the subprocess.
84  virtual string name() const {return "q qbar -> Zp g -> XX + jet";}
85  virtual int code() const {return 6002;}
86  virtual string inFlux() const {return "qqbar";}
87  virtual int resonanceA() const {return 55;} // Zprime
88  virtual int id3Mass() const {return 55;}
89  virtual int id4Mass() const {return 21;}
90  virtual bool isSChannel() const {return true;}
91  virtual int gmZmode() const {return 3;}
92 
93 protected:
94 
95  // Parameters set at initialization.
96  bool kinMix;
97  double mRes, GammaRes, m2Res, preFac, sigma0, gZp, eps;
98 
99  // Pointer to properties of the particle species, to access decay channels.
100  ParticleDataEntryPtr particlePtr;
101 
102 };
103 
104 //==========================================================================
105 
107 
108  // Constructor.
109  Sigma2qg2Zpq2XXj() {}
110 
111  // Info on the subprocess.
112  virtual string name() const {return "q g -> Zp q -> XX + jet";}
113  virtual int code() const {return 6003;}
114  virtual string inFlux() const {return "qg";}
115  virtual int resonanceA() const {return 55;} // Zprime
116  virtual bool isSChannel() const {return true;}
117  virtual int gmZmode() const {return 3;}
118 
119 };
120 
121 //==========================================================================
122 
123 // A derived class for f fbar' -> Zprime H, Zprime -> X X.
124 
126 
127 public:
128 
129  // Constructor.
130  Sigma2ffbar2ZpH() : kinMix(), mRes(), GammaRes(), m2Res(), sigma0(), gZp(),
131  eps(), coupZpH(), openFrac(), particlePtr() {}
132 
133  // Initialize process.
134  virtual void initProc();
135 
136  // Calculate flavour-independent parts of cross section.
137  virtual void sigmaKin();
138 
139  // Evaluate sigmaHat(sHat).
140  virtual double sigmaHat();
141 
142  // Select flavour, colour and anticolour.
143  virtual void setIdColAcol();
144 
145  // Info on the subprocess.
146  virtual string name() const {return "f fbar -> Zprime H";}
147  virtual int code() const {return 6004;}
148  virtual string inFlux() const {return "ffbarSame";}
149  virtual bool isSChannel() const {return true;}
150  virtual int id3Mass() const {return 55;}
151  virtual int id4Mass() const {return 25;}
152  virtual int resonanceA() const {return 55;} // Zprime
153  virtual int gmZmode() const {return 3;}
154 
155 private:
156 
157  // Parameters set at initialization.
158  bool kinMix;
159  double mRes, GammaRes, m2Res, sigma0, gZp, eps, coupZpH, openFrac;
160 
161  // Pointer to properties of the particle species, to access decay channels.
162  ParticleDataEntryPtr particlePtr;
163 
164 };
165 
166 //==========================================================================
167 
168 class Sigma1gg2S2XX : public Sigma1Process {
169 
170 public:
171 
172  // Constructor.
173  Sigma1gg2S2XX() : mRes(), GammaRes(), m2Res(), sigma0(), particlePtr() {}
174 
175  // Initialize process.
176  virtual void initProc();
177 
178  // Calculate flavour-independent parts of cross section.
179  virtual void sigmaKin();
180 
181  // Evaluate sigmaHat(sHat).
182  virtual double sigmaHat();
183 
184  // Select flavour, colour and anticolour.
185  virtual void setIdColAcol();
186 
187  // Info on the subprocess.
188  virtual string name() const {return "g g -> S -> XX";}
189  virtual int code() const {return 6011;}
190  virtual string inFlux() const {return "gg";}
191  virtual int resonanceA() const {return 54;} // scalar mediator
192  virtual bool isSChannel() const {return true;}
193 
194 private:
195 
196  // Parameters set at initialization.
197  double mRes, GammaRes, m2Res, sigma0;
198 
199  // Pointer to properties of the particle species, to access decay channels.
200  ParticleDataEntryPtr particlePtr;
201 
202 };
203 
204 //==========================================================================
205 
207 
208 public:
209 
210  // Constructor.
211  Sigma2gg2Sg2XXj() : mRes(), GammaRes(), m2Res(), propS(), sigma0(),
212  particlePtr() {}
213 
214  // Initialize process.
215  virtual void initProc();
216 
217  // Calculate flavour-independent parts of cross section.
218  virtual void sigmaKin();
219 
220  // Evaluate sigmaHat(sHat).
221  virtual double sigmaHat();
222 
223  // Select flavour, colour and anticolour.
224  virtual void setIdColAcol();
225 
226  // Info on the subprocess.
227  virtual string name() const {return "g g -> S g -> XX + jet";}
228  virtual int code() const {return 6012;}
229  virtual string inFlux() const {return "gg";}
230  virtual int resonanceA() const {return 54;} // scalar mediator
231  virtual bool isSChannel() const {return true;}
232  virtual int id3Mass() const {return 54;}
233  virtual int id4Mass() const {return 21;}
234 
235 protected:
236 
237  // Parameters set at initialization.
238  double mRes, GammaRes, m2Res, propS, sigma0;
239 
240  // Pointer to properties of the particle species, to access decay channels.
241  ParticleDataEntryPtr particlePtr;
242 
243 };
244 
245 //==========================================================================
246 
248 
249 public:
250 
251  // Constructor.
253 
254  // Info on the subprocess.
255  virtual string name() const {return "q g -> S q -> XX + jet";}
256  virtual int code() const {return 6013;}
257  virtual string inFlux() const {return "qg";}
258  virtual bool isSChannel() const {return true;}
259 
260 };
261 
262 //==========================================================================
263 
265 
266 public:
267 
268  // Constructor,
269  Sigma2qqbar2DY() : sigma0(), openFracPair(), propRes(), nameSave(), mRes(),
270  GammaRes(), m2Res(), M1(), M2(), Lambda(), mixN1(), mixN2(), xW(),
271  coupW11(), coupW12(), coupW2(), yuk(), type(), nplet(), isUD(),
272  particlePtr() {}
273 
274  // Initialize process.
275  virtual void initProc();
276 
277  // Calculate flavour-independent parts of cross section.
278  virtual void sigmaKin();
279 
280  // Evaluate sigmaHat(sHat).
281  virtual double sigmaHat();
282 
283  // Select flavour, colour and anticolour.
284  virtual void setIdColAcol();
285 
286  // Info on the subprocess.
287  virtual string name() const {return nameSave;}
288  virtual int code() const {return 6020;}
289  virtual string inFlux() const {return "qqbar";}
290  virtual int resonanceA() const {return 23;}
291  virtual bool isSChannel() const {return true;}
292  virtual int id3Mass() const {return abs(id3);}
293  virtual int id4Mass() const {return abs(id4);}
294 
295 protected:
296 
297  // Parameters set at initialization.
298  double sigma0, openFracPair;
299  complex propRes;
300  string nameSave;
301  double mRes, GammaRes, m2Res;
302 
303  // Couplings for 5-plet.
304  double M1, M2, Lambda, mixN1, mixN2, xW, coupW11, coupW12, coupW2;
305 
306  // Variables for sleptons.
307  double yuk[4];
308 
309  // Type of model and N-plet. Flag for HNL production.
310  int type, nplet;
311  bool isUD;
312 
313  // Pointer to properties of the particle species, to access decay channels.
314  ParticleDataEntryPtr particlePtr;
315 
316  };
317 
318 //==========================================================================
319 
320 } // end namespace Pythia8
321 
322 #endif // Pythia_SigmaDM_H
double sigma0
Parameters set at initialization.
Definition: SigmaDM.h:298
Definition: SigmaDM.h:206
ParticleDataEntryPtr particlePtr
Pointer to properties of the particle species, to access decay channels.
Definition: SigmaDM.h:314
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaDM.h:191
double mRes
Parameters set at initialization.
Definition: SigmaDM.h:238
virtual int gmZmode() const
Special process-specific gamma*/Z0 choice if >=0 (e.g. f fbar -> H0 Z0).
Definition: SigmaDM.h:48
std::complex< double > complex
Convenient typedef for double precision complex numbers.
Definition: PythiaComplex.h:17
virtual int gmZmode() const
Zprime.
Definition: SigmaDM.h:153
Definition: SigmaProcess.h:439
virtual void initProc()
Initialize process.
Definition: SigmaDM.cc:22
virtual void setIdColAcol()
Select flavour, colour and anticolour.
Definition: SigmaDM.cc:185
Sigma2qqbar2Zpg2XXj()
Constructor.
Definition: SigmaDM.h:68
Definition: SigmaDM.h:247
Definition: SigmaDM.h:63
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaDM.h:45
Sigma1gg2S2XX()
Constructor.
Definition: SigmaDM.h:173
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaDM.h:289
Definition: SigmaDM.h:264
virtual string name() const
Info on the subprocess.
Definition: SigmaDM.h:84
Sigma2qg2Sq2XXj()
Constructor.
Definition: SigmaDM.h:252
bool kinMix
Parameters set at initialization.
Definition: SigmaDM.h:96
Sigma2gg2Sg2XXj()
Constructor.
Definition: SigmaDM.h:211
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaDM.h:46
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaDM.h:190
int type
Type of model and N-plet. Flag for HNL production.
Definition: SigmaDM.h:310
A derived class for f fbar&#39; -> Zprime -> X X. (Zprime a.k.a. DMmed(s=1).)
Definition: SigmaDM.h:22
virtual string name() const
Info on the subprocess.
Definition: SigmaDM.h:43
virtual int id3Mass() const
Definition: SigmaDM.h:292
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaDM.h:148
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaDM.h:86
virtual string name() const
Info on the subprocess.
Definition: SigmaDM.h:227
Sigma2qqbar2DY()
Constructor,.
Definition: SigmaDM.h:269
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaDM.h:87
virtual double sigmaHat()
Evaluate sigmaHat(sHat).
Definition: SigmaDM.cc:142
virtual string name() const
Info on the subprocess.
Definition: SigmaDM.h:188
virtual bool isSChannel() const
scalar mediator
Definition: SigmaDM.h:258
Sigma2ffbar2ZpH()
Constructor.
Definition: SigmaDM.h:130
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaDM.h:290
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaDM.h:230
Definition: SigmaProcess.h:479
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaDM.h:152
virtual int id3Mass() const
Definition: SigmaDM.h:232
double M1
Couplings for 5-plet.
Definition: SigmaDM.h:304
virtual int id3Mass() const
Zprime.
Definition: SigmaDM.h:88
virtual bool isSChannel() const
scalar mediator
Definition: SigmaDM.h:231
Definition: SigmaDM.h:168
virtual bool isSChannel() const
2 -> 2 and 2 -> 3 processes only through s-channel exchange.
Definition: SigmaDM.h:291
virtual bool isSChannel() const
scalar mediator
Definition: SigmaDM.h:192
virtual bool isSChannel() const
2 -> 2 and 2 -> 3 processes only through s-channel exchange.
Definition: SigmaDM.h:90
Sigma1ffbar2Zp2XX()
Constructor.
Definition: SigmaDM.h:27
ParticleDataEntryPtr particlePtr
Pointer to properties of the particle species, to access decay channels.
Definition: SigmaDM.h:241
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaDM.h:257
virtual void sigmaKin()
Calculate flavour-independent parts of cross section.
Definition: SigmaDM.cc:132
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
virtual bool isSChannel() const
Zprime.
Definition: SigmaDM.h:47
ParticleDataEntryPtr particlePtr
Pointer to properties of the particle species, to access decay channels.
Definition: SigmaDM.h:100
A derived class for f fbar&#39; -> Zprime H, Zprime -> X X.
Definition: SigmaDM.h:125
Definition: SigmaDM.h:106
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaDM.h:229
virtual string name() const
Info on the subprocess.
Definition: SigmaDM.h:255
virtual bool isSChannel() const
2 -> 2 and 2 -> 3 processes only through s-channel exchange.
Definition: SigmaDM.h:149
virtual string name() const
Info on the subprocess.
Definition: SigmaDM.h:287
virtual int id3Mass() const
Definition: SigmaDM.h:150
virtual int gmZmode() const
Special process-specific gamma*/Z0 choice if >=0 (e.g. f fbar -> H0 Z0).
Definition: SigmaDM.h:91
virtual string name() const
Info on the subprocess.
Definition: SigmaDM.h:146