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.
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.
11 #ifndef Pythia8_SigmaGeneric_H
12 #define Pythia8_SigmaGeneric_H
14 #include "SigmaProcess.h"
18 //==========================================================================
20 // A derived class for g g -> qG qGbar (generic quark of spin 0, 1/2 or 1).
22 class Sigma2gg2qGqGbar : public Sigma2Process {
27 Sigma2gg2qGqGbar(int idIn, int codeIn, int spinIn,
28 string nameIn = "g g -> qG qGbar") : idNew(idIn), codeSave(codeIn),
29 spinSave(spinIn), nameSave(nameIn) {}
31 // Initialize process.
32 virtual void initProc();
34 // Calculate flavour-independent parts of cross section.
35 virtual void sigmaKin();
37 // Evaluate sigmaHat(sHat).
38 virtual double sigmaHat() {return sigma;}
40 // Select flavour, colour and anticolour.
41 virtual void setIdColAcol();
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;}
52 // Values stored for process type and colour flow selection.
53 int idNew, codeSave, spinSave, nCHV;
56 double openFracPair, sigma, sigTS, sigUS, sigSum, kappam1;
60 //==========================================================================
62 // A derived class for q qbar -> qG qGbar (generic quark of spin 0, 1/2 or 1).
64 class Sigma2qqbar2qGqGbar : public Sigma2Process {
69 Sigma2qqbar2qGqGbar(int idIn, int codeIn, int spinIn,
70 string nameIn = "q qbar -> qG qGbar") : idNew(idIn), codeSave(codeIn),
71 spinSave(spinIn), nameSave(nameIn) {}
73 // Initialize process.
74 virtual void initProc();
76 // Calculate flavour-independent parts of cross section.
77 virtual void sigmaKin();
79 // Evaluate sigmaHat(sHat).
80 virtual double sigmaHat() {return sigma;}
82 // Select flavour, colour and anticolour.
83 virtual void setIdColAcol();
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;}
94 // Values stored for process type and colour flow selection.
95 int idNew, codeSave, spinSave, nCHV;
97 double openFracPair, sigma, sigTS, sigUS, sigSum, kappa;
101 //==========================================================================
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!! ??
106 class Sigma2ffbar2fGfGbar : public Sigma2Process {
111 Sigma2ffbar2fGfGbar(int idIn, int codeIn, int spinIn,
112 string nameIn = "q qbar -> qG qGbar") : idNew(idIn), codeSave(codeIn),
113 spinSave(spinIn), nameSave(nameIn) {}
115 // Initialize process.
116 virtual void initProc();
118 // Calculate flavour-independent parts of cross section.
119 virtual void sigmaKin();
121 // Evaluate sigmaHat(sHat).
122 virtual double sigmaHat();
124 // Select flavour, colour and anticolour.
125 virtual void setIdColAcol();
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;}
136 // Values stored for process type and colour flow selection.
137 int idNew, codeSave, spinSave, nCHV;
140 double eQHV2, openFracPair, sigma0, sigTS, sigUS, sigSum, kappa, colFac;
144 //==========================================================================
146 } // end namespace Pythia8
148 #endif // Pythia8_SigmaGeneric_H