thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
Handlers
SimpleFlavour.h
1
// -*- C++ -*-
2
//
3
// SimpleFlavour.h is a part of ThePEG - Toolkit for HEP Event Generation
4
// Copyright (C) 1999-2019 Leif Lonnblad
5
//
6
// ThePEG is licenced under version 3 of the GPL, see COPYING for details.
7
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8
//
9
#ifndef THEPEG_SimpleFlavour_H
10
#define THEPEG_SimpleFlavour_H
11
// This is the declaration of the SimpleFlavour class.
12
13
#include "ThePEG/Handlers/FlavourGenerator.h"
14
#include "ThePEG/Utilities/VSelector.h"
15
// #include "SimpleFlavour.fh"
16
// #include "SimpleFlavour.xh"
17
18
namespace
ThePEG
{
19
28
class
SimpleFlavour
:
public
FlavourGenerator
{
29
30
public
:
31
33
typedef
map<long, VSelector< pair<long,long> > >
ProbabilityMap
;
34
35
public
:
36
42
SimpleFlavour
();
43
47
virtual
~SimpleFlavour
();
49
50
public
:
51
65
virtual
tcPDPair
generateHadron
(
tcPDPtr
quark)
const
;
66
76
virtual
tcPDPtr
getHadron
(
long
iq1,
long
iq2)
const
;
77
using
FlavourGenerator::getHadron
;
78
89
virtual
tcPDPtr
getBaryon
(
long
q1,
long
q2,
long
q3)
const
;
90
using
FlavourGenerator::getBaryon
;
91
95
virtual
long
selectQuark
()
const
;
96
100
virtual
long
selectFlavour
()
const
;
102
103
public
:
104
110
double
sSup
()
const
{
return
theSSup
; }
111
115
double
diSup
()
const
{
return
theDiSup
; }
116
120
double
di1Sup
()
const
{
return
theDi1Sup
; }
121
126
double
diSSup
()
const
{
return
theDiSSup
; }
127
131
double
etaSup
()
const
{
return
theEtaSup
; }
132
136
double
etaPSup
()
const
{
return
theEtaPSup
; }
137
142
double
baryon10Sup
()
const
{
return
theBaryon10Sup
; }
143
147
double
pSpin1
()
const
{
return
thePSpin1
; }
148
152
double
pSpinS1
()
const
{
return
thePSpinS1
; }
153
158
double
pSpinC1
()
const
{
return
thePSpinC1
; }
160
161
protected
:
162
167
virtual
void
setProbabilities
(
long
iq)
const
;
168
173
virtual
double
vectorMesonProbability
(
long
iq1,
long
iq2)
const
;
174
180
virtual
double
baryonDecupletProbability
(
long
iq1,
long
iq2)
const
;
181
185
virtual
tcPDPtr
pseudoScalarMeson
(
long
iq,
long
iqbar)
const
;
186
190
virtual
tcPDPtr
vectorMeson
(
long
iq,
long
iqbar)
const
;
191
196
virtual
tcPDPtr
baryonOctet
(
long
iq,
long
idq)
const
;
197
202
virtual
tcPDPtr
baryonDecuplet
(
long
iq,
long
idq)
const
;
203
208
virtual
long
pseudoScalarId
(
long
iqh,
long
iql)
const
;
209
214
virtual
long
vectorId
(
long
iqh,
long
iql)
const
;
215
222
virtual
long
baryonOctetId
(
long
iqa,
long
iqb,
long
iqc,
223
long
iq,
bool
dqs1)
const
;
224
229
virtual
long
baryonDecupletId
(
long
iqa,
long
iqb,
long
iqc)
const
;
230
236
virtual
vector< pair<long,double> >
237
pseudoScalarIds
(
long
iqh,
long
iql)
const
;
238
244
virtual
vector< pair<long,double> >
vectorIds
(
long
iqh,
long
iql)
const
;
245
252
virtual
vector< pair<long,double> >
253
baryonOctetIds
(
long
iqa,
long
iqb,
long
iqc,
254
long
iq,
bool
dqs1)
const
;
255
261
virtual
vector< pair<long,double> >
262
baryonDecupletIds
(
long
iqa,
long
iqb,
long
iqc)
const
;
263
267
void
clear
();
268
273
static
double
weightSU6QDiQSpin
(
long
iq,
long
idq,
int
spin);
274
275
public
:
276
283
void
persistentOutput
(
PersistentOStream
& os)
const
;
284
290
void
persistentInput
(
PersistentIStream
& is,
int
version);
292
296
static
void
Init
();
297
298
protected
:
299
306
virtual
IBPtr
clone
()
const
;
307
312
virtual
IBPtr
fullclone
()
const
;
314
315
protected
:
316
324
virtual
void
doinit
();
325
330
virtual
void
doinitrun
();
332
333
private
:
334
338
double
theSSup
;
339
343
double
theDiSup
;
344
348
double
theDi1Sup
;
349
354
double
theDiSSup
;
355
359
double
theEtaSup
;
360
364
double
theEtaPSup
;
365
369
double
theBaryon10Sup
;
370
374
double
thePSpin1
;
375
379
double
thePSpinS1
;
380
384
double
thePSpinC1
;
385
390
mutable
VSelector<long>
theFlavourSelector
;
391
395
mutable
ProbabilityMap
theProbabilities
;
396
397
398
private
:
399
403
static
ClassDescription<SimpleFlavour>
initSimpleFlavour
;
404
408
SimpleFlavour
&
operator=
(
const
SimpleFlavour
&) =
delete
;
409
410
};
411
412
}
413
414
415
namespace
ThePEG
{
416
423
template
<>
424
struct
BaseClassTrait<SimpleFlavour,1>:
public
ClassTraitsType {
426
typedef
FlavourGenerator
NthBase
;
427
};
428
429
template
<>
434
struct
ClassTraits<SimpleFlavour>
435
:
public
ClassTraitsBase<SimpleFlavour> {
437
static
string
className
() {
return
"ThePEG::SimpleFlavour"
; }
443
static
string
library
() {
return
"SimpleFlavour.so"
; }
444
445
};
446
449
}
450
451
#endif
/* THEPEG_SimpleFlavour_H */
ThePEG::ClassDescription
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
Definition:
ClassDescription.h:333
ThePEG::FlavourGenerator
FlavourGenerator is an abstract base class to be used to implement models describing the quark conten...
Definition:
FlavourGenerator.h:39
ThePEG::FlavourGenerator::getBaryon
virtual tcPDPtr getBaryon(tcPDPtr q1, tcPDPtr q2, tcPDPtr q3) const
Return a baryon with the flavour content given by the (anti)quarks in the argument.
ThePEG::FlavourGenerator::getHadron
virtual tcPDPtr getHadron(tcPDPtr q1, tcPDPtr q2) const
Get hadron from flavours.
ThePEG::PersistentIStream
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Definition:
PersistentIStream.h:48
ThePEG::PersistentOStream
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
Definition:
PersistentOStream.h:51
ThePEG::Pointer::RCPtr
RCPtr is a reference counted (smart) pointer.
Definition:
RCPtr.h:60
ThePEG::Pointer::TransientConstRCPtr
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition:
RCPtr.h:696
ThePEG::SimpleFlavour
SimpleFlavour is a simple class to generate hadrons given the quark flavours.
Definition:
SimpleFlavour.h:28
ThePEG::SimpleFlavour::operator=
SimpleFlavour & operator=(const SimpleFlavour &)=delete
Private and non-existent assignment operator.
ThePEG::SimpleFlavour::baryonDecupletIds
virtual vector< pair< long, double > > baryonDecupletIds(long iqa, long iqb, long iqc) const
Return the PDG codes for spin 3/2 decuplet baryons formed by the given quark flavours (iqa >= iqb >= ...
ThePEG::SimpleFlavour::initSimpleFlavour
static ClassDescription< SimpleFlavour > initSimpleFlavour
Describe a concrete class with persistent data.
Definition:
SimpleFlavour.h:403
ThePEG::SimpleFlavour::Init
static void Init()
Standard Init function used to initialize the interfaces.
ThePEG::SimpleFlavour::sSup
double sSup() const
Return the suppression factor of strange quarks w.r.t.
Definition:
SimpleFlavour.h:110
ThePEG::SimpleFlavour::~SimpleFlavour
virtual ~SimpleFlavour()
Destructor.
ThePEG::SimpleFlavour::pSpin1
double pSpin1() const
Return the probability that light (u/d) mesons has spin 1;.
Definition:
SimpleFlavour.h:147
ThePEG::SimpleFlavour::vectorIds
virtual vector< pair< long, double > > vectorIds(long iqh, long iql) const
Return the PDG codes of vector mesons formed by the two quark flavours (for iqh >= iql > 0),...
ThePEG::SimpleFlavour::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::SimpleFlavour::pseudoScalarId
virtual long pseudoScalarId(long iqh, long iql) const
Return the PDG code of a pseudo scalar meson formed by the two quark flavours for iqh >= iql > 0.
ThePEG::SimpleFlavour::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG::SimpleFlavour::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
ThePEG::SimpleFlavour::thePSpin1
double thePSpin1
Probability that light (u/d) mesons has spin 1.
Definition:
SimpleFlavour.h:374
ThePEG::SimpleFlavour::vectorMeson
virtual tcPDPtr vectorMeson(long iq, long iqbar) const
Return a vector meson formed by the two quark flavours.
ThePEG::SimpleFlavour::selectQuark
virtual long selectQuark() const
Generate a random quark flavour.
ThePEG::SimpleFlavour::pSpinS1
double pSpinS1() const
Return the probability that strange mesons has spin 1;.
Definition:
SimpleFlavour.h:152
ThePEG::SimpleFlavour::selectFlavour
virtual long selectFlavour() const
Generate a random (di)quark flavour.
ThePEG::SimpleFlavour::baryonDecupletId
virtual long baryonDecupletId(long iqa, long iqb, long iqc) const
Return the PDG code for a spin 3/2 decuplet baryon formed by the given quark flavours (iqa >= iqb >= ...
ThePEG::SimpleFlavour::diSup
double diSup() const
Return the suppression factor for di-quarks w.r.t.
Definition:
SimpleFlavour.h:115
ThePEG::SimpleFlavour::theSSup
double theSSup
Suppression factor of strange quarks w.r.t.
Definition:
SimpleFlavour.h:338
ThePEG::SimpleFlavour::getHadron
virtual tcPDPtr getHadron(long iq1, long iq2) const
Get hadron from flavours.
ThePEG::SimpleFlavour::theBaryon10Sup
double theBaryon10Sup
Extra suppression for baryons of the spin 3/2 decuplet.
Definition:
SimpleFlavour.h:369
ThePEG::SimpleFlavour::baryonOctet
virtual tcPDPtr baryonOctet(long iq, long idq) const
Return a spin 1/2 octet baryon formed by the given quark and diquark flavours.
ThePEG::SimpleFlavour::weightSU6QDiQSpin
static double weightSU6QDiQSpin(long iq, long idq, int spin)
Return the SU(6) weight for the given quark and di-quark flavours to end up with in a baryon with the...
ThePEG::SimpleFlavour::theEtaPSup
double theEtaPSup
Extra suppression of ets-prime's.
Definition:
SimpleFlavour.h:364
ThePEG::SimpleFlavour::theDiSup
double theDiSup
Suppression factor for di-quarks w.r.t.
Definition:
SimpleFlavour.h:343
ThePEG::SimpleFlavour::thePSpinC1
double thePSpinC1
Probability that charmed and heavier mesons has spin 1.
Definition:
SimpleFlavour.h:384
ThePEG::SimpleFlavour::baryon10Sup
double baryon10Sup() const
Return the extra suppression for baryons of the spin 3/2 decuplet.
Definition:
SimpleFlavour.h:142
ThePEG::SimpleFlavour::theFlavourSelector
VSelector< long > theFlavourSelector
A selector used to weight the creation of (di)quark-anti(di)quark pairs.
Definition:
SimpleFlavour.h:390
ThePEG::SimpleFlavour::setProbabilities
virtual void setProbabilities(long iq) const
Calculate the probabilities for generateHadron for the given flavour.
ThePEG::SimpleFlavour::theDiSSup
double theDiSSup
Suppression of strange di-quarks w.r.t.
Definition:
SimpleFlavour.h:354
ThePEG::SimpleFlavour::theDi1Sup
double theDi1Sup
Suppression of spin-1 di-quarks w.r.t.
Definition:
SimpleFlavour.h:348
ThePEG::SimpleFlavour::clone
virtual IBPtr clone() const
Make a simple clone of this object.
ThePEG::SimpleFlavour::baryonDecupletProbability
virtual double baryonDecupletProbability(long iq1, long iq2) const
Return the probability that the given quark and diquark flavours end up in a spin 3/2 decuplet baryon...
ThePEG::SimpleFlavour::vectorId
virtual long vectorId(long iqh, long iql) const
Return the PDG code of a vector meson formed by the two quark flavours for iqh >= iql > 0.
ThePEG::SimpleFlavour::theEtaSup
double theEtaSup
Extra suppression of eta's.
Definition:
SimpleFlavour.h:359
ThePEG::SimpleFlavour::clear
void clear()
Clear all cashed weights.
ThePEG::SimpleFlavour::baryonDecuplet
virtual tcPDPtr baryonDecuplet(long iq, long idq) const
Return a spin 3/2 decuplet baryon formed by the given quark and diquark flavours.
ThePEG::SimpleFlavour::baryonOctetIds
virtual vector< pair< long, double > > baryonOctetIds(long iqa, long iqb, long iqc, long iq, bool dqs1) const
Return the PDG codes for spin 1/2 octet baryons formed by the given quark flavours (iqa >= iqb >= iqc...
ThePEG::SimpleFlavour::ProbabilityMap
map< long, VSelector< pair< long, long > > > ProbabilityMap
A map of Selectors.
Definition:
SimpleFlavour.h:33
ThePEG::SimpleFlavour::theProbabilities
ProbabilityMap theProbabilities
A map of selectors to cash probabilities for generateHadron.
Definition:
SimpleFlavour.h:395
ThePEG::SimpleFlavour::thePSpinS1
double thePSpinS1
Probability that strange mesons has spin 1.
Definition:
SimpleFlavour.h:379
ThePEG::SimpleFlavour::etaSup
double etaSup() const
Return the extra suppression of eta's.
Definition:
SimpleFlavour.h:131
ThePEG::SimpleFlavour::pSpinC1
double pSpinC1() const
Return the probability that charmed and heavier mesons has spin 1;.
Definition:
SimpleFlavour.h:158
ThePEG::SimpleFlavour::etaPSup
double etaPSup() const
Return the extra suppression of ets-prime's.
Definition:
SimpleFlavour.h:136
ThePEG::SimpleFlavour::baryonOctetId
virtual long baryonOctetId(long iqa, long iqb, long iqc, long iq, bool dqs1) const
Return the PDG code for a spin 1/2 octet baryon formed by the given quark flavours (iqa >= iqb >= iqc...
ThePEG::SimpleFlavour::vectorMesonProbability
virtual double vectorMesonProbability(long iq1, long iq2) const
Return the probability that the given quark flavours end up in a vector meson rather than in a pseudo...
ThePEG::SimpleFlavour::SimpleFlavour
SimpleFlavour()
Default constructor.
ThePEG::SimpleFlavour::pseudoScalarIds
virtual vector< pair< long, double > > pseudoScalarIds(long iqh, long iql) const
Return the PDG code of pseudo scalar mesons formed by the two quark flavours (for iqh >= iql > 0),...
ThePEG::SimpleFlavour::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ThePEG::SimpleFlavour::pseudoScalarMeson
virtual tcPDPtr pseudoScalarMeson(long iq, long iqbar) const
Return a pseudo scalar meson formed by the two quark flavours.
ThePEG::SimpleFlavour::generateHadron
virtual tcPDPair generateHadron(tcPDPtr quark) const
Generate a hadron from a quark.
ThePEG::SimpleFlavour::doinitrun
virtual void doinitrun()
Initialize this object.
ThePEG::SimpleFlavour::getBaryon
virtual tcPDPtr getBaryon(long q1, long q2, long q3) const
Return a baryon with the flavour content given by the (anti)quarks in the argument.
ThePEG::SimpleFlavour::di1Sup
double di1Sup() const
Return the suppression of spin-1 di-quarks w.r.t.
Definition:
SimpleFlavour.h:120
ThePEG::SimpleFlavour::diSSup
double diSSup() const
Return the suppression of strange di-quarks w.r.t.
Definition:
SimpleFlavour.h:126
ThePEG::VSelector
VSelector is a templated class for storing objects associated with probabilities in a way such that,...
Definition:
VSelector.h:46
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::tcPDPair
pair< tcPDPtr, tcPDPtr > tcPDPair
A pair of transient pointers to const ParticleData objects.
Definition:
Containers.h:124
ThePEG::BaseClassTrait::NthBase
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition:
ClassTraits.h:161
ThePEG::ClassTraitsBase::className
static string className()
Return the name of class T.
Definition:
ClassTraits.h:66
ThePEG::ClassTraitsBase::library
static string library()
The name of a file containing the dynamic library where the class T is implemented.
Definition:
ClassTraits.h:85
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6