ThePEG::ParticleData Class Reference

ParticleData inherits from InterfacedBase and represents the properties of a particle type. More...

#include <ParticleData.h>

Inheritance diagram for ThePEG::ParticleData:

ThePEG::Interfaced ThePEG::InterfacedBase ThePEG::Base ThePEG::Named ThePEG::Pointer::ReferenceCounted ThePEG::BeamParticleData ThePEG::ConstituentParticleData ThePEG::RemnantData

List of all members.

Public Types

typedef Selector< tDMPtrDecaySelector
 A selector of DecayMode objects.

Public Member Functions

Energy mass () const
 Return the nominal mass.
Energy massMax () const
 Return the maximum possible mass of this particle type.
Energy massMin () const
 Return the minimum possible mass of this particle type.
virtual Energy constituentMass () const
 Return the constituent mass of this particle if relevant.
Energy width (Energy)
 Set the width.
Energy width () const
 Get the width.
Energy widthCut (Energy wci)
 Set the width cut.
Energy widthCut () const
 Get the width cut.
Energy widthUpCut (Energy)
 Set the upper width cut.
Energy widthUpCut () const
 Get the upper width cut.
Energy widthLoCut (Energy)
 Set the lower width cut.
Energy widthLoCut () const
 Get the lower width cut.
Length cTau (Length)
 Set the life time cTau.
Length cTau () const
 Get the life time cTau cTau.
PDT::Charge iCharge (PDT::Charge)
 Set the charge.
Charge charge () const
 Get the charge.
PDT::Charge iCharge () const
 Get the charge.
bool charged () const
 Return true if charged.
bool positive () const
 Return true if positively charged.
bool negative () const
 Return true if negatively charged.
PDT::Spin iSpin (PDT::Spin)
 Set the spin.
AngularMomentum spin () const
 Get the spin.The spin is returned in standard units.
PDT::Spin iSpin () const
 Get the spin.
PDT::Colour iColour (PDT::Colour)
 Set the colour of the particle in units of PDT::Colour.
PDT::Colour iColour () const
 Get the colour of the particle in units of PDT::Colour.
bool coloured () const
 Return true if coloured.
bool hasColour (bool anti=false) const
 Return true if (anti) coloured or colour-octet.
bool hasAntiColour () const
 Return true if anti coloured or colour-octet.
void stable (bool stab)
 Specify if particle is to be considered stable according to stab.
bool stable () const
 Return true if particle is to be considered stable.
tPDPtr CC () const
 Get the pointer to the corresponding anti partner.
void synchronized (bool sync)
 Specify if the anti partner chould be changed automatically when this object is changed according to sync.
bool synchronized () const
 Return true if the anti partner chould be changed automatically when this object is changed.
void synchronize ()
 If there is an anti-partner, update this object to have correct anti-properties.
void massGenerator (tMassGenPtr)
 Set the mass generator object.
tMassGenPtr massGenerator () const
 Get the mass generator object.
void widthGenerator (tWidthGeneratorPtr)
 Set the width generator object.
tWidthGeneratorPtr widthGenerator () const
 Get the width generator object.
void variableRatio (bool varRatio)
 Specify if the branching ratio of the Particle instances should vary with their masses.
bool variableRatio () const
 Return true if the branching ratio should vary with the mass of the Particle instance.
Standard constructors and destructors.
 ParticleData ()
 Default constructor.
virtual ~ParticleData ()
 Destructor.
Acces to number and name.
long id () const
 Return the PDG id number.
const string & PDGName () const
 Return the generic PDG name.
const string & genericName () const
 Return the generic PDG name.
Functions used for producing Particle instances.
PPtr produceParticle (const Lorentz5Momentum &) const
 Produce a particle specifying momentum.
PPtr produceParticle (const LorentzMomentum &) const
 Produce a particle specifying momentum.
PPtr produceParticle (const LorentzMomentum &, Energy m) const
 Produce a particle specifying 4-momentum and a mass.
PPtr produceParticle (const Momentum3 &pp=Momentum3()) const
 Produce a particle specifying 3-momentum.
PPtr produceParticle (Energy m, const Momentum3 &pp=Momentum3()) const
 Produce a particle specifying mass and 3-momentum.
PPtr produceParticle (Energy plus, Energy minus, Energy px, Energy py) const
 Produce a particle specifying light-cone momentum components and transverse momentum components.
