]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA8/pythia8145/include/SigmaGeneric.h
New pythia8 version
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8145 / include / SigmaGeneric.h
1 // SigmaGeneric.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2010 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
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
22 class Sigma2gg2qGqGbar : public Sigma2Process {
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), 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
50 private:
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
64 class Sigma2qqbar2qGqGbar : public Sigma2Process {
65
66 public:
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
92 private:
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 particle of spin 0, 1/2 or 1)
104 // via gamma^*/Z^* s-channel exchange. Still under development!! ?? 
105
106 class Sigma2ffbar2fGfGbar : public Sigma2Process {
107
108 public:
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
134 private:
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 } // end namespace Pythia8
147
148 #endif // Pythia8_SigmaGeneric_H