The DecayMode class describes a decay channel of a particle. More...
#include <DecayMode.h>
Public Types | |
typedef vector< tcDMPtr > | ModeVector |
A vector of DecayMode pointers. | |
typedef vector< tPDPair > | LinkVector |
A vector of pairs of ParticleData pointers. | |
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. | |
DecayMode () | |
Default constructor. | |
DecayMode (const DecayMode &) | |
Copy-constructor. | |
virtual DMPtr | clone (tPDPtr pd) const |
Return a clone of this decay mode with pd as the decaying particle. | |
const string & | tag () const |
Return the tag for this decay mode. | |
tcPDPtr | parent () const |
Get a pointer to the particle data object corresponding to the decaying particle. | |
const ParticleMSet & | products () const |
The set of identified decay products. | |
const tPDVector & | orderedProducts () const |
The set of identified decay products in the order they were specified. | |
PVector | produceProducts () const |
Produce particles corresponding to the identified decay products. | |
const ModeMSet & | cascadeProducts () const |
The set of identified resonance products with specified decay modes. | |
const MatcherMSet & | productMatchers () const |
The set of matchers each corresponding to one decay product. | |
tPMPtr | wildProductMatcher () const |
The pointer to a matcher corresponding to any number of decay products. | |
const ParticleMSet & | excluded () const |
The set particles corresponding to excluded intermediate resonances. | |
double | brat () const |
Return the branching ratio to be used. | |
double | brat (const Particle &) const |
Calculate the branching ratio for a particular particle instance. | |
tDecayerPtr | decayer () const |
Get the decayer assigned to this mode. | |
bool | includes (const DecayMode &) const |
Check if another decay mode is included in this one. | |
tDMPtr | CC () const |
Return a pointer to the corresponding decaymode for the antiparticle decay. | |
bool | operator== (const DecayMode &d) const |
Check if another decay mode has the same final state as this one. | |
const LinkVector & | links () const |
Return a vector of pairs of decay products which are linked together (e.g. | |
const ModeVector & | overlap () const |
Return the list of overlapping decay modes. | |
void | synchronize () |
Modify this mode to have properties corresponding to its anti-partner. | |
bool | on () const |
Check whether this decay mode is switched on. | |
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. | |
Static Public Member Functions | |
static DMPtr | constructDecayMode (string &tag, vector< DMPtr > *save=0) |
Create a decay mode from a given tag. | |
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. | |
Friends | |
class | ParticleData |
ParticleData is a friend. | |
class | RemnantData |
RemnantData is a friend. | |
class | EventGenerator |
The EventGenerator is a friend. | |
Clone Methods. | |
string | theTag |
The tag. | |
double | theBrat |
The branching ratio. | |
bool | isOn |
True if this mode is switched on. | |
tPDPtr | theParent |
Pointer to a particle data object corresponding to the decaying particle. | |
ParticleMSet | theProducts |
The set of specified decay particles. | |
tPDVector | theOrderedProducts |
The set of specified decay particles in the order they was specified. | |
ModeMSet | theCascadeProducts |
The set of matching decay channels corresponding to a specified with a specified subsequent decay mode. | |
MatcherMSet | theMatchers |
The set of matching decay products. | |
tPMPtr | theWildMatcher |
A particle matcher which corresponds to zero or more particles. | |
ParticleMSet | theExcluded |
A set of particles which are not allowed as intermediate resonances. | |
ModeVector | theOverlap |
A list of decay modes which are included in this one. | |
DecayerPtr | theDecayer |
The decayer object responsible for performing the decay. | |
tDMPtr | theAntiPartner |
The corresponding decay mode of the anti particle. | |
LinkVector | theLinks |
The vector of pairs of decay products which are linked together (e.g. | |
static ClassDescription< DecayMode > | initDecayMode |
Describe a concrete class with persistent data. | |
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. | |
DMPtr | dmclone () const |
Protected special clone function. | |
virtual void | readSetup (istream &is) |
Read setup info from a standard stream used by the Repository. | |
ParticleMSet & | products () |
The set of identified decay products. | |
ModeMSet & | cascadeProducts () |
The set of identified resonant products with specified decay modes. | |
MatcherMSet & | productMatchers () |
The set of matchers each corresponding to one decay product. | |
tPMPtr & | wildProductMatcher () |
The pointer to a matcher corresponding to any number of decay products. | |
ParticleMSet & | excluded () |
The set particles corresponding to excluded intermediate resonances. | |
void | CC (tDMPtr cc) |
Set the pointer to the corresponding decaymode for the antiparticle decay. | |
bool | addOverlap (tcDMPtr) |
Add a decay mode to the list of overlapping modes if included. | |
void | resetOverlap () |
Remove all decay modes from the list of overlapping modes. | |
bool | compareId (const ParticleMSet &, const ParticleMSet &) const |
Check if two sets of particles have equivalent types. | |
ParticleMSet::const_iterator | findId (const ParticleMSet &, const ParticleData &) const |
Check if a particle set contains a given particle ID. | |
string | makeTag () const |
Use the members in this decay channel and generate the corresponding tag. | |
void | resetTag () |
Delete the tag (it will be regenerated later if asked for). | |
void | setOn (long) |
Utility function for the interface. | |
long | getOn () const |
Utility function for the interface. | |
void | setDecayer (DecayerPtr) |
Utility function for the interface. | |
DecayMode & | operator= (const DecayMode &)=delete |
Private and non-existent assignment operator. | |
Functions used by the persistent I/O system. | |
static void | Init () |
Standard Init function used to initialize the interface. | |
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. | |
Standard Interfaced functions. | |
virtual void | doupdate () |
Check sanity of the object during the setup phase. | |
virtual void | rebind (const TranslationMap &trans) |
Rebind pointer to other Interfaced objects. | |
virtual IVector | getReferences () |
Return a vector of all pointers to Interfaced objects used in this object. | |
void | parent (tPDPtr pd) |
Set a pointer to the particle data object corresponding to the decaying particle. | |
void | brat (double) |
Set the branching ratio to be used. | |
void | switchOn () |
Switch on this decay mode. | |
void | switchOff () |
Switch off this decay mode. | |
void | decayer (tDecayerPtr) |
Set the decayer. | |
void | addProduct (tPDPtr) |
Add identified decay products. | |
void | addLink (tPDPtr a, tPDPtr b) |
Add a pair of decay products which are linked together (e.g. | |
void | addCascadeProduct (tDMPtr) |
Add identified resonant product with specified decay mode. | |
void | addProductMatcher (tPMPtr) |
Add a mathcer corresponding to one decay product. | |
void | setWildMatcher (tPMPtr) |
Add a matcher corresponding to any number of decay products. | |
void | addExcluded (tPDPtr) |
Add a particle corresponding to an excluded intermediate resonance. | |
DecayMode (tPDPtr newParticle, double newBrat, bool newOn) | |
Protected constructor. | |
static DMPtr | Create (tPDPtr newParent, double newBrat=0.0, bool newOn=false) |
Protected creation and clone methods. | |
Additional Inherited Members | |
Public Attributes inherited from ThePEG::Pointer::ReferenceCounted | |
const unsigned long | uniqueId |
The unique ID. | |
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 | doinit () |
Initialize this object after the setup phase before saving an EventGenerator to disk. | |
virtual void | doinitrun () |
Initialize this object. | |
virtual void | dofinish () |
Finalize this object. | |
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. | |
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. | |
The DecayMode class describes a decay channel of a particle.
In its simplest form it contains simply a parent ParticleData object and a list of decay products, but it can also specify a set of MatcherBase objects each representing one of a set of possible decay products. A matcher can also be specified to represents an unlimited set of decay products. Decay chains can be represented by specifying other decay channels where the parents are taken to be intermediate resonances. It is also possible to specify the absence of intermediate resonances.
Each decay mode can be uniquely described by a character string on the form {decaying-particle-name}->{decay-product-specifier}[,{decay-product-specifier},...];
where no spaces are allowed anywhere. The decaying-particle-name should be a path to a particle in the Repository or a PDG-standardized particle name (see ParticleData::PDGName()) and the decay-product-specifier can be one of the following:
a path to a particle in the Repository or a PDG-standardized particle name if it is a specific decay product,
a question mark followed by the name of a particle matcher object in the Repository if representing one of several different alternative decay products,
a star followed by the name of a particle matcher object in the Repository if representing any number of several different alternative decay products (note that only one of these wild-card matchers may be specified, if several are given only the last one will be taken into account),
a whole decay mode string enclosed in square brackets if representing a resonance decay product with a specified decay mode,
an exclamation mark followed by a path to a particle in the Repository or a PDG-standardized particle name representing the exclusion of an intermediate resonance decaying into the other specified decay products.
two paths to particles in the Repository or PDG-standardized particle names with an equal sign between, indicating two coloured particles which are in a colour-singlet state.
Note that the order of the specified decay products will be preserved when the corresponding particles are produced in a decay.
The possibility of specifying matchers as decay products means that one decay mode may overlap with another one. When an EventGenerator is initialized all decay modes are checked so that a given decay mode afterwards will report if there are other modes which are matched by its matchers through the overlap() function.
Definition at line 87 of file DecayMode.h.
typedef vector<tPDPair> ThePEG::DecayMode::LinkVector |
A vector of pairs of ParticleData pointers.
Definition at line 105 of file DecayMode.h.
typedef vector<tcDMPtr> ThePEG::DecayMode::ModeVector |
A vector of DecayMode pointers.
Definition at line 103 of file DecayMode.h.
Add a pair of decay products which are linked together (e.g.
colourless q-qbar pairs).
|
inlineprotected |
The set of identified resonant products with specified decay modes.
Definition at line 408 of file DecayMode.h.
References theCascadeProducts.
|
inline |
The set of identified resonance products with specified decay modes.
Definition at line 174 of file DecayMode.h.
References theCascadeProducts.
|
inline |
Return a pointer to the corresponding decaymode for the antiparticle decay.
Definition at line 217 of file DecayMode.h.
References theAntiPartner.
Referenced by resetTag().
|
inlineprotected |
Set the pointer to the corresponding decaymode for the antiparticle decay.
Definition at line 431 of file DecayMode.h.
References theAntiPartner.
|
protectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
|
static |
Create a decay mode from a given tag.
This function is used directly by the Repository. If name of the decaying particle is a valid path to a particle object, the decaymode will be added to that particle, otherwise it will be added to the default particle of that name.
|
inline |
Get the decayer assigned to this mode.
Definition at line 206 of file DecayMode.h.
References theDecayer.
|
protected |
Set the decayer.
The set method returns false if the decayer does not claim to be able to handle the decay.
|
protectedvirtual |
Check sanity of the object during the setup phase.
Reimplemented from ThePEG::InterfacedBase.
|
inlineprotected |
The set particles corresponding to excluded intermediate resonances.
Definition at line 425 of file DecayMode.h.
References theExcluded.
|
inline |
The set particles corresponding to excluded intermediate resonances.
Definition at line 191 of file DecayMode.h.
References theExcluded.
|
protectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
|
protectedvirtual |
Return a vector of all pointers to Interfaced objects used in this object.
Reimplemented from ThePEG::InterfacedBase.
|
inline |
Return a vector of pairs of decay products which are linked together (e.g.
colourless q-qbar pairs).
Definition at line 231 of file DecayMode.h.
References theLinks.
|
inline |
Check whether this decay mode is switched on.
Definition at line 246 of file DecayMode.h.
References isOn.
|
inline |
Check if another decay mode has the same final state as this one.
Definition at line 223 of file DecayMode.h.
References tag().
|
inline |
The set of identified decay products in the order they were specified.
Definition at line 161 of file DecayMode.h.
References theOrderedProducts.
|
inline |
Return the list of overlapping decay modes.
Definition at line 236 of file DecayMode.h.
References theOverlap.
|
inline |
Get a pointer to the particle data object corresponding to the decaying particle.
Definition at line 151 of file DecayMode.h.
References theParent.
|
inlineprotected |
Set a pointer to the particle data object corresponding to the decaying particle.
Definition at line 306 of file DecayMode.h.
References theParent.
void ThePEG::DecayMode::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::DecayMode::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
PVector ThePEG::DecayMode::produceProducts | ( | ) | const |
Produce particles corresponding to the identified decay products.
They will be orderd in the same order they were sspecified.
|
inlineprotected |
The set of matchers each corresponding to one decay product.
Definition at line 413 of file DecayMode.h.
References theMatchers.
|
inline |
The set of matchers each corresponding to one decay product.
Definition at line 179 of file DecayMode.h.
References theMatchers.
|
inlineprotected |
The set of identified decay products.
Definition at line 402 of file DecayMode.h.
References theProducts.
|
inline |
The set of identified decay products.
Definition at line 156 of file DecayMode.h.
References theProducts.
|
protectedvirtual |
Read setup info from a standard stream used by the Repository.
The following information must be supplied in a white-space separated list: the branching ratio, on or off (true or false), and the name of a Decayer.
Reimplemented from ThePEG::InterfacedBase.
|
protectedvirtual |
Rebind pointer to other Interfaced objects.
Called in the setup phase after all objects used in an EventGenerator has been cloned so that the pointers will refer to the cloned objects afterwards.
trans | a TranslationMap relating the original objects to their respective clones. |
RebindException | if no cloned object was found for a given pointer. |
Reimplemented from ThePEG::InterfacedBase.
|
inlineprivate |
Delete the tag (it will be regenerated later if asked for).
Definition at line 465 of file DecayMode.h.
|
inline |
Return the tag for this decay mode.
This string is a unique identifier for this decay mode.
Definition at line 143 of file DecayMode.h.
References makeTag(), and theTag.
Referenced by operator==().
|
inlineprotected |
The pointer to a matcher corresponding to any number of decay products.
Definition at line 419 of file DecayMode.h.
References theWildMatcher.
|
inline |
The pointer to a matcher corresponding to any number of decay products.
Definition at line 185 of file DecayMode.h.
References theWildMatcher.
|
friend |
The EventGenerator is a friend.
Definition at line 98 of file DecayMode.h.
|
friend |
ParticleData is a friend.
Definition at line 92 of file DecayMode.h.
|
friend |
RemnantData is a friend.
Definition at line 95 of file DecayMode.h.
|
staticprivate |
Describe a concrete class with persistent data.
Definition at line 570 of file DecayMode.h.
|
private |
|
private |
The corresponding decay mode of the anti particle.
Definition at line 557 of file DecayMode.h.
Referenced by CC().
|
private |
The branching ratio.
Definition at line 498 of file DecayMode.h.
|
private |
The set of matching decay channels corresponding to a specified with a specified subsequent decay mode.
Definition at line 525 of file DecayMode.h.
Referenced by cascadeProducts().
|
private |
The decayer object responsible for performing the decay.
Definition at line 552 of file DecayMode.h.
Referenced by decayer().
|
private |
A set of particles which are not allowed as intermediate resonances.
Definition at line 542 of file DecayMode.h.
Referenced by excluded().
|
private |
The vector of pairs of decay products which are linked together (e.g.
colourless q-qbar pairs).
Definition at line 563 of file DecayMode.h.
Referenced by links().
|
private |
The set of matching decay products.
Each of the matchers correspond to one particle.
Definition at line 531 of file DecayMode.h.
Referenced by productMatchers().
|
private |
The set of specified decay particles in the order they was specified.
Definition at line 519 of file DecayMode.h.
Referenced by orderedProducts().
|
private |
A list of decay modes which are included in this one.
Definition at line 547 of file DecayMode.h.
Referenced by overlap().
|
private |
Pointer to a particle data object corresponding to the decaying particle.
Definition at line 509 of file DecayMode.h.
Referenced by parent().
|
private |
The set of specified decay particles.
Definition at line 514 of file DecayMode.h.
Referenced by products().
|
mutableprivate |
|
private |
A particle matcher which corresponds to zero or more particles.
Definition at line 536 of file DecayMode.h.
Referenced by wildProductMatcher().