thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
DecayHandler.h
1// -*- C++ -*-
2//
3// DecayHandler.h is a part of ThePEG - Toolkit for HEP Event Generation
4// Copyright (C) 1999-2019 Leif Lonnblad
5//
6// ThePEG is licenced under version 3 of the GPL, see COPYING for details.
7// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8//
9#ifndef ThePEG_DecayHandler_H
10#define ThePEG_DecayHandler_H
11// This is the declaration of the DecayHandler class.
12
13#include "StepHandler.h"
14
15namespace ThePEG {
16
32
33public:
34
41
45 virtual ~DecayHandler();
47
48public:
49
59 virtual void handle(EventHandler & eh, const tPVector & tagged,
60 const Hint & hint);
62
68 void performDecay(tPPtr parent, Step & s) const;
69
70public:
71
79
85 void persistentInput(PersistentIStream & is, int version);
87
91 static void Init();
92
97 long maxLoop() const { return theMaxLoop; }
98
103
109 bool lifeTimeOption() const { return theLifeTimeOption; }
110
111protected:
112
119 virtual IBPtr clone() const;
120
125 virtual IBPtr fullclone() const;
127
128private:
129
135
140
145
146private:
147
152
157
158};
159
166template <>
169 typedef StepHandler NthBase;
170};
171
176template <>
177struct ClassTraits<DecayHandler>: public ClassTraitsBase<DecayHandler> {
179 static string className() { return "ThePEG::DecayHandler"; }
180};
181
184}
185
186#endif /* ThePEG_DecayHandler_H */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
The DecayHandler is the base class of all handlers implementing the administration of decays of unsta...
Definition: DecayHandler.h:31
long maxLoop() const
The maximum number of failed decay attempts allowed for each particle.
Definition: DecayHandler.h:97
virtual IBPtr clone() const
Make a simple clone of this object.
Length maxLifeTime() const
Get the maximum lifetime above which a particle is not decayed.
Definition: DecayHandler.h:102
bool lifeTimeOption() const
Option for whether the maximum lifetime should be applied to the mean lifetime of the particle specie...
Definition: DecayHandler.h:109
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
DecayHandler & operator=(const DecayHandler &)=delete
Private and non-existent assignment operator.
static ClassDescription< DecayHandler > initDecayHandler
Describe a concrete class with persistent data.
Definition: DecayHandler.h:151
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual void handle(EventHandler &eh, const tPVector &tagged, const Hint &hint)
Look through all tagged particled and decay all unstable ones.
void performDecay(tPPtr parent, Step &s) const
Perform the decay of one unstable particle.
Length theMaxLifeTime
The maximum lifetime above which a particle is not decayed.
Definition: DecayHandler.h:139
DecayHandler()
Default constructor.
Definition: DecayHandler.h:40
bool theLifeTimeOption
Option for how theMaxLifeTime should be interpreted.
Definition: DecayHandler.h:144
long theMaxLoop
The maximum number of failed decay attempts allowed for each particle.
Definition: DecayHandler.h:134
virtual ~DecayHandler()
Destructor.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
static void Init()
Standard Init function used to initialize the interface.
The EventHandler is the base class used to implement event handlers in ThePEG.
Definition: EventHandler.h:63
Hint is a base class to be used to pass information between StepHandler s, which cannot be convayed t...
Definition: Hint.h:48
PersistentIStream is used to read persistent objects from a stream where they were previously written...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition: RCPtr.h:519
StepHandler is the base class for implementing any model for a step in the event generation chain.
Definition: StepHandler.h:41
The Step class contains information of all particles present after certain step in the event generati...
Definition: Step.h:34
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
vector< tPPtr > tPVector
A vector of transient pointers to Particle objects.
Definition: Containers.h:82
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30