ThePEG 2.3.0
|
SimpleFlavour is a simple class to generate hadrons given the quark flavours. More...
#include <SimpleFlavour.h>
Public Types | |
typedef map< long, VSelector< pair< long, long > > > | ProbabilityMap |
A map of Selector s. | |
Public Types inherited from ThePEG::InterfacedBase | |
enum | InitState { initializing = -1 , uninitialized = 0 , initialized = 1 , runready = 2 } |
Enumeration reflecting the state of an InterfacedBase object. More... | |
Public Types inherited from ThePEG::Pointer::ReferenceCounted | |
typedef unsigned int | CounterType |
The integer type used for counting. | |
Public Member Functions | |
Standard constructors and destructors. | |
SimpleFlavour () | |
Default constructor. | |
virtual | ~SimpleFlavour () |
Destructor. | |
Virtual functions mandated by the FlavourGenerator base class. | |
virtual tcPDPair | generateHadron (tcPDPtr quark) const |
Generate a hadron from a quark. | |
virtual tcPDPtr | getHadron (long iq1, long iq2) const |
Get hadron from flavours. | |
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. | |
virtual long | selectQuark () const |
Generate a random quark flavour. | |
virtual long | selectFlavour () const |
Generate a random (di)quark flavour. | |
virtual tcPDPtr | getHadron (tcPDPtr q1, tcPDPtr q2) const |
Get hadron from flavours. | |
virtual tcPDPtr | getHadron (long iq1, long iq2) const |
Get hadron from flavours. | |
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. | |
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. | |
Public Member Functions inherited from ThePEG::FlavourGenerator | |
tcPDPair | alwaysGenerateHadron (tcPDPtr quark) const |
Same as generateHadron(tcPDPtr), but throws an exception if no hadron could be produced. | |
tcPDPtr | alwaysGetHadron (tcPDPtr q1, tcPDPtr q2) const |
Same as getHadron(tcPDPtr, tcPDPtr) but thows an exception if no hadron could be produced. | |
tcPDPtr | alwaysGetHadron (long iq1, long iq2) const |
Same as getHadron(long, long) but thows an exception if no hadron could be produced. | |
tcPDPtr | alwaysGetBaryon (tcPDPtr q1, tcPDPtr q2, tcPDPtr q3) const |
Same as getBaryon(tcPDPtr, tcPDPtr, tcPDPtr), but throws an exception if no baryon could be produced. | |
tcPDPtr | alwaysGetBaryon (long q1, long q2, long q3) const |
Same as getBaryon(long, long, long), but throws an exception if no baryon could be produced. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
Public Member Functions inherited from ThePEG::HandlerBaseT< UseRandom > | |
virtual | ~HandlerBaseT () |
Destructor. | |
double | rnd () const |
Return a simple flat random number in the range ]0,1[. | |
double | rnd (double xu) const |
Return a simple flat random number in the range ]0,xu[. | |
double | rnd (double xl, double xu) const |
Return a simple flat random number in the range ]xl,xu[. | |
bool | rndbool () const |
Return true with 50% probability. | |
bool | rndbool (double p) const |
Return a true with probability p. | |
bool | rndbool (double p1, double p2) const |
Return a true with probability p1/(p1+p2). | |
int | rndsign (double p1, double p2, double p3) const |
Return -1, 0, or 1 with relative probabilities p1, p2, p3. | |
int | rnd2 (double p0, double p1) const |
Return an integer \(i\) with probability p \(i\)/(p0+p1). | |
int | rnd3 (double p0, double p1, double p2) const |
Return an integer \(i\) with probability p \(i\)/(p0+p1+p2). | |
int | rnd4 (double p0, double p1, double p2, double p3) const |
Return an integer/ \(i\) with probability p \(i\)(p0+p1+p2+p3). | |
long | irnd (long xu=2) const |
Return a simple flat random integrer number in the range [0,xu[. | |
long | irnd (long xl, long xu) const |
Return a simple flat random integrer number in the range [xl,xu[. | |
const StandardModelBase & | SM () const |
Return a reference to the object containing the standard model parameters for this run. | |
tSMPtr | standardModel () const |
Return a pointer to the object containing the standard model parameters for this run. | |
Public Member Functions inherited from ThePEG::Interfaced | |
virtual | ~Interfaced () |
Empty virtual destructor. | |
virtual bool | defaultInit () |
Functions which are to be used during the actual event generation, after the setup is complete. | |
PPtr | getParticle (PID) const |
Create a new Particle instance given a id number. | |
PDPtr | getParticleData (PID) const |
Return a pointer to the ParticleData object corresponding to the given id number. | |
bool | used () const |
Returns true if this object has actally been used. | |
void | useMe () const |
Should be called to indicate that this object has actually been used. | |
tEGPtr | generator () const |
Return a pointer to the EventGenerator controlling the run. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
Public Member Functions inherited from ThePEG::InterfacedBase | |
virtual | ~InterfacedBase () |
The virtual (empty) destructor;. | |
string | fullName () const |
Returns the full name of this object including its path, e.g. | |
string | name () const |
Returns the name of this object, without the path. | |
string | path () const |
Returns the path to this object including the trailing '/'. | |
string | comment () const |
Returns a comment assigned to this object. | |
void | setup (istream &is) |
Read setup info from a standard istream is. | |
void | update () |
Calls the doupdate() function with recursion prevention. | |
void | init () |
Calls the doinit() function with recursion prevention. | |
virtual bool | preInitialize () const |
Return true if this object needs to be initialized before all other objects (except those for which this function also returns true). | |
void | initrun () |
Calls the doinitrun() function with recursion prevention. | |
void | finish () |
Calls the dofinish() function with recursion prevention. | |
void | touch () |
This function should be called every time something in this object has changed in a way that a sanity check with update() is needed. | |
void | reset () |
Set the state of this object to uninitialized. | |
void | clear () |
Calls reset() and unTouch(). | |
InitState | state () const |
Return the state of initialization of this object. | |
bool | locked () const |
Return true if the BaseRepository is not allowed to change the state of this object. | |
bool | touched () const |
Return true if the state of this object has been changed since the last call to update(). | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
virtual void | debugme () const |
Print out debugging information for this object on std::cerr. | |
Public Member Functions inherited from ThePEG::Base | |
virtual | ~Base () |
The virtual destructor. | |
void | debug () const |
Print out debugging information for this object on std::cerr. | |
virtual void | debugme () const |
Print out debugging information for this object on std::cerr. | |
Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
CounterType | referenceCount () const |
Return the reference count. | |
Public Member Functions inherited from ThePEG::Named | |
Named (const string &newName=string()) | |
Constructor with name. | |
Named (const Named &)=default | |
Explicit default copy-constructor (too avoid compiler warnings) | |
const string & | name () const |
Return name. | |
bool | operator== (const Named &other) const |
Test for equality. | |
bool | operator< (const Named &other) const |
Lexicographical comparison. | |
Protected Member Functions | |
Clone Methods. | |
virtual IBPtr | clone () const |
Make a simple clone of this object. | |
virtual IBPtr | fullclone () const |
Make a clone of this object, possibly modifying the cloned object to make it sane. | |
Protected Member Functions inherited from ThePEG::Interfaced | |
void | reporeg (IBPtr object, string name) const |
Register the given object in the Repository with the given name in a subdirectory with the same name as this object. | |
template<typename PtrT > | |
bool | setDefaultReference (PtrT &ptr, string classname, string objectname) |
If the pointer, ptr, to an object is not set, create an object of class classname and register it with the Repository with the given objectname in a sib-directory with the same name as this object. | |
Interfaced () | |
Protected default constructor. | |
Interfaced (const string &newName) | |
Protected constructor taking a name as argument. | |
Interfaced (const Interfaced &i) | |
Protected copy-constructor. | |
void | setGenerator (tEGPtr generator) |
Protected function to reset the generator pointer, required for automatic decayer generation in Herwig++ BSM models. | |
Protected Member Functions inherited from ThePEG::InterfacedBase | |
virtual void | readSetup (istream &is) |
Read setup info from a standard istream is. | |
virtual void | doupdate () |
Check sanity of the object during the setup phase. | |
virtual void | dofinish () |
Finalize this object. | |
virtual IVector | getReferences () |
Return a vector of all pointers to Interfaced objects used in this object. | |
virtual void | rebind (const TranslationMap &) |
Rebind pointer to other Interfaced objects. | |
InterfacedBase () | |
Protected default constructor. | |
InterfacedBase (string newName) | |
Protected constructor with the name given as argument. | |
InterfacedBase (const InterfacedBase &i) | |
Protected copy-constructor. | |
Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
ReferenceCounted () | |
Default constructor. | |
ReferenceCounted (const ReferenceCounted &) | |
Copy-constructor. | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Assignment. | |
Protected Member Functions inherited from ThePEG::Named | |
const Named & | operator= (const Named &other) |
Assignment. | |
const string & | name (const string &newName) |
Set new name. | |
Standard Interfaced functions. | |
double | theSSup |
Suppression factor of strange quarks w.r.t. | |
double | theDiSup |
Suppression factor for di-quarks w.r.t. | |
double | theDi1Sup |
Suppression of spin-1 di-quarks w.r.t. | |
double | theDiSSup |
Suppression of strange di-quarks w.r.t. | |
double | theEtaSup |
Extra suppression of eta's. | |
double | theEtaPSup |
Extra suppression of ets-prime's. | |
double | theBaryon10Sup |
Extra suppression for baryons of the spin 3/2 decuplet. | |
double | thePSpin1 |
Probability that light (u/d) mesons has spin 1. | |
double | thePSpinS1 |
Probability that strange mesons has spin 1. | |
double | thePSpinC1 |
Probability that charmed and heavier mesons has spin 1. | |
VSelector< long > | theFlavourSelector |
A selector used to weight the creation of (di)quark-anti(di)quark pairs. | |
ProbabilityMap | theProbabilities |
A map of selectors to cash probabilities for generateHadron. | |
static ClassDescription< SimpleFlavour > | initSimpleFlavour |
Describe a concrete class with persistent data. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. | |
virtual void | doinitrun () |
Initialize this object. | |
SimpleFlavour & | operator= (const SimpleFlavour &)=delete |
Private and non-existent assignment operator. | |
Access the parameters controlling the generation. | |
double | sSup () const |
Return the suppression factor of strange quarks w.r.t. | |
double | diSup () const |
Return the suppression factor for di-quarks w.r.t. | |
double | di1Sup () const |
Return the suppression of spin-1 di-quarks w.r.t. | |
double | diSSup () const |
Return the suppression of strange di-quarks w.r.t. | |
double | etaSup () const |
Return the extra suppression of eta's. | |
double | etaPSup () const |
Return the extra suppression of ets-prime's. | |
double | baryon10Sup () const |
Return the extra suppression for baryons of the spin 3/2 decuplet. | |
double | pSpin1 () const |
Return the probability that light (u/d) mesons has spin 1;. | |
double | pSpinS1 () const |
Return the probability that strange mesons has spin 1;. | |
double | pSpinC1 () const |
Return the probability that charmed and heavier mesons has spin 1;. | |
virtual void | setProbabilities (long iq) const |
Calculate the probabilities for generateHadron for the given flavour. | |
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 scalar meson. | |
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 rather than in a spin 1/2 octet baryon. | |
virtual tcPDPtr | pseudoScalarMeson (long iq, long iqbar) const |
Return a pseudo scalar meson formed by the two quark flavours. | |
virtual tcPDPtr | vectorMeson (long iq, long iqbar) const |
Return a vector meson formed by the two quark flavours. | |
virtual tcPDPtr | baryonOctet (long iq, long idq) const |
Return a spin 1/2 octet baryon formed by the given quark and diquark flavours. | |
virtual tcPDPtr | baryonDecuplet (long iq, long idq) const |
Return a spin 3/2 decuplet baryon formed by the given quark and diquark flavours. | |
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. | |
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. | |
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 > 0). | |
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 >= iqc > 0). | |
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), together with suitable weights. | |
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), together with suitable weights. | |
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 > 0) together with suitable weights. | |
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 >= iqc > 0) together with suitable weights. | |
void | clear () |
Clear all cashed weights. | |
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 given spin (2S+1). | |
Functions used by the persistent I/O system. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. | |
static void | Init () |
Standard Init function used to initialize the interfaces. | |
Additional Inherited Members | |
Static Public Member Functions inherited from ThePEG::FlavourGenerator | |
static void | Init () |
Standard Init function used to initialize the interface. | |
Static Public Member Functions inherited from ThePEG::HandlerBase | |
static void | Init () |
Standard Init function used to initialize the interface. | |
Static Public Member Functions inherited from ThePEG::Interfaced | |
static void | Init () |
Standard Init function. | |
Static Public Member Functions inherited from ThePEG::InterfacedBase | |
static void | Init () |
Standard Init function. | |
Static Public Member Functions inherited from ThePEG::Base | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
Public Attributes inherited from ThePEG::Pointer::ReferenceCounted | |
const unsigned long | uniqueId |
The unique ID. | |
Static Protected Member Functions inherited from ThePEG::Interfaced | |
static void | registerRepository (IBPtr) |
Register an Interfaced object with the Repository. | |
static void | registerRepository (IBPtr, string newName) |
Register an Interfaced object with the Repository, giving it a name. | |
SimpleFlavour is a simple class to generate hadrons given the quark flavours.
It implements a simplified version of the model of the old fortran version of Pythia.
Definition at line 28 of file SimpleFlavour.h.
typedef map<long, VSelector< pair<long,long> > > ThePEG::SimpleFlavour::ProbabilityMap |
A map of Selector
s.
Definition at line 33 of file SimpleFlavour.h.
|
inline |
Return the extra suppression for baryons of the spin 3/2 decuplet.
Definition at line 142 of file SimpleFlavour.h.
References theBaryon10Sup.
|
protectedvirtual |
Return the PDG code for a spin 1/2 octet baryon formed by the given quark flavours (iqa >= iqb >= iqc > 0).
iq is one of the flavours and the other two are assumed to be in a diquark (in a spin-1 state if dqs1).
|
protectedvirtual |
Return the PDG codes for spin 1/2 octet baryons formed by the given quark flavours (iqa >= iqb >= iqc > 0) together with suitable weights.
iq is one of the flavours and the other two are assumed to be in a diquark (in a spin-1 state if dqs1).
|
protectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
|
inline |
Return the suppression of spin-1 di-quarks w.r.t.
spin-0 ones;
Definition at line 120 of file SimpleFlavour.h.
References theDi1Sup.
|
inline |
Return the suppression of strange di-quarks w.r.t.
u and d ones in addition to the standard strangness suppression of quarks.
Definition at line 126 of file SimpleFlavour.h.
References theDiSSup.
|
inline |
Return the suppression factor for di-quarks w.r.t.
quarks
Definition at line 115 of file SimpleFlavour.h.
References theDiSup.
|
protectedvirtual |
Initialize this object after the setup phase before saving an EventGenerator to disk.
InitException | if object could not be initialized properly. |
Reimplemented from ThePEG::InterfacedBase.
|
protectedvirtual |
Initialize this object.
Called in the run phase just before a run begins.
Reimplemented from ThePEG::InterfacedBase.
|
inline |
Return the extra suppression of ets-prime's.
Definition at line 136 of file SimpleFlavour.h.
References theEtaPSup.
|
inline |
Return the extra suppression of eta's.
Definition at line 131 of file SimpleFlavour.h.
References theEtaSup.
|
protectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
Generate a hadron from a quark.
Given a quark(antiquark, diquark or antidiquark), choose a quark-antiquark (or antidiquark-diquark) pair. Return (first) a hadron formed by the original quark and the antiquark together with (second) the generated quark. Returns null pointers if the generation failed.
quark | a quark, antiquark, diquark or antidiquark. |
Implements ThePEG::FlavourGenerator.
|
virtual |
Return a baryon with the flavour content given by the (anti)quarks in the argument.
The arguments are given as particle data pointers.
q1 | the PDG code of the first flavour. |
q2 | the PDG code of the second flavour. |
q3 | the PDG code of the third flavour. |
Reimplemented from ThePEG::FlavourGenerator.
|
virtual |
Return a baryon with the flavour content given by the (anti)quarks in the argument.
The arguments are given as particle data pointers. The default versions will call getBaryon(tcPDPtr, tcPDPtr, tcPDPtr). If no corresponding hadron was formed it should return the null pointer.
q1 | the PDG code of the first flavour. |
q2 | the PDG code of the second flavour. |
q3 | the PDG code of the third flavour. |
Reimplemented from ThePEG::FlavourGenerator.
|
virtual |
Return a baryon with the flavour content given by the (anti)quarks in the argument.
The arguments are given as particle data pointers. The default versions will call getBaryon(long, long, long). If no corresponding hadron was formed it should return the null pointer.
q1 | the first flavour. |
q2 | the second flavour. |
q3 | the third flavour. |
Reimplemented from ThePEG::FlavourGenerator.
|
virtual |
Get hadron from flavours.
Return a hadron with the flavour content given by the (anti-)(di-)quarks in the argument. The arguments are given as PDG codes.
iq1 | the PDG code of the first flavour. |
iq2 | the PDG code of the second flavour. |
Reimplemented from ThePEG::FlavourGenerator.
|
virtual |
Get hadron from flavours.
Return a hadron with the flavour content given by the (anti-)(di-)quarks in the argument. The arguments are given as PDG codes. The default versions will call the getHadron(tcPDPtr, tcPDPtr).
iq1 | the PDG code of the first flavour. |
iq2 | the PDG code of the second flavour. |
Reimplemented from ThePEG::FlavourGenerator.
Get hadron from flavours.
Return a hadron with the flavour content given by the (anti-)(di-)quarks in the argument. The arguments are given as ParticleData pointers. The default versions will call the getHadron(long, long).
q1 | the first flavour. |
q2 | the second flavour. |
Reimplemented from ThePEG::FlavourGenerator.
void ThePEG::SimpleFlavour::persistentInput | ( | PersistentIStream & | is, |
int | version | ||
) |
Function used to read in object persistently.
is | the persistent input stream read from. |
version | the version number of the object when written. |
void ThePEG::SimpleFlavour::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
inline |
Return the probability that light (u/d) mesons has spin 1;.
Definition at line 147 of file SimpleFlavour.h.
References thePSpin1.
|
inline |
Return the probability that charmed and heavier mesons has spin 1;.
Definition at line 158 of file SimpleFlavour.h.
References thePSpinC1.
|
inline |
Return the probability that strange mesons has spin 1;.
Definition at line 152 of file SimpleFlavour.h.
References thePSpinS1.
|
virtual |
Generate a random (di)quark flavour.
Implements ThePEG::FlavourGenerator.
|
virtual |
Generate a random quark flavour.
Implements ThePEG::FlavourGenerator.
|
inline |
Return the suppression factor of strange quarks w.r.t.
u and d.
Definition at line 110 of file SimpleFlavour.h.
References theSSup.
|
staticprivate |
Describe a concrete class with persistent data.
Definition at line 403 of file SimpleFlavour.h.
|
private |
Extra suppression for baryons of the spin 3/2 decuplet.
Definition at line 369 of file SimpleFlavour.h.
Referenced by baryon10Sup().
|
private |
Suppression of spin-1 di-quarks w.r.t.
spin-0 ones.
Definition at line 348 of file SimpleFlavour.h.
Referenced by di1Sup().
|
private |
Suppression of strange di-quarks w.r.t.
u and d ones in addition to the standard strangness suppression of quarks.
Definition at line 354 of file SimpleFlavour.h.
Referenced by diSSup().
|
private |
Suppression factor for di-quarks w.r.t.
quarks.
Definition at line 343 of file SimpleFlavour.h.
Referenced by diSup().
|
private |
Extra suppression of ets-prime's.
Definition at line 364 of file SimpleFlavour.h.
Referenced by etaPSup().
|
private |
|
mutableprivate |
A selector used to weight the creation of (di)quark-anti(di)quark pairs.
Definition at line 390 of file SimpleFlavour.h.
|
mutableprivate |
A map of selectors to cash probabilities for generateHadron.
Definition at line 395 of file SimpleFlavour.h.
|
private |
Probability that light (u/d) mesons has spin 1.
Definition at line 374 of file SimpleFlavour.h.
Referenced by pSpin1().
|
private |
Probability that charmed and heavier mesons has spin 1.
Definition at line 384 of file SimpleFlavour.h.
Referenced by pSpinC1().
|
private |
Probability that strange mesons has spin 1.
Definition at line 379 of file SimpleFlavour.h.
Referenced by pSpinS1().
|
private |
Suppression factor of strange quarks w.r.t.
u and d.
Definition at line 338 of file SimpleFlavour.h.
Referenced by sSup().