ThePEG::DecayMode Class Reference

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

#include <DecayMode.h>

Inheritance diagram for ThePEG::DecayMode:

ThePEG::Interfaced ThePEG::InterfacedBase ThePEG::Base ThePEG::Named ThePEG::Pointer::ReferenceCounted

List of all members.

Public Types

typedef vector< tcDMPtrModeVector
 A vector of DecayMode pointers.
typedef vector< tPDPairLinkVector
 A vector of pairs of ParticleData pointers.

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.
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.
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.
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.
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently.

Static Public Member Functions

static DMPtr constructDecayMode (string &tag, vector< DMPtr > *save=0)
 Create a decay mode from a given tag.
static void Init ()
 Standard Init function used to initialize the interface.

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.
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.
DMPtr dmclone () const
 Protected special clone function.
virtual void readSetup (istream &is)
 Read setup info from a standard stream used by the Repository.
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.
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.
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.

Static Protected Member Functions

static DMPtr Create (tPDPtr newParent, double newBrat=0.0, bool newOn=false)
 Protected creation and clone methods.

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.
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 Private Attributes

static ClassDescription
< DecayMode
initDecayMode
 Describe a concrete class with persistent data.

Friends

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


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:

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

A vector of DecayMode pointers.

Definition at line 103 of file DecayMode.h.

A vector of pairs of ParticleData pointers.

Definition at line 105 of file DecayMode.h.


Member Function Documentation

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.

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==().

PVector ThePEG::DecayMode::produceProducts (  )  const

Produce particles corresponding to the identified decay products.

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

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.

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

Function used to write out object persistently.

Parameters:
os the persistent output stream written to.

Reimplemented from ThePEG::Interfaced.

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

Function used to read in object persistently.

Parameters:
is the persistent input stream read from.
version the version number of the object when written.

Reimplemented from ThePEG::Interfaced.

virtual void ThePEG::DecayMode::rebind ( const TranslationMap trans  )  [protected, virtual]

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:
trans a TranslationMap relating the original objects to their respective clones.
Exceptions:
RebindException if no cloned object was found for a given pointer.

Reimplemented from ThePEG::InterfacedBase.

virtual IVector ThePEG::DecayMode::getReferences (  )  [protected, virtual]

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

Returns:
a vector of pointers.

Reimplemented from ThePEG::InterfacedBase.

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.

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

virtual IBPtr ThePEG::DecayMode::clone (  )  const [protected, virtual]

Make a simple clone of this object.

Returns:
a pointer to the new object.

Implements ThePEG::InterfacedBase.

virtual IBPtr ThePEG::DecayMode::fullclone (  )  const [protected, virtual]

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.

virtual void ThePEG::DecayMode::readSetup ( istream &  is  )  [protected, virtual]

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.


Friends And Related Function Documentation

friend class ParticleData [friend]

ParticleData is a friend.

Definition at line 92 of file DecayMode.h.

friend class RemnantData [friend]

RemnantData is a friend.

Definition at line 95 of file DecayMode.h.

friend class EventGenerator [friend]

The EventGenerator is a friend.

Reimplemented from ThePEG::Interfaced.

Definition at line 98 of file DecayMode.h.


Member Data Documentation

The set of matching decay products.

Each of the matchers correspond to one particle.

Definition at line 530 of file DecayMode.h.

Referenced by productMatchers().

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

colourless q-qbar pairs).

Definition at line 562 of file DecayMode.h.

Referenced by links().


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

Generated on Thu Apr 29 12:43:17 2010 for ThePEG by  doxygen 1.5.5