Energy generateMass () const
 Generate a mass for an instance of this particle type.
Energy generateWidth (Energy mass) const
 Generate a width for an instance of this particle type.
Length generateLifeTime (Energy mass, Energy width) const
 Generate a mass for an instance of this particle type.
Access the decay modes.
const DecaySelectordecaySelector () const
 Return the nominal decay selector for this particle.
tDMPtr selectMode (Particle &p) const
 Selects a decay mode randomly according to the branching ratios.
const DecaySet & decayModes () const
 Access all the decay modes, including those which are switched off, or have zero branching ratio.
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 void Init ()
 Standard Init function.
The Create methods are special interfaces for ParticleData
classes.

static PDPtr Create (long newId, const string &newPDGName)
 Create a Particle which is its own anti-particle.
static PDPair Create (long newId, const string &newPDGName, const string &newAntiPDGName)
 Create a particle - anti particle pair.

Protected Member Functions

virtual PDPtr pdclone () const
 Special clone function used by the Repository.
 ParticleData (long newId, const string &newPDGName)
 Protected constructor only to be used by subclasses or by the Create method.
virtual void readSetup (istream &is)
 Read setup info from a standard stream.
void addDecayMode (tDMPtr)
 Add a decay mode for this particle.
void removeDecayMode (tDMPtr)
 Remove a decay mode for this particle.
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.
Standard Interfaced functions.
virtual void doupdate ()
 Check sanity of the object during the setup phase.
virtual void doinit ()
 Initialize this object after the setup phase before saving an EventGenerator to disk.
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.
virtual void doinitrun ()
 Initialize this object.

Static Protected Member Functions

static void antiSetup (const PDPair &pap)
 Used by subclasses or by the Create method to setup anti-relationship.

Private Member Functions

void setMass (Energy)
 Utility function for the interface.
Energy defMass () const
 Utility function for the interface.
void setWidth (Energy)
 Utility function for the interface.
Energy getWidth () const
 Utility function for the interface.
Energy defWidth () const
 Utility function for the interface.
void setCut (Energy)
 Utility function for the interface.
Energy getCut () const
 Utility function for the interface.
Energy defCut () const
 Utility function for the interface.
void setUpCut (Energy)
 Utility function for the interface.
Energy getUpCut () const
 Utility function for the interface.
void setLoCut (Energy)
 Utility function for the interface.
Energy getLoCut () const
 Utility function for the interface.
void setCTau (Length)
 Utility function for the interface.
Length getCTau () const
 Utility function for the interface.
Length defCTau () const
 Utility function for the interface.
void setStable (long)
 Utility function for the interface.
long getStable () const
 Utility function for the interface.
void setSync (long)
 Utility function for the interface.
long getSync () const
 Utility function for the interface.
void setVariableRatio (long)
 Utility function for the interface.
long getVariableRatio () const
 Utility function for the interface.
string doSync (string)
 Utility function for the interface.
void setMassGenerator (MassGenPtr)
 Utility function for the interface.
void setWidthGenerator (WidthGeneratorPtr)
 Utility function for the interface.
void setCharge (int)
 Utility function for the interface.
string ssetCharge (string)
 Utility function for the interface.
int getCharge () const
 Utility function for the interface.
int defCharge () const
 Utility function for the interface.
void setSpin (int)
 Utility function for the interface.
int getSpin () const
 Utility function for the interface.
int defSpin () const
 Utility function for the interface.
void setColour (long)
 Utility function for the interface.
long getColour () const
 Utility function for the interface.
long defColour () const
 Utility function for the interface.
void insDecayModes (DMPtr dm, int)
 Utility function for the interface.
void delDecayModes (int i)
 Utility function for the interface.
vector< DMPtrgetDecayModes () const
 Utility function for the interface.

Private Attributes

long theId
 Id number according to the STDHEP/PDG standard.
string thePDGName
 Name and Id number according to the STDHEP/PDG standard.
Energy theMass
 Nominal mass.
Energy theWidth
 Width.
Energy theWidthUpCut
 Upper width cut.
Energy theWidthLoCut
 Lower width cut.
Length theCTau
 Lifetime.
PDT::Charge theCharge
 Three times the charge.
PDT::Spin theSpin
 2 times the spin plus one.
PDT::Colour theColour
 The colour for this particle.
MassGenPtr theMassGenerator
 A pointer to an object capable to generate a mass for a particle of this type.
