Herwig
7.2.1
|
This class selects the hadron flavours of a cluster decay. More...
#include <HadronSelector.h>
Classes | |
class | HadronInfo |
Class used to store all the hadron information for easy access. More... | |
class | Kupco |
Class designed to make STL routines easy to use. More... | |
Public Types | |
typedef map< pair< long, long >, KupcoData > | HadronTable |
The hadron table type. | |
typedef set< HadronInfo > | KupcoData |
The helper classes. More... | |
Public Types inherited from ThePEG::InterfacedBase | |
enum | InitState |
Public Types inherited from ThePEG::Pointer::ReferenceCounted | |
typedef unsigned int | CounterType |
Public Member Functions | |
HadronSelector (unsigned int) | |
The default constructor. | |
virtual pair< tcPDPtr, tcPDPtr > | chooseHadronPair (const Energy cluMass, tcPDPtr par1, tcPDPtr par2, tcPDPtr par3=PDPtr()) const =0 |
Method to return a pair of hadrons given the PDG codes of two or three constituents. More... | |
tcPDPtr | chooseSingleHadron (tcPDPtr par1, tcPDPtr par2, Energy mass) const |
Select the single hadron for a cluster decay return null pointer if not a single hadron decay. More... | |
pair< tcPDPtr, tcPDPtr > | lightestHadronPair (tcPDPtr ptr1, tcPDPtr ptr2, tcPDPtr ptr3=PDPtr()) const |
This returns the lightest pair of hadrons given by the flavours. More... | |
Energy | massLightestHadronPair (tcPDPtr ptr1, tcPDPtr ptr2, tcPDPtr ptr3=PDPtr()) const |
Returns the mass of the lightest pair of hadrons with the given particles. More... | |
tcPDPtr | lightestHadron (tcPDPtr ptr1, tcPDPtr ptr2, tcPDPtr ptr3=PDPtr()) const |
Returns the lightest hadron formed by the given particles. More... | |
vector< pair< tcPDPtr, double > > | hadronsBelowThreshold (Energy threshold, tcPDPtr ptr1, tcPDPtr ptr2, tcPDPtr ptr3=PDPtr()) const |
Returns the hadrons below the constituent mass threshold formed by the given particles, together with their total weight. More... | |
Energy | massLightestHadron (tcPDPtr ptr1, tcPDPtr ptr2, tcPDPtr ptr3=PDPtr()) const |
Return the nominal mass of the hadron returned by lightestHadron() More... | |
Energy | massLightestBaryonPair (tcPDPtr ptr1, tcPDPtr ptr2) const |
Returns the mass of the lightest pair of baryons. More... | |
double | pwtDquark () const |
Return the weights for the different quarks and diquarks. More... | |
double | pwtUquark () const |
The up quark weight. | |
double | pwtSquark () const |
The strange quark weight. | |
double | pwtCquark () const |
The charm quark weight. | |
double | pwtBquark () const |
The bottom quark weight. | |
double | pwtDIquark () const |
The diquark weight. | |
Functions used by the persistent I/O system. | |
void | persistentOutput (PersistentOStream &os) const |
Function used to write out object persistently. More... | |
void | persistentInput (PersistentIStream &is, int version) |
Function used to read in object persistently. More... | |
Public Member Functions inherited from ThePEG::Interfaced | |
virtual bool | defaultInit () |
PPtr | getParticle (PID) const |
PDPtr | getParticleData (PID) const |
bool | used () const |
void | useMe () const |
tEGPtr | generator () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
PPtr | getParticle (PID) const |
PDPtr | getParticleData (PID) const |
bool | used () const |
void | useMe () const |
tEGPtr | generator () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
Public Member Functions inherited from ThePEG::InterfacedBase | |
string | fullName () const |
string | name () const |
string | path () const |
string | comment () const |
void | setup (istream &is) |
virtual IBPtr | fullclone () const |
virtual void | debugme () const |
void | update () |
void | init () |
virtual bool | preInitialize () const |
void | initrun () |
void | finish () |
void | touch () |
void | reset () |
void | clear () |
InitState | state () const |
bool | locked () const |
bool | touched () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
void | update () |
void | init () |
virtual bool | preInitialize () const |
void | initrun () |
void | finish () |
void | touch () |
void | reset () |
void | clear () |
InitState | state () const |
bool | locked () const |
bool | touched () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
Public Member Functions inherited from ThePEG::Base | |
void | debug () const |
Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
CounterType | referenceCount () const |
Public Member Functions inherited from ThePEG::Named | |
Named (const string &newName=string()) | |
Named (const Named &)=default | |
const string & | name () const |
bool | operator== (const Named &other) const |
bool | operator< (const Named &other) const |
Static Public Member Functions | |
static void | Init () |
The standard Init function used to initialize the interfaces. More... | |
Static Public Member Functions inherited from ThePEG::Interfaced | |
static void | Init () |
Static Public Member Functions inherited from ThePEG::InterfacedBase | |
static void | Init () |
Static Public Member Functions inherited from ThePEG::Base | |
static void | Init () |
Protected Member Functions | |
virtual void | constructHadronTable () |
Construct the table of hadron data This is the main method to initialize the hadron data (mainly the weights associated to each hadron, taking into account its spin, eventual isoscalar-octect mixing, singlet-decuplet factor). More... | |
const HadronTable & | table () const |
Access to the table of hadrons. | |
const vector< PDPtr > & | partons () const |
Access to the list of partons. | |
double | pwt (long pid) const |
Access the parton weights. | |
double | specialWeight (long id) const |
Calculates a special weight specific to a given hadron. More... | |
int | signHadron (tcPDPtr ptr1, tcPDPtr ptr2, tcPDPtr hadron) const |
This method returns the proper sign ( > 0 hadron; < 0 anti-hadron ) for the input PDG id idHad > 0, suppose to be made by the two constituent particle pointers: par1 and par2 (both with proper sign). | |
Standard Interfaced functions. | |
virtual void | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. More... | |
double | probabilityMixing (const double angleMix, const int order) const |
Methods for the mixing of mesons. More... | |
virtual double | mixingStateWeight (long id) const |
Returns the weight of given mixing state. More... | |
Protected Member Functions inherited from ThePEG::Interfaced | |
void | reporeg (IBPtr object, string name) const |
bool | setDefaultReference (PtrT &ptr, string classname, string objectname) |
Interfaced (const string &newName) | |
Interfaced (const Interfaced &i) | |
void | setGenerator (tEGPtr generator) |
Protected Member Functions inherited from ThePEG::InterfacedBase | |
virtual IBPtr | clone () const=0 |
InterfacedBase (string newName) | |
InterfacedBase (const InterfacedBase &i) | |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual void | doinitrun () |
virtual void | dofinish () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual void | doinitrun () |
virtual void | dofinish () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Protected Member Functions inherited from ThePEG::Named | |
const Named & | operator= (const Named &other) |
const string & | name (const string &newName) |
Private Types | |
enum | MesonMultiplets { Lmax = 3, Jmax = 4, Nmax = 4 } |
Enums so arrays can be statically allocated. More... | |
Private Member Functions | |
HadronSelector & | operator= (const HadronSelector &)=delete |
The assignment operator is private and must never be called. More... | |
Private Attributes | |
vector< PDPtr > | _partons |
The PDG codes of the constituent particles allowed. | |
vector< PDPtr > | _forbidden |
The PDG codes of the hadrons which cannot be produced in the hadronization. | |
vector< vector< vector< double > > > | _repwt |
The weights for the excited meson multiplets. | |
HadronTable | _table |
The table of hadron data. | |
unsigned int | _topt |
Option for the construction of the tables. | |
unsigned int | _trial |
Which particles to produce for debugging purposes. | |
unsigned int | belowThreshold_ |
Option for the selection of hadrons below the pair threshold. | |
double | _pwtDquark |
The weights for the different quarks and diquarks. More... | |
double | _pwtUquark |
The probability of producting an up quark. | |
double | _pwtSquark |
The probability of producting a strange quark. | |
double | _pwtCquark |
The probability of producting a charm quark. | |
double | _pwtBquark |
The probability of producting a bottom quark. | |
double | _pwtDIquark |
The probability of producting a diquark. | |
map< long, double > | _pwt |
Weights for quarks and diquarks. | |
double | _etamix |
The mixing angles for the mesons containing light quarks. More... | |
double | _phimix |
The mixing angle. | |
double | _h1mix |
The mixing angle. | |
double | _f0mix |
The mixing angle. | |
double | _f1mix |
The mixing angle. | |
double | _f2mix |
The mixing angle. | |
double | _eta2mix |
The mixing angle. | |
double | _omhmix |
The mixing angle. | |
double | _ph3mix |
The mixing angle. | |
double | _eta2Smix |
The mixing angle. | |
double | _phi2Smix |
The mixing angle. | |
vector< double > | _weight1S0 |
The weights for the various meson multiplets to be used to supress the production of particular states. More... | |
vector< double > | _weight3S1 |
The weights for the multiplets. | |
vector< double > | _weight1P1 |
The weights for the multiplets. | |
vector< double > | _weight3P0 |
The weights for the multiplets. | |
vector< double > | _weight3P1 |
The weights for the multiplets. | |
vector< double > | _weight3P2 |
The weights for the multiplets. | |
vector< double > | _weight1D2 |
The weights for the multiplets. | |
vector< double > | _weight3D1 |
The weights for the multiplets. | |
vector< double > | _weight3D2 |
The weights for the multiplets. | |
vector< double > | _weight3D3 |
The weights for the multiplets. | |
double | _sngWt |
Singlet and Decuplet weights. More... | |
double | _decWt |
The decuplet weight. | |
A parameter used for determining when clusters are too light. | |
This parameter is used for setting the lower threshold, as
where is a random number [0,1]. | |
double | _limBottom |
double | _limCharm |
double | _limExotic |
Additional Inherited Members | |
Public Attributes inherited from ThePEG::InterfacedBase | |
initializing | |
uninitialized | |
initialized | |
runready | |
Public Attributes inherited from ThePEG::Pointer::ReferenceCounted | |
const unsigned long | uniqueId |
Static Protected Member Functions inherited from ThePEG::Interfaced | |
static void | registerRepository (IBPtr) |
static void | registerRepository (IBPtr, string newName) |
This class selects the hadron flavours of a cluster decay.
This is the base class for the selection of either a pair of hadrons, or in some cases a single hadron. The different approaches which were previously implemented in this class are now implemented in the HwppSelector and Hw64Selector which inherit from this class.
This class implements a number of methods which are needed by all models and in addition contains the weights for the different meson multiplets and mixing of the light mesons.
Definition at line 48 of file HadronSelector.h.
typedef set<HadronInfo> Herwig::HadronSelector::KupcoData |
The helper classes.
The type is used to contain all the hadrons info of a given flavour.
Definition at line 214 of file HadronSelector.h.
|
private |
Enums so arrays can be statically allocated.
Defines values for array sizes. L,J,N max values for excited mesons.
Definition at line 779 of file HadronSelector.h.
|
pure virtual |
Method to return a pair of hadrons given the PDG codes of two or three constituents.
cluMass | The mass of the cluster |
par1 | The first constituent |
par2 | The second constituent |
par3 | The third constituent |
Implemented in Herwig::HwppSelector, and Herwig::Hw64Selector.
tcPDPtr Herwig::HadronSelector::chooseSingleHadron | ( | tcPDPtr | par1, |
tcPDPtr | par2, | ||
Energy | mass | ||
) | const |
Select the single hadron for a cluster decay return null pointer if not a single hadron decay.
par1 | 1st constituent |
par2 | 2nd constituent |
mass | Mass of the cluster |
|
protectedvirtual |
Construct the table of hadron data This is the main method to initialize the hadron data (mainly the weights associated to each hadron, taking into account its spin, eventual isoscalar-octect mixing, singlet-decuplet factor).
This is the method that one should update when new or updated hadron data is available.
This class implements the construction of the basic table but can be overridden if needed in inheriting classes.
The rationale for factors used for diquarks involving different quarks can be can be explained by taking a prototype example that in the exact SU(2) limit, in which:
and we will have equal numbers of u and d quarks produced. Suppose that we weight 1 the diquarks made of the same quark and 1/2 those made of different quarks, the fractions of u and d baryons (p, n, Delta) we get are the following:
which is correct, and therefore the weight 1/2 for the diquarks of different types of quarks is justified (at least in this limit of exact SU(2) ).
|
protectedvirtual |
Initialize this object after the setup phase before saving an EventGenerator to disk.
The array _repwt is initialized using the interfaces to set different weights for different meson multiplets and the constructHadronTable() method called to complete the construction of the hadron tables.
InitException | if object could not be initialized properly. |
Reimplemented from ThePEG::InterfacedBase.
Reimplemented in Herwig::HwppSelector.
vector<pair<tcPDPtr,double> > Herwig::HadronSelector::hadronsBelowThreshold | ( | Energy | threshold, |
tcPDPtr | ptr1, | ||
tcPDPtr | ptr2, | ||
tcPDPtr | ptr3 = PDPtr() |
||
) | const |
Returns the hadrons below the constituent mass threshold formed by the given particles, together with their total weight.
Given the id of two (or three) constituents of a cluster, it returns the lightest hadron with proper flavour numbers. At the moment it does nothing in the case that also 'ptr3' present.
threshold | The theshold |
ptr1 | is the first constituent |
ptr2 | is the second constituent |
ptr3 | is the third constituent |
|
static |
The standard Init function used to initialize the interfaces.
Called exactly once for each class by the class description system before the main function starts or when this class is dynamically loaded.
tcPDPtr Herwig::HadronSelector::lightestHadron | ( | tcPDPtr | ptr1, |
tcPDPtr | ptr2, | ||
tcPDPtr | ptr3 = PDPtr() |
||
) | const |
Returns the lightest hadron formed by the given particles.
Given the id of two (or three) constituents of a cluster, it returns the lightest hadron with proper flavour numbers. At the moment it does nothing in the case that also 'ptr3' present.
ptr1 | is the first constituent |
ptr2 | is the second constituent |
ptr3 | is the third constituent |
pair<tcPDPtr,tcPDPtr> Herwig::HadronSelector::lightestHadronPair | ( | tcPDPtr | ptr1, |
tcPDPtr | ptr2, | ||
tcPDPtr | ptr3 = PDPtr() |
||
) | const |
This returns the lightest pair of hadrons given by the flavours.
Given the two (or three) constituents of a cluster, it returns the two lightest hadrons with proper flavour numbers. Furthermore, the first of the two hadrons must have the constituent with par1, and the second must have the constituent with par2.
The method is implemented by calling twice lightestHadron, once with (par1,quarktopick->CC()) ,and once with (par2,quarktopick) where quarktopick is either the pointer to d or u quarks . In fact, the idea is that whatever the flavour of par1 and par2, no matter if (anti-)quark or (anti-)diquark, the lightest pair of hadrons containing flavour par1 and par2 will have either flavour d or u, being the lightest quarks. The method returns the pair (PDPtr(),PDPtr()) if anything goes wrong.
Returns the mass of the lightest pair of baryons.
ptr1 | is the first constituent |
ptr2 | is the second constituent |
|
inline |
Return the nominal mass of the hadron returned by lightestHadron()
ptr1 | is the first constituent |
ptr2 | is the second constituent |
ptr3 | is the third constituent |
Definition at line 331 of file HadronSelector.h.
References ThePEG::Exception::eventerror.
|
inline |
Returns the mass of the lightest pair of hadrons with the given particles.
ptr1 | is the first constituent |
ptr2 | is the second constituent |
ptr3 | is the third constituent |
Definition at line 288 of file HadronSelector.h.
References ZERO.
|
protectedvirtual |
Returns the weight of given mixing state.
id | The PDG code of the meson |
|
privatedelete |
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
void Herwig::HadronSelector::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 Herwig::HadronSelector::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
inlineprotected |
Methods for the mixing of mesons.
Return the probability of mixing for Octet-Singlet isoscalar mixing, the probability of the component is returned.
angleMix | The mixing angle in degrees (not radians) |
order | is 0 for no mixing, 1 for the first resonance of a pair, 2 for the second one. The mixing is defined so that for example with mixing where the mixing angle is as the first particle and the second one. The convention used is
with
|
Definition at line 540 of file HadronSelector.h.
|
inline |
Return the weights for the different quarks and diquarks.
The down quark weight.
Definition at line 366 of file HadronSelector.h.
|
protected |
Calculates a special weight specific to a given hadron.
id | The PDG code of the hadron |
|
private |
The mixing angles for the mesons containing light quarks.
The mixing angle
Definition at line 638 of file HadronSelector.h.
|
private |
The weights for the different quarks and diquarks.
The probability of producting a down quark.
Definition at line 598 of file HadronSelector.h.
|
private |
|
private |
The weights for the various meson multiplets to be used to supress the production of particular states.
The weights for the multiplets
Definition at line 699 of file HadronSelector.h.