thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.1.4

The DecayMode class describes a decay channel of a particle. More...

#include <DecayMode.h>

Inheritance diagram for ThePEG::DecayMode:

Public Types

typedef vector< tcDMPtrModeVector
 A vector of DecayMode pointers. More...
 
typedef vector< tPDPairLinkVector
 A vector of pairs of ParticleData pointers. More...
 
- 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

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. More...
 
tcPDPtr parent () const
 Get a pointer to the particle data object corresponding to the decaying particle.
 
const ParticleMSetproducts () const
 The set of identified decay products.
 
const tPDVectororderedProducts () const
 The set of identified decay products in the order they were specified.
 
PVector produceProducts () const
 Produce particles corresponding to the identified decay products. More...
 
const ModeMSetcascadeProducts () const
 The set of identified resonance products with specified decay modes.
 
const MatcherMSetproductMatchers () 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 ParticleMSetexcluded () 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 LinkVectorlinks () const
 Return a vector of pairs of decay products which are linked together (e.g. More...
 
const ModeVectoroverlap () 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.
 
Standard constructors and destructors.
 DecayMode ()
 Default constructor.
 
 DecayMode (const DecayMode &)
 Copy-constructor.
 
 ~DecayMode ()
 Destructor.
 
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 ~Interfaced ()
 Empty virtual destructor.
 
virtual bool defaultInit ()
 Functions which are to be used during the actual event generation, after the setup is complete. More...
 
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. More...
 
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::InterfacedBase
virtual ~InterfacedBase ()
 The virtual (empty) destructor;.
 
string fullName () const
 Returns the full name of this object including its path, e.g. More...
 
string name () const
 Returns the name of this object, without the path.
 
string path () const
 Returns the path to this object including the trailing '/'. More...
 
string comment () const
 Returns a comment assigned to this object.
 
void setup (istream &is)
 Read setup info from a standard istream is. More...
 
virtual void debugme () const
 Print out debugging information for this object on std::cerr. More...
 
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). More...
 
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. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- 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. More...
 
- 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.
 
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. More...
 
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. More...
 

Protected Member Functions

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. More...
 
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. More...
 
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.
 
DMPtr dmclone () const
 Protected special clone function.
 
virtual void readSetup (istream &is)
 Read setup info from a standard stream used by the Repository. More...
 
ParticleMSetproducts ()
 The set of identified decay products.
 
ModeMSetcascadeProducts ()
 The set of identified resonant products with specified decay modes.
 
MatcherMSetproductMatchers ()
 The set of matchers each corresponding to one decay product.
 
tPMPtrwildProductMatcher ()
 The pointer to a matcher corresponding to any number of decay products.
 
ParticleMSetexcluded ()
 The set particles corresponding to excluded intermediate resonances.
 
void CC (tDMPtr cc)
 Set the pointer to the corresponding decaymode for the antiparticle decay.
 
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. More...
 
virtual IVector getReferences ()
 Return a vector of all pointers to Interfaced objects used in this object. More...
 
Clone Methods.
virtual IBPtr clone () const
 Make a simple clone of this object. More...
 
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane. More...
 
- 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. More...
 
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
 InterfacedBase ()
 Protected default constructor.
 
 InterfacedBase (string newName)
 Protected constructor with the name given as argument.
 
 InterfacedBase (const InterfacedBase &i)
 Protected copy-constructor.
 
virtual void doinit ()
 Initialize this object after the setup phase before saving an EventGenerator to disk. More...
 
virtual void doinitrun ()
 Initialize this object. More...
 
virtual void dofinish ()
 Finalize this object. More...
 
- Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted
 ReferenceCounted ()
 Default constructor.
 
 ReferenceCounted (const ReferenceCounted &)
 Copy-constructor.
 
ReferenceCountedoperator= (const ReferenceCounted &)
 Assignment.
 
- Protected Member Functions inherited from ThePEG::Named
const Namedoperator= (const Named &other)
 Assignment.
 
const string & name (const string &newName)
 Set new name.
 

Static Protected Member Functions

static DMPtr Create (tPDPtr newParent, double newBrat=0.0, bool newOn=false)
 Protected creation and clone methods.
 
- 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.
 

Private Member Functions

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.
 
DecayModeoperator= (const DecayMode &)
 Private and non-existent assignment operator.
 

Private Attributes

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. More...
 
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. More...
 

Static Private Attributes

static ClassDescription< DecayModeinitDecayMode
 Describe a concrete class with persistent data.
 

Friends