bool isStable
 True if the particle is considered stable.
DecaySelector theDecaySelector
 A selector of decay modes weighted by the nominal branching ratios.
DecaySet theDecayModes
 The set of all decay modes.
WidthGeneratorPtr theWidthGenerator
 A pointer to an object capable to generate the branching fractions for different decay modes for this particle type.
bool theVariableRatio
 Determine whether the branching fractions are allowed to change on a particle-by-particle basis.
tPDPtr theAntiPartner
 Pointer to the object corresponding to the antiparticle.
bool syncAnti
 If syncAnti is true all changes to this object will be transfered to the antiParticle.
Energy theDefMass
 Helper variable to keep track of the default mass.
Energy theDefWidth
 Helper variable to keep track of the default width.
Energy theDefCut
 Helper variable to keep track of the default width cut.
Length theDefCTau
 Helper variable to keep track of the default lifetime.
PDT::Charge theDefCharge
 Helper variable to keep track of the default charge.
PDT::Spin theDefSpin
 Helper variable to keep track of the default spin.
PDT::Colour theDefColour
 Helper variable to keep track of the default colour.

Static Private Attributes

static ClassDescription
< ParticleData
initParticleData
 Describe a concrete class with persistent data.

Friends

class Repository
 The Repository is a friend.
class EventGenerator
 The EventGenerator is a friend.
class DecayMode
 DecayMode is a friend.


Detailed Description

ParticleData inherits from InterfacedBase and represents the properties of a particle type.

It is also able to produce instances of this Particle type and, among other things, to decay them.

See also:
The interfaces defined for ParticleData.

Definition at line 35 of file ParticleData.h.


Member Typedef Documentation

A selector of DecayMode objects.

Definition at line 49 of file ParticleData.h.


Member Function Documentation

const string& ThePEG::ParticleData::PDGName (  )  const [inline]

Return the generic PDG name.

Note that this is not really standardised.

Definition at line 93 of file ParticleData.h.

References thePDGName.

Referenced by ThePEG::Particle::PDGName().

const string& ThePEG::ParticleData::genericName (  )  const [inline]

Return the generic PDG name.

Note that this is not really standardised.

Definition at line 99 of file ParticleData.h.

References thePDGName.

Energy ThePEG::ParticleData::generateWidth ( Energy  mass  )  const

Generate a width for an instance of this particle type.

Given a mass of an instance of this particle type, calculate its width.

Length ThePEG::ParticleData::generateLifeTime ( Energy  mass,
Energy  width 
) const

Generate a mass for an instance of this particle type.

Given a mass and a width of an instance of this particle type, generate a life time.

const DecaySelector& ThePEG::ParticleData::decaySelector (  )  const [inline]

Return the nominal decay selector for this particle.

Ie. the decay modes weighted by their nominal branching ratios.

Definition at line 162 of file ParticleData.h.

References theDecaySelector.

tDMPtr ThePEG::ParticleData::selectMode ( Particle p  )  const

Selects a decay mode randomly according to the branching ratios.

The nominal branching ratios may be changed for the particular Particle instance p, iether by an assigned WidthGenerator or the respective Decayers.

virtual Energy ThePEG::ParticleData::constituentMass (  )  const [inline, virtual]

Return the constituent mass of this particle if relevant.

This version simply returns the nominal mass.

Reimplemented in ThePEG::ConstituentParticleData.

Definition at line 198 of file ParticleData.h.

References mass().

Energy ThePEG::ParticleData::width (  )  const [inline]

Get the width.

If no width is specified, it is calculated from the lifetime.

Definition at line 209 of file ParticleData.h.

References ThePEG::Units::hbarc, ThePEG::Constants::MaxEnergy, theCTau, theWidth, and ThePEG::ZERO.

Energy ThePEG::ParticleData::widthCut ( Energy  wci  )  [inline]

Set the width cut.

Both upper and lower cut is set.

Definition at line 218 of file ParticleData.h.

References widthLoCut(), and widthUpCut().

Length ThePEG::ParticleData::cTau (  )  const [inline]

Get the life time cTau cTau.

If no life time is specified, it is calculated from the width.

Definition at line 261 of file ParticleData.h.

References ThePEG::Units::hbarc, ThePEG::Constants::MaxLength, theCTau, theWidth, and ThePEG::ZERO.

