9 #ifndef Pythia8_SigmaOnia_H 10 #define Pythia8_SigmaOnia_H 12 #include "Pythia8/SigmaProcess.h" 30 void initStates(
string wave,
const vector<int> &states,
31 vector<int> &jnums,
bool &valid,
bool duplicate =
true);
33 const vector<string> &names, vector< vector<double> > &pvecs,
bool &valid);
35 const vector<string> &names, vector< vector<bool> > &fvecs,
bool &valid);
44 vector<int>
states3S1, states3PJ, spins3S1, spins3PJ;
45 vector<string> meNames3S1, meNames3PJ;
46 vector< vector<double> > mes3S1, mes3PJ;
49 bool onia{}, onia3S1{}, onia3PJ{}, oniaFlavour{},
50 valid3S1{
true}, valid3PJ{
true};
72 void setupSigma2gg(vector<SigmaProcessPtr> &procs,
bool oniaIn =
false);
73 void setupSigma2qg(vector<SigmaProcessPtr> &procs,
bool oniaIn =
false);
74 void setupSigma2qq(vector<SigmaProcessPtr> &procs,
bool oniaIn =
false);
79 bool onia3DJ{
true}, valid3DJ{
true}, validDbl3S1{
true};
82 vector<int> states3DJ, spins3DJ, states1Dbl3S1, states2Dbl3S1, spins1Dbl3S1,
84 vector<string> meNames3DJ, meNamesDbl3S1;
85 vector< vector<double> > mes3DJ, mesDbl3S1;
86 vector<string> ggNames3S1, qgNames3S1, qqNames3S1,
87 ggNames3PJ, qgNames3PJ, qqNames3PJ, ggNames3DJ, qgNames3DJ, qqNames3DJ,
89 vector< vector<bool> > ggs3S1, qgs3S1, qqs3S1, ggs3PJ, qgs3PJ, qqs3PJ,
90 ggs3DJ, qgs3DJ, qqs3DJ, dbls3S1;
104 idHad(abs(idHadIn)), codeSave(codeIn), oniumME(oniumMEIn), sigma() {}
107 virtual void initProc();
110 virtual void sigmaKin();
116 virtual void setIdColAcol();
119 virtual string name()
const {
return nameSave;}
120 virtual int code()
const {
return codeSave;}
121 virtual string inFlux()
const {
return "gg";}
129 double oniumME, sigma;
143 idHad(abs(idHadIn)), codeSave(codeIn), qEM2(), oniumME(oniumMEIn),
147 virtual void initProc();
150 virtual void sigmaKin();
156 virtual void setIdColAcol();
159 virtual string name()
const {
return nameSave;}
160 virtual int code()
const {
return codeSave;}
161 virtual string inFlux()
const {
return "gg";}
169 double qEM2, oniumME, sigma;
183 idHad(idHadIn), jSave(jIn), codeSave(codeIn), oniumME(oniumMEIn), sigma()
187 virtual void initProc();
190 virtual void sigmaKin();
196 virtual void setIdColAcol();
199 virtual string name()
const {
return nameSave;}
200 virtual int code()
const {
return codeSave;}
201 virtual string inFlux()
const {
return "gg";}
208 virtual string namePostfix()
const {
return "g";}
209 string nameMidfix()
const {
return (codeSave - codeSave%100)/100
210 == 4 ?
"ccbar" :
"bbbar";}
215 double oniumME, sigma;
232 virtual void sigmaKin();
235 virtual void setIdColAcol();
238 virtual string inFlux()
const {
return "qg";}
244 string namePostfix()
const {
return "q";}
261 virtual void sigmaKin();
264 virtual void setIdColAcol();
267 virtual string inFlux()
const {
return "qqbarSame";}
273 string namePostfix()
const {
return "g";}
290 virtual void initProc();
293 virtual void sigmaKin();
307 double mSplitIn,
int codeIn) : idHad(idHadIn), stateSave(stateIn),
308 codeSave(codeIn), oniumME(oniumMEIn), sigma(),
mSplit(mSplitIn) {}
311 virtual void initProc();
314 virtual void sigmaKin();
320 virtual void setIdColAcol();
323 virtual string name()
const {
return nameSave;}
324 virtual int code()
const {
return codeSave;}
325 virtual string inFlux()
const {
return "gg";}
332 virtual string namePostfix()
const {
return "g";}
337 double oniumME, sigma,
mSplit;
351 double mSplitIn,
int codeIn) :
355 virtual void sigmaKin();
358 virtual void setIdColAcol();
361 virtual string inFlux()
const {
return "qg";}
367 virtual string namePostfix()
const {
return "q";}
382 double mSplitIn,
int codeIn) :
386 virtual void sigmaKin();
389 virtual void setIdColAcol();
392 virtual string inFlux()
const {
return "qqbarSame";}
398 virtual string namePostfix()
const {
return "g";}
412 double oniumME1In,
double oniumME2In,
int codeIn) :
413 idHad1(abs(idHad1In)), idHad2(abs(idHad2In)), codeSave(codeIn),
414 oniumME1(oniumME1In), oniumME2(oniumME2In), sigma() {}
417 virtual void initProc();
420 virtual void sigmaKin();
426 virtual void setIdColAcol();
429 virtual string name()
const {
return nameSave;}
430 virtual int code()
const {
return codeSave;}
431 virtual string inFlux()
const {
return "gg";}
433 virtual int id4Mass()
const {
return idHad2;}
438 int idHad1, idHad2, codeSave;
440 double oniumME1, oniumME2, sigma;
455 double oniumME1In,
double oniumME2In,
int codeIn) :
456 idHad1(abs(idHad1In)), idHad2(abs(idHad2In)), codeSave(codeIn),
m2(),
457 oniumME1(oniumME1In), oniumME2(oniumME2In), sigma() {}
460 virtual void initProc();
463 virtual void sigmaKin();
469 virtual void setIdColAcol();
472 virtual string name()
const {
return nameSave;}
473 virtual int code()
const {
return codeSave;}
474 virtual string inFlux()
const {
return "qqbarSame";}
476 virtual int id4Mass()
const {
return idHad2;}
481 int idHad1, idHad2, codeSave;
483 double m2, oniumME1, oniumME2, sigma;
virtual string namePrefix() const
Name pre-, post-, and mid-fix.
Definition: SigmaOnia.h:207
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaOnia.h:161
A derived class for q g -> QQbar[X(8)] q (Q = c or b, X = 3S1, 1S0 or 3PJ).
Definition: SigmaOnia.h:345
Sigma2gg2QQbar3DJ1g(int idHadIn, double oniumMEIn, int jIn, int codeIn)
Constructor.
Definition: SigmaOnia.h:286
Sigma2qg2QQbarX8q(int idHadIn, double oniumMEIn, int stateIn, double mSplitIn, int codeIn)
Constructor.
Definition: SigmaOnia.h:350
Sigma2qg2QQbar3PJ1q(int idHadIn, double oniumMEIn, int jIn, int codeIn)
Constructor.
Definition: SigmaOnia.h:228
virtual string namePrefix() const
Name pre- and post-fix.
Definition: SigmaOnia.h:397
virtual string name() const
Info on the subprocess.
Definition: SigmaOnia.h:119
A derived class for q qbar -> QQbar[3S1(1)] QQbar[3S1(1)] (Q = c or b).
Definition: SigmaOnia.h:449
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaOnia.h:193
virtual int id3Mass() const
Definition: SigmaOnia.h:202
virtual int id3Mass() const
Definition: SigmaOnia.h:326
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaOnia.h:121
double mSplit
Stored parameters.
Definition: SigmaOnia.h:55
virtual int id3Mass() const
Definition: SigmaOnia.h:475
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaOnia.h:474
int idHad
Values stored for process type and colour flow selection.
Definition: SigmaOnia.h:213
Sigma2qqbar2QQbar3PJ1g(int idHadIn, double oniumMEIn, int jIn, int codeIn)
Constructor.
Definition: SigmaOnia.h:257
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaOnia.h:153
A helper class used to setup the onia processes.
Definition: SigmaOnia.h:63
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaOnia.h:201
A derived class for q qbar -> QQbar[3PJ(1)] g (Q = c or b, J = 0, 1 or 2).
Definition: SigmaOnia.h:252
virtual string namePrefix() const
Name pre- and post-fix.
Definition: SigmaOnia.h:331
Definition: SigmaOnia.h:21
A derived class for g g -> QQbar[3S1(1)] QQbar[3S1(1)] (Q = c or b).
Definition: SigmaOnia.h:406
virtual int id3Mass() const
Definition: SigmaOnia.h:432
virtual string inFlux() const
Info on the subprocess.
Definition: SigmaOnia.h:392
string namePrefix() const
Name pre- and post-fix.
Definition: SigmaOnia.h:243
vector< int > states3S1
Stored vectors of settings.
Definition: SigmaOnia.h:44
Definition: SigmaOnia.h:376
Sigma2qqbar2QQbarX8g(int idHadIn, double oniumMEIn, int stateIn, double mSplitIn, int codeIn)
Constructor.
Definition: SigmaOnia.h:381
Info * infoPtr
Stored pointers.
Definition: SigmaOnia.h:38
Sigma2gg2QQbar3PJ1g(int idHadIn, double oniumMEIn, int jIn, int codeIn)
Constructor.
Definition: SigmaOnia.h:182
Sigma2gg2QQbar3S11gm(int idHadIn, double oniumMEIn, int codeIn)
Constructor.
Definition: SigmaOnia.h:142
A derived class for g g -> QQbar[3PJ(1)] g (Q = c or b, J = 0, 1 or 2).
Definition: SigmaOnia.h:177
OniaSetup()=default
Constructors.
A derived class for g g -> QQbar[3S1(1)] g (Q = c or b).
Definition: SigmaOnia.h:98
A derived class for g g -> QQbar[3S1(1)] gamma (Q = c or b).
Definition: SigmaOnia.h:137
Definition: SigmaProcess.h:479
virtual string inFlux() const
Info on the subprocess.
Definition: SigmaOnia.h:238
virtual int id3Mass() const
Definition: SigmaOnia.h:122
void initSettings(string wave, unsigned int size, const vector< string > &names, vector< vector< double > > &pvecs, bool &valid)
Initialise and check a group of PVec settings.
Definition: SigmaOnia.cc:125
string namePrefix() const
Name pre- and post-fix.
Definition: SigmaOnia.h:272
int idHad
Values stored for process type and colour flow selection.
Definition: SigmaOnia.h:335
Sigma2gg2QQbarX8g(int idHadIn, double oniumMEIn, int stateIn, double mSplitIn, int codeIn)
Constructor.
Definition: SigmaOnia.h:306
virtual string name() const
Info on the subprocess.
Definition: SigmaOnia.h:323
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaOnia.h:325
virtual string inFlux() const
Info on the subprocess.
Definition: SigmaOnia.h:361
double m2(const Vec4 &v1)
The squared invariant mass of one or more four-vectors.
Definition: Basics.cc:605
bool onia
Stored validity and production flags.
Definition: SigmaOnia.h:49
virtual string inFlux() const
Need to know which incoming partons to set up interaction for.
Definition: SigmaOnia.h:431
virtual string namePrefix() const
Name pre- and post-fix.
Definition: SigmaOnia.h:366
Sigma2qqbar2QQbar3S11QQbar3S11(int idHad1In, int idHad2In, double oniumME1In, double oniumME2In, int codeIn)
Constructor.
Definition: SigmaOnia.h:454
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
A derived class for q g -> QQbar[3PJ(1)] q (Q = c or b, J = 0, 1 or 2).
Definition: SigmaOnia.h:223
virtual string name() const
Info on the subprocess.
Definition: SigmaOnia.h:429
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaOnia.h:466
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaOnia.h:423
A derived class for g g -> QQbar[3DJ(1)] g (Q = c or b).
Definition: SigmaOnia.h:281
virtual string inFlux() const
Info on the subprocess.
Definition: SigmaOnia.h:267
virtual string name() const
Info on the subprocess.
Definition: SigmaOnia.h:159
A derived class for g g -> QQbar[X(8)] g (Q = c or b, X = 3S1, 1S0 or 3PJ).
Definition: SigmaOnia.h:301
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaOnia.h:317
Sigma2gg2QQbar3S11g(int idHadIn, double oniumMEIn, int codeIn)
Constructor.
Definition: SigmaOnia.h:103
virtual int id3Mass() const
Definition: SigmaOnia.h:162
void initStates(string wave, const vector< int > &states, vector< int > &jnums, bool &valid, bool duplicate=true)
Intialise and check settings.
Definition: SigmaOnia.cc:50
This class holds a map of all ParticleDataEntries.
Definition: ParticleData.h:422
virtual string name() const
Info on the subprocess.
Definition: SigmaOnia.h:199
virtual double sigmaHat()
Evaluate d(sigmaHat)/d(tHat).
Definition: SigmaOnia.h:113
Sigma2gg2QQbar3S11QQbar3S11(int idHad1In, int idHad2In, double oniumME1In, double oniumME2In, int codeIn)
Constructor.
Definition: SigmaOnia.h:411
virtual string name() const
Info on the subprocess.
Definition: SigmaOnia.h:472
Definition: Settings.h:195