class ParticleData
 ParticleData is a friend. More...
 
class RemnantData
 RemnantData is a friend. More...
 
class EventGenerator
 The EventGenerator is a friend. More...
 

Additional Inherited Members

- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 The unique ID. More...
 

Detailed Description

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.

See also
The interfaces defined for DecayMode.
ParticleData
MatcherBase

Definition at line 87 of file DecayMode.h.

Member Typedef Documentation

◆ LinkVector

A vector of pairs of ParticleData pointers.

Definition at line 105 of file DecayMode.h.

◆ ModeVector

A vector of DecayMode pointers.

Definition at line 103 of file DecayMode.h.

Member Function Documentation

◆ addLink()

void ThePEG::DecayMode::addLink ( tPDPtr  a,
tPDPtr  b 
)
protected

Add a pair of decay products which are linked together (e.g.

colourless q-qbar pairs).

Referenced by parent().

◆ clone()

virtual IBPtr ThePEG::DecayMode::clone ( ) const
protectedvirtual

Make a simple clone of this object.

Returns
a pointer to the new object.

Implements ThePEG::InterfacedBase.

Referenced by parent().

◆ constructDecayMode()

static DMPtr ThePEG::DecayMode::constructDecayMode ( string &  tag,
vector< DMPtr > *  save = 0 
)
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.

◆ decayer()

void ThePEG::DecayMode::decayer ( tDecayerPtr  )
protected

Set the decayer.

The set method returns false if the decayer does not claim to be able to handle the decay.

◆ fullclone()

virtual IBPtr ThePEG::DecayMode::fullclone ( ) const
protectedvirtual

Make a clone of this object, possibly modifying the cloned object to make it sane.

Returns
a pointer to the new object.

Reimplemented from ThePEG::InterfacedBase.

Referenced by parent().

◆ getReferences()

virtual IVector ThePEG::DecayMode::getReferences ( )
protectedvirtual

Return a vector of all pointers to Interfaced objects used in this object.

Returns
a vector of pointers.

Reimplemented from ThePEG::InterfacedBase.

Referenced by on().

◆ links()

const LinkVector& ThePEG::DecayMode::links ( ) const
inline

Return a vector of pairs of decay products which are linked together (e.g.

colourless q-qbar pairs).

Definition at line 236 of file DecayMode.h.

References theLinks.

◆ persistentInput()

void ThePEG::DecayMode::persistentInput ( PersistentIStream is,
int  version 
)

Function used to read in object persistently.

Parameters
isthe persistent input stream read from.
versionthe version number of the object when written.

Referenced by on().

◆ persistentOutput()

void ThePEG::DecayMode::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

Referenced by on().

◆ produceProducts()

PVector ThePEG::DecayMode::produceProducts ( ) const

Produce particles corresponding to the identified decay products.

They will be orderd in the same order they were sspecified.

Referenced by orderedProducts().

◆ readSetup()

virtual void ThePEG::DecayMode::readSetup ( istream &  is)
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.

Referenced by parent().

◆ rebind()

virtual void ThePEG::DecayMode::rebind ( const TranslationMap trans)
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.

Parameters
transa TranslationMap relating the original objects to their respective clones.
Exceptions
RebindExceptionif no cloned object was found for a given pointer.

Reimplemented from ThePEG::InterfacedBase.

Referenced by on().

◆ tag()

const string& ThePEG::DecayMode::tag ( ) const
inline

Return the tag for this decay mode.

This string is a unique identifier for this decay mode.

Definition at line 148 of file DecayMode.h.

References makeTag(), and theTag.

Referenced by operator==().

Friends And Related Function Documentation

◆ EventGenerator

friend class EventGenerator
friend

The EventGenerator is a friend.

Definition at line 98 of file DecayMode.h.

◆ ParticleData

friend class ParticleData
friend

ParticleData is a friend.

Definition at line 92 of file DecayMode.h.

◆ RemnantData

friend class RemnantData
friend

RemnantData is a friend.

Definition at line 95 of file DecayMode.h.

Member Data Documentation

◆ theLinks

LinkVector ThePEG::DecayMode::theLinks
private

The vector of pairs of decay products which are linked together (e.g.

colourless q-qbar pairs).

Definition at line 568 of file DecayMode.h.

Referenced by links().

◆ theMatchers

MatcherMSet ThePEG::DecayMode::theMatchers
private

The set of matching decay products.

Each of the matchers correspond to one particle.

Definition at line 536 of file DecayMode.h.

Referenced by productMatchers().


The documentation for this class was generated from the following file: