PYTHIA  8.312
SigmaGeneric.h
1 // SigmaGeneric.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2024 Johan Bijnens,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 various generic production processes, to be used as
7 // building blocks for some BSM processes.
8 // Currently represented by QCD pair production of colour triplet objects,
9 // with spin either 0, 1/2 or 1.
10 
11 #ifndef Pythia8_SigmaGeneric_H
12 #define Pythia8_SigmaGeneric_H
13 
14 #include "Pythia8/SigmaProcess.h"
15 
16 namespace Pythia8 {
17 
18 //==========================================================================
19 
20 // A derived class for g g -> qG qGbar (generic quark of spin 0, 1/2 or 1).
21 
23 
24 public:
25 
26  // Constructor.
27  Sigma2gg2qGqGbar(int idIn, int codeIn, int spinIn,
28  string nameIn = "g g -> qG qGbar") : idNew(idIn), codeSave(codeIn),
29  spinSave(spinIn), nCHV(), nameSave(nameIn), hasKappa(), openFracPair(),
30  sigma(), sigTS(), sigUS(), sigSum(), kappam1() {}
31 
32  // Initialize process.
33  virtual void initProc();
34 
35  // Calculate flavour-independent parts of cross section.
36  virtual void sigmaKin();
37 
38  // Evaluate sigmaHat(sHat).
39  virtual double sigmaHat() {return sigma;}
40 
41  // Select flavour, colour and anticolour.
42  virtual void setIdColAcol();
43 
44  // Info on the subprocess.
45  virtual string name() const {return nameSave;}
46  virtual int code() const {return codeSave;}
47  virtual string inFlux() const {return "gg";}
48  virtual int id3Mass() const {return idNew;}
49  virtual int id4Mass() const {return idNew;}
50 
51 private:
52 
53  // Values stored for process type and colour flow selection.
54  int idNew, codeSave, spinSave, nCHV;
55  string nameSave;
56  bool hasKappa;
57  double openFracPair, sigma, sigTS, sigUS, sigSum, kappam1;
58 
59 };
60 
61 //==========================================================================
62 
63 // A derived class for q qbar -> qG qGbar (generic quark of spin 0, 1/2 or 1).
64 
66 
67 public:
68 
69  // Constructor.
70  Sigma2qqbar2qGqGbar(int idIn, int codeIn, int spinIn,
71  string nameIn = "q qbar -> qG qGbar") : idNew(idIn), codeSave(codeIn),
72  spinSave(spinIn), nCHV(), nameSave(nameIn), openFracPair(), sigma(),
73  sigSum(), kappa() {}
74 
75  // Initialize process.
76  virtual void initProc();
77 
78  // Calculate flavour-independent parts of cross section.
79  virtual void sigmaKin();
80 
81  // Evaluate sigmaHat(sHat).
82  virtual double sigmaHat() {return sigma;}
83 
84  // Select flavour, colour and anticolour.
85  virtual void setIdColAcol();
86 
87  // Info on the subprocess.
88  virtual string name() const {return nameSave;}
89  virtual int code() const {return codeSave;}
90  virtual string inFlux() const {return "qqbarSame";}
91  virtual int id3Mass() const {return idNew;}
92  virtual int id4Mass() const {return idNew;}
93 
94 private:
95 
96  // Values stored for process type and colour flow selection.
97  int idNew, codeSave, spinSave, nCHV;
98  string nameSave;
99  double openFracPair, sigma, sigSum, kappa;
100 
101 };
102 
103 //==========================================================================
104 
105 // A derived class for f fbar -> fG fGbar (generic spin 0, 1/2 or 1 particle)
106 // via gamma^*/Z^* s-channel exchange. Still under development!! ??
107 
109 
110 public:
111 
112  // Constructor.
113  Sigma2ffbar2fGfGbar(int idIn, int codeIn, int spinIn,
114  string nameIn = "q qbar -> qG qGbar") : idNew(idIn), codeSave(codeIn),
115  spinSave(spinIn), nCHV(), nameSave(nameIn), hasColour(), eQHV2(),
116  openFracPair(), sigma0(), sigSum(), kappa(), colFac() {}
117 
118  // Initialize process.
119  virtual void initProc();
120 
121  // Calculate flavour-independent parts of cross section.
122  virtual void sigmaKin();
123 
124  // Evaluate sigmaHat(sHat).
125  virtual double sigmaHat();
126 
127  // Select flavour, colour and anticolour.
128  virtual void setIdColAcol();
129 
130  // Info on the subprocess.
131  virtual string name() const {return nameSave;}
132  virtual int code() const {return codeSave;}
133  virtual string inFlux() const {return "ffbarSame";}
134  virtual int id3Mass() const {return idNew;}
135  virtual int id4Mass() const {return idNew;}
136 
137 private:
138 
139  // Values stored for process type and colour flow selection.
140  int idNew, codeSave, spinSave, nCHV;
141  string nameSave;
142  bool hasColour;
143  double eQHV2, openFracPair, sigma0, sigSum, kappa, colFac;
144 
145 };
146 
147 //==========================================================================
148 
149 // A derived class for f fbar -> Zv, where Zv couples both to the SM and
150 // to a hidden sector. Primitive coupling structure.
151 
153 
154 public:
155 
156  // Constructor.
157  Sigma1ffbar2Zv() : idZv(), mRes(), GammaRes(), m2Res(), GamMRat(),
158  sigOut(), particlePtr() {}
159 
160  // Initialize process.
161  virtual void initProc();
162 
163  // Calculate flavour-independent parts of cross section.
164  virtual void sigmaKin();
165 
166  // Evaluate sigmaHat(sHat) for given inflavours.
167  virtual double sigmaHat();
168 
169  // Select flavour, colour and anticolour.
170  virtual void setIdColAcol();
171 
172  // Evaluate weight for decay angles.
173  virtual double weightDecay( Event& process, int iResBeg, int iResEnd);
174 
175  // Info on the subprocess.
176  virtual string name() const {return "f fbar -> Zv";}
177  virtual int code() const {return 4941;}
178  virtual string inFlux() const {return "ffbarSame";}
179  virtual int resonanceA() const {return 4900023;}
180 
181 private:
182 
183  // Store flavour-specific process information and standard prefactor.
184  int idZv;
185  double mRes, GammaRes, m2Res, GamMRat, sigOut;
186 
187  // Pointer to properties of Zv, to access decay width.
188  ParticleDataEntryPtr particlePtr;
189 
190 };
191 
192 //==========================================================================
193 
194 } // end namespace Pythia8
195 
196 #endif // Pythia8_SigmaGeneric_H
virtual void setIdColAcol()
Select flavour, colour and anticolour.
Definition: SigmaGeneric.cc:129
virtual string name() const
Info on the subprocess.
Definition: SigmaGeneric.h:131
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaGeneric.h:133
Definition: SigmaProcess.h:439
The Event class holds all info on the generated event.
Definition: Event.h:453
Sigma2qqbar2qGqGbar(int idIn, int codeIn, int spinIn, string nameIn="q qbar -> qG qGbar")
Constructor.
Definition: SigmaGeneric.h:70
virtual double sigmaHat()
Evaluate sigmaHat(sHat).
Definition: SigmaGeneric.h:82
virtual double weightDecay(Event &, int, int)
Definition: SigmaProcess.h:169
Sigma2gg2qGqGbar(int idIn, int codeIn, int spinIn, string nameIn="g g -> qG qGbar")
Constructor.
Definition: SigmaGeneric.h:27
A derived class for q qbar -> qG qGbar (generic quark of spin 0, 1/2 or 1).
Definition: SigmaGeneric.h:65
virtual int id3Mass() const
Definition: SigmaGeneric.h:134
virtual double sigmaHat()
Evaluate sigmaHat(sHat).
Definition: SigmaGeneric.h:39
Definition: SigmaGeneric.h:108
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaGeneric.h:47
A derived class for g g -> qG qGbar (generic quark of spin 0, 1/2 or 1).
Definition: SigmaGeneric.h:22
virtual string name() const
Info on the subprocess.
Definition: SigmaGeneric.h:176
virtual void sigmaKin()
Calculate flavour-independent parts of cross section.
Definition: SigmaGeneric.cc:46
virtual string name() const
Info on the subprocess.
Definition: SigmaGeneric.h:88
Definition: SigmaProcess.h:479
virtual string name() const
Info on the subprocess.
Definition: SigmaGeneric.h:45
Sigma2ffbar2fGfGbar(int idIn, int codeIn, int spinIn, string nameIn="q qbar -> qG qGbar")
Constructor.
Definition: SigmaGeneric.h:113
virtual void initProc()
Initialize process.
Definition: SigmaGeneric.cc:30
virtual int resonanceA() const
Special treatment needed if process contains an s-channel resonance.
Definition: SigmaGeneric.h:179
virtual int id3Mass() const
Definition: SigmaGeneric.h:91
Sigma1ffbar2Zv()
Constructor.
Definition: SigmaGeneric.h:157
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaGeneric.h:178
virtual int id3Mass() const
Definition: SigmaGeneric.h:48
Definition: SigmaGeneric.h:152
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaGeneric.h:90