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

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

first import of structure, PYTHIA8 and DELPHES

File size: 5.5 KB
Line 
1// SigmaGeneric.h is a part of the PYTHIA event generator.
2// Copyright (C) 2012 Johan Bijnens,Torbjorn Sjostrand.
3// PYTHIA is licenced under the GNU GPL version 2, 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 "SigmaProcess.h"
15
16namespace Pythia8 {
17 
18//==========================================================================
19
20// A derived class for g g -> qG qGbar (generic quark of spin 0, 1/2 or 1).
21
22class Sigma2gg2qGqGbar : public Sigma2Process {
23
24public:
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), nameSave(nameIn) {}
30
31  // Initialize process.
32  virtual void initProc(); 
33
34  // Calculate flavour-independent parts of cross section.
35  virtual void sigmaKin();
36
37  // Evaluate sigmaHat(sHat).
38  virtual double sigmaHat() {return sigma;}
39
40  // Select flavour, colour and anticolour.
41  virtual void setIdColAcol();
42
43  // Info on the subprocess.
44  virtual string name()    const {return nameSave;}
45  virtual int    code()    const {return codeSave;}
46  virtual string inFlux()  const {return "gg";}
47  virtual int    id3Mass() const {return idNew;}
48  virtual int    id4Mass() const {return idNew;}
49
50private:
51
52  // Values stored for process type and colour flow selection.
53  int    idNew, codeSave, spinSave, nCHV;
54  string nameSave;
55  bool   hasKappa;
56  double openFracPair, sigma, sigTS, sigUS, sigSum, kappam1;
57
58};
59 
60//==========================================================================
61
62// A derived class for q qbar -> qG qGbar (generic quark of spin 0, 1/2 or 1).
63
64class Sigma2qqbar2qGqGbar : public Sigma2Process {
65
66public:
67
68  // Constructor.
69  Sigma2qqbar2qGqGbar(int idIn, int codeIn, int spinIn, 
70    string nameIn = "q qbar -> qG qGbar") : idNew(idIn), codeSave(codeIn),
71    spinSave(spinIn), nameSave(nameIn) {}
72
73  // Initialize process.
74  virtual void initProc(); 
75
76  // Calculate flavour-independent parts of cross section.
77  virtual void sigmaKin();
78
79  // Evaluate sigmaHat(sHat).
80  virtual double sigmaHat() {return sigma;}
81
82  // Select flavour, colour and anticolour.
83  virtual void setIdColAcol();
84
85  // Info on the subprocess.
86  virtual string name()    const {return nameSave;}
87  virtual int    code()    const {return codeSave;}
88  virtual string inFlux()  const {return "qqbarSame";}
89  virtual int    id3Mass() const {return idNew;}
90  virtual int    id4Mass() const {return idNew;}
91
92private:
93
94  // Values stored for process type and colour flow selection.
95  int    idNew, codeSave, spinSave, nCHV;
96  string nameSave;
97  double openFracPair, sigma, sigTS, sigUS, sigSum, kappa;
98
99};
100 
101//==========================================================================
102
103// A derived class for f fbar -> fG fGbar (generic spin 0, 1/2 or 1 particle)
104// via gamma^*/Z^* s-channel exchange. Still under development!! ??
105
106class Sigma2ffbar2fGfGbar : public Sigma2Process {
107
108public:
109
110  // Constructor.
111  Sigma2ffbar2fGfGbar(int idIn, int codeIn, int spinIn, 
112    string nameIn = "q qbar -> qG qGbar") : idNew(idIn), codeSave(codeIn),
113    spinSave(spinIn), nameSave(nameIn) {}
114
115  // Initialize process.
116  virtual void initProc(); 
117
118  // Calculate flavour-independent parts of cross section.
119  virtual void sigmaKin();
120
121  // Evaluate sigmaHat(sHat).
122  virtual double sigmaHat(); 
123
124  // Select flavour, colour and anticolour.
125  virtual void setIdColAcol();
126
127  // Info on the subprocess.
128  virtual string name()    const {return nameSave;}
129  virtual int    code()    const {return codeSave;}
130  virtual string inFlux()  const {return "ffbarSame";}
131  virtual int    id3Mass() const {return idNew;}
132  virtual int    id4Mass() const {return idNew;}
133
134private:
135
136  // Values stored for process type and colour flow selection.
137  int    idNew, codeSave, spinSave, nCHV;
138  string nameSave;
139  bool   hasColour;
140  double eQHV2, openFracPair, sigma0, sigTS, sigUS, sigSum, kappa, colFac;
141
142};
143 
144//==========================================================================
145
146// A derived class for f fbar -> Zv, where Zv couples both to the SM and
147// to a hidden sector. Primitive coupling structure.
148
149class Sigma1ffbar2Zv : public Sigma1Process {
150
151public:
152
153  // Constructor.
154  Sigma1ffbar2Zv() {}
155
156  // Initialize process.
157  virtual void initProc(); 
158
159  // Calculate flavour-independent parts of cross section.
160  virtual void sigmaKin();
161
162  // Evaluate sigmaHat(sHat) for given inflavours.
163  virtual double sigmaHat();
164
165  // Select flavour, colour and anticolour.
166  virtual void setIdColAcol();
167
168  // Evaluate weight for decay angles.
169  virtual double weightDecay( Event& process, int iResBeg, int iResEnd); 
170
171  // Info on the subprocess.
172  virtual string name()       const {return "f fbar -> Zv";}
173  virtual int    code()       const {return 4941;}
174  virtual string inFlux()     const {return "ffbarSame";}
175  virtual int    resonanceA() const {return 4900023;}
176
177private:
178
179  // Store flavour-specific process information and standard prefactor.
180  int    idZv;
181  double mRes, GammaRes, m2Res, GamMRat, sigOut;
182
183  // Pointer to properties of Zv, to access decay width.
184  ParticleDataEntry* particlePtr;
185
186};
187
188//==========================================================================
189
190} // end namespace Pythia8
191
192#endif // Pythia8_SigmaGeneric_H
Note: See TracBrowser for help on using the repository browser.