PDT::Charge ThePEG::ParticleData::iCharge ( PDT::Charge   ) 

Set the charge.

The charge should be given in units of e/3 using the PDT::Charge enum.

Referenced by ThePEG::NegativeMatcher::Check(), ThePEG::NeutralMatcher::Check(), ThePEG::PositiveMatcher::Check(), and ThePEG::ChargedMatcher::Check().

Charge ThePEG::ParticleData::charge (  )  const [inline]

Get the charge.

The charge is returned in standard units and in iCharge the charge is returned in units of e/3.

Definition at line 277 of file ParticleData.h.

References theCharge.

PDT::Charge ThePEG::ParticleData::iCharge (  )  const [inline]

Get the charge.

The charge is returned in units of e/3.

Definition at line 282 of file ParticleData.h.

References theCharge.

PDT::Spin ThePEG::ParticleData::iSpin ( PDT::Spin   ) 

Set the spin.

The spin should be given as 2J+1 (in units of hbar/2) using the PDT::Spin enum.

PDT::Spin ThePEG::ParticleData::iSpin (  )  const [inline]

Get the spin.

The spin is returned as 2J+1 in units of hbar/2.

Definition at line 313 of file ParticleData.h.

References theSpin.

bool ThePEG::ParticleData::stable (  )  const [inline]

Return true if particle is to be considered stable.

If the decay table is empty the function always returns true, even if the member variable is false.

Definition at line 356 of file ParticleData.h.

References isStable, and theDecayModes.

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

Function used to write out object persistently.

Parameters:
os the persistent output stream written to.

Reimplemented from ThePEG::Interfaced.

Reimplemented in ThePEG::BeamParticleData, ThePEG::ConstituentParticleData, and ThePEG::RemnantData.

void ThePEG::ParticleData::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.

Reimplemented in ThePEG::BeamParticleData, ThePEG::ConstituentParticleData, and ThePEG::RemnantData.

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

Make a simple clone of this object.

Returns:
a pointer to the new object.

Implements ThePEG::InterfacedBase.

Reimplemented in ThePEG::RemnantData.

virtual IBPtr ThePEG::ParticleData::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.

Reimplemented in ThePEG::RemnantData.

virtual PDPtr ThePEG::ParticleData::pdclone (  )  const [protected, virtual]

Special clone function used by the Repository.

Also makes copies the decay modes and the anti-partner if it exists and if synchronized() is true.

Reimplemented in ThePEG::BeamParticleData, and ThePEG::ConstituentParticleData.

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

Read setup info from a standard stream.

The following information must be supplied in a white-space separated list: PDG number, generic name, default mass (GeV), default width (GeV), width cut (GeV), the lifetime ctau (mm), the charge, the colour, the spin, stable (true) or not (false). Note that if a minus sign is given instead of a generic name, the name of the object will be used instead.

Reimplemented from ThePEG::InterfacedBase.

Reimplemented in ThePEG::ConstituentParticleData.

virtual void ThePEG::ParticleData::doinit (  )  [protected, virtual]

Initialize this object after the setup phase before saving an EventGenerator to disk.

Exceptions:
InitException if object could not be initialized properly.

Reimplemented from ThePEG::InterfacedBase.

virtual void ThePEG::ParticleData::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::ParticleData::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.

virtual void ThePEG::ParticleData::doinitrun (  )  [protected, virtual]

Initialize this object.

Called in the run phase just before a run begins.

Reimplemented from ThePEG::InterfacedBase.


Friends And Related Function Documentation

friend class Repository [friend]

The Repository is a friend.

Reimplemented from ThePEG::Interfaced.

Definition at line 40 of file ParticleData.h.

friend class EventGenerator [friend]

The EventGenerator is a friend.

Reimplemented from ThePEG::Interfaced.

Definition at line 43 of file ParticleData.h.

friend class DecayMode [friend]

DecayMode is a friend.

Definition at line 46 of file ParticleData.h.


Member Data Documentation

A pointer to an object capable to generate the branching fractions for different decay modes for this particle type.

The object will be asked to generate branching fractions every time the ParticleData object it updated and will modify the branching fractions for every particle instance if variableRatio is true.

Definition at line 620 of file ParticleData.h.

Referenced by widthGenerator().

Pointer to the object corresponding to the antiparticle.

Set to null if it is its own antiparticle.

Definition at line 632 of file ParticleData.h.

Referenced by CC().


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

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