9 #ifndef ThePEG_DecayMode_H
10 #define ThePEG_DecayMode_H
13 #include "ThePEG/Config/ThePEG.h"
14 #include "ThePEG/Interface/Interfaced.h"
15 #include "DecayMode.fh"
16 #include "MatcherBase.h"
148 const string &
tag()
const {
472 if (
CC() )
CC()->theTag =
"";
597 struct ClassTraits<DecayMode>:
598 public ClassTraitsBase<DecayMode> {
600 static string className() {
return "ThePEG::DecayMode"; }
const ModeVector & overlap() const
Return the list of overlapping decay modes.
The RemnantData class is not a normal ParticleData class.
const ParticleMSet & excluded() const
The set particles corresponding to excluded intermediate resonances.
ParticleMSet & excluded()
The set particles corresponding to excluded intermediate resonances.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
void addCascadeProduct(tDMPtr)
Add identified resonant product with specified decay mode.
DecayMode()
Default constructor.
ParticleMSet theProducts
The set of specified decay particles.
The Particle class is used to describe an instance of a particle.
bool compareId(const ParticleMSet &, const ParticleMSet &) const
Check if two sets of particles have equivalent types.
ModeMSet theCascadeProducts
The set of matching decay channels corresponding to a specified with a specified subsequent decay mod...
ClassTraitsType is an empty, non-polymorphic, base class.
ModeVector theOverlap
A list of decay modes which are included in this one.
void addProductMatcher(tPMPtr)
Add a mathcer corresponding to one decay product.
ModeMSet & cascadeProducts()
The set of identified resonant products with specified decay modes.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
void resetOverlap()
Remove all decay modes from the list of overlapping modes.
const tPDVector & orderedProducts() const
The set of identified decay products in the order they were specified.
void addProduct(tPDPtr)
Add identified decay products.
void switchOff()
Switch off this decay mode.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
double brat() const
Return the branching ratio to be used.
const MatcherMSet & productMatchers() const
The set of matchers each corresponding to one decay product.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
void resetTag()
Delete the tag (it will be regenerated later if asked for).
void setOn(long)
Utility function for the interface.
double theBrat
The branching ratio.
Rebinder is a class associating pairs of pointers to objects.
multiset< tDMPtr, less< tDMPtr > > ModeMSet
A multiset of tDMPtr .
This is the main namespace within which all identifiers in ThePEG are declared.
ParticleMSet theExcluded
A set of particles which are not allowed as intermediate resonances.
virtual void doupdate()
Check sanity of the object during the setup phase.
PVector produceProducts() const
Produce particles corresponding to the identified decay products.
bool includes(const DecayMode &) const
Check if another decay mode is included in this one.
tcPDPtr parent() const
Get a pointer to the particle data object corresponding to the decaying particle. ...
tPMPtr & wildProductMatcher()
The pointer to a matcher corresponding to any number of decay products.
ParticleData inherits from InterfacedBase and represents the properties of a particle type...
void setWildMatcher(tPMPtr)
Add a matcher corresponding to any number of decay products.
ParticleMSet::const_iterator findId(const ParticleMSet &, const ParticleData &) const
Check if a particle set contains a given particle ID.
bool isOn
True if this mode is switched on.
const LinkVector & links() const
Return a vector of pairs of decay products which are linked together (e.g.
bool operator==(const DecayMode &d) const
Check if another decay mode has the same final state as this one.
multiset< tPMPtr, less< tPMPtr > > MatcherMSet
A multiset of tPMPtr .
DecayerPtr theDecayer
The decayer object responsible for performing the decay.
vector< tcDMPtr > ModeVector
A vector of DecayMode pointers.
tPMPtr wildProductMatcher() const
The pointer to a matcher corresponding to any number of decay products.
tPDVector theOrderedProducts
The set of specified decay particles in the order they was specified.
virtual IVector getReferences()
Return a vector of all pointers to Interfaced objects used in this object.
const ParticleMSet & products() const
The set of identified decay products.
void addLink(tPDPtr a, tPDPtr b)
Add a pair of decay products which are linked together (e.g.
tPMPtr theWildMatcher
A particle matcher which corresponds to zero or more particles.
vector< tPDPair > LinkVector
A vector of pairs of ParticleData pointers.
vector< tPDPtr > tPDVector
A vector of transient pointers to ParticleData objects.
bool on() const
Check whether this decay mode is switched on.
void CC(tDMPtr cc)
Set the pointer to the corresponding decaymode for the antiparticle decay.
tDecayerPtr decayer() const
Get the decayer assigned to this mode.
void parent(tPDPtr pd)
Set a pointer to the particle data object corresponding to the decaying particle. ...
static DMPtr constructDecayMode(string &tag, vector< DMPtr > *save=0)
Create a decay mode from a given tag.
tPDPtr theParent
Pointer to a particle data object corresponding to the decaying particle.
void synchronize()
Modify this mode to have properties corresponding to its anti-partner.
tDMPtr CC() const
Return a pointer to the corresponding decaymode for the antiparticle decay.
string makeTag() const
Use the members in this decay channel and generate the corresponding tag.
MatcherMSet & productMatchers()
The set of matchers each corresponding to one decay product.
RCPtr is a reference counted (smart) pointer.
void switchOn()
Switch on this decay mode.
const ModeMSet & cascadeProducts() const
The set of identified resonance products with specified decay modes.
void addExcluded(tPDPtr)
Add a particle corresponding to an excluded intermediate resonance.
tDMPtr theAntiPartner
The corresponding decay mode of the anti particle.
The Interfaced class is derived from the InterfacedBase class adding a couple of things particular to...
LinkVector theLinks
The vector of pairs of decay products which are linked together (e.g.
multiset< tPDPtr, less< tPDPtr > > ParticleMSet
A multiset of tPDPtr .
static ClassDescription< DecayMode > initDecayMode
Describe a concrete class with persistent data.
virtual IBPtr clone() const
Make a simple clone of this object.
virtual void readSetup(istream &is)
Read setup info from a standard stream used by the Repository.
The DecayMode class describes a decay channel of a particle.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
void setDecayer(DecayerPtr)
Utility function for the interface.
bool addOverlap(tcDMPtr)
Add a decay mode to the list of overlapping modes if included.
static string className()
Return the name of class T.
static void Init()
Standard Init function used to initialize the interface.
static DMPtr Create(tPDPtr newParent, double newBrat=0.0, bool newOn=false)
Protected creation and clone methods.
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
DMPtr dmclone() const
Protected special clone function.
vector< IBPtr > IVector
A vector of pointers to InterfacedBase objects.
vector< PPtr > PVector
A vector of pointers to Particle objects.
BaseClassTraits describes the base classes of the templated class.
long getOn() const
Utility function for the interface.
MatcherMSet theMatchers
The set of matching decay products.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ParticleMSet & products()
The set of identified decay products.
The EventGenerator class manages a whole event generator run.
virtual void rebind(const TranslationMap &trans)
Rebind pointer to other Interfaced objects.
#define ThePEG_DECLARE_MULTISET(VALTYPE, NAME)
Macro for declaring a multiset.
DecayMode & operator=(const DecayMode &)
Private and non-existent assignment operator.
const string & tag() const
Return the tag for this decay mode.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.