thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
DalitzDecayer.h
1 // -*- C++ -*-
2 //
3 // DalitzDecayer.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_DalitzDecayer_H
10 #define THEPEG_DalitzDecayer_H
11 // This is the declaration of the DalitzDecayer class.
12 
13 #include "ThePEG/PDT/Decayer.h"
14 // #include "DalitzDecayer.fh"
15 // #include "DalitzDecayer.xh"
16 
17 namespace ThePEG {
18 
26 class DalitzDecayer: public Decayer {
27 
28 public:
29 
35  virtual ~DalitzDecayer();
37 
38 public:
39 
49  virtual bool accept(const DecayMode & dm) const;
50 
57  virtual ParticleVector decay(const DecayMode & dm, const Particle & p) const;
59 
60 public:
61 
68  void persistentOutput(PersistentOStream & os) const;
69 
75  void persistentInput(PersistentIStream & is, int version);
77 
81  static void Init();
82 
83 protected:
84 
91  virtual IBPtr clone() const;
92 
97  virtual IBPtr fullclone() const;
99 
100 protected:
101 
109  virtual void doinit();
110 
120  virtual void rebind(const TranslationMap & trans)
121  ;
122 
128  virtual IVector getReferences();
130 
131 private:
132 
137 
138 private:
139 
144 
148  DalitzDecayer & operator=(const DalitzDecayer &) = delete;
149 
150 };
151 
152 }
153 
154 
155 namespace ThePEG {
156 
161 template <>
162 struct BaseClassTrait<DalitzDecayer,1>: public ClassTraitsType {
164  typedef Decayer NthBase;
165 };
166 
170 template <>
171 struct ClassTraits<DalitzDecayer>
172  : public ClassTraitsBase<DalitzDecayer> {
174  static string className() { return "ThePEG::DalitzDecayer"; }
178  static string library() { return "DalitzDecayer.so"; }
179 
180 };
181 
184 }
185 
186 #endif /* THEPEG_DalitzDecayer_H */
PersistentIStream is used to read persistent objects from a stream where they were previously written...
DalitzDecayer & operator=(const DalitzDecayer &)=delete
Private and non-existent assignment operator.
The Particle class is used to describe an instance of a particle.
Definition: Particle.h:83
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
virtual ~DalitzDecayer()
Destructor.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual void rebind(const TranslationMap &trans)
Rebind pointer to other Interfaced objects.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
virtual IVector getReferences()
Return a vector of all pointers to Interfaced objects used in this object.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Rebinder is a class associating pairs of pointers to objects.
Definition: Rebinder.h:27
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
static ClassDescription< DalitzDecayer > initDalitzDecayer
Describe a concrete class with persistent data.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
static void Init()
Standard Init function used to initialize the interfaces.
virtual ParticleVector decay(const DecayMode &dm, const Particle &p) const
Perform a decay for a given DecayMode and a given Particle instance.
virtual bool accept(const DecayMode &dm) const
Check if this decayer can perfom the decay specified by the given decay mode.
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
PDPtr rho
Quick access to the rho particle data.
The DalitzDecayer inherits from the Decayer class and performs Dalitz decays into ...
Definition: DalitzDecayer.h:26
virtual IBPtr clone() const
Make a simple clone of this object.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
The DecayMode class describes a decay channel of a particle.
Definition: DecayMode.h:87
vector< IBPtr > IVector
A vector of pointers to InterfacedBase objects.
Definition: Containers.h:67
Decayer is an abstract base class to specify objects modelling the decay of a particle.
Definition: Decayer.h:29
vector< PPtr > ParticleVector
A vector of pointers to Particle objects.
Definition: Containers.h:73
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52