thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
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
17namespace ThePEG {
18
26class DalitzDecayer: public Decayer {
27
28public:
29
39 virtual bool accept(const DecayMode & dm) const;
40
47 virtual ParticleVector decay(const DecayMode & dm, const Particle & p) const;
49
50public:
51
59
65 void persistentInput(PersistentIStream & is, int version);
67
71 static void Init();
72
73protected:
74
81 virtual IBPtr clone() const;
82
87 virtual IBPtr fullclone() const;
89
90protected:
91
99 virtual void doinit();
100
110 virtual void rebind(const TranslationMap & trans)
111 ;
112
120
121private:
122
127
128private:
129
134
139
140};
141
142}
143
144
145namespace ThePEG {
146
151template <>
152struct BaseClassTrait<DalitzDecayer,1>: public ClassTraitsType {
154 typedef Decayer NthBase;
155};
156
160template <>
161struct ClassTraits<DalitzDecayer>
162 : public ClassTraitsBase<DalitzDecayer> {
164 static string className() { return "ThePEG::DalitzDecayer"; }
168 static string library() { return "DalitzDecayer.so"; }
169
170};
171
174}
175
176#endif /* THEPEG_DalitzDecayer_H */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
The DalitzDecayer inherits from the Decayer class and performs Dalitz decays into .
Definition: DalitzDecayer.h:26
virtual void rebind(const TranslationMap &trans)
Rebind pointer to other Interfaced objects.
virtual bool accept(const DecayMode &dm) const
Check if this decayer can perfom the decay specified by the given decay mode.
virtual IBPtr clone() const
Make a simple clone of this object.
DalitzDecayer & operator=(const DalitzDecayer &)=delete
Private and non-existent assignment operator.
virtual ParticleVector decay(const DecayMode &dm, const Particle &p) const
Perform a decay for a given DecayMode and a given Particle instance.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
static void Init()
Standard Init function used to initialize the interfaces.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
PDPtr rho
Quick access to the rho particle data.
static ClassDescription< DalitzDecayer > initDalitzDecayer
Describe a concrete class with persistent data.
virtual IVector getReferences()
Return a vector of all pointers to Interfaced objects used in this object.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
The DecayMode class describes a decay channel of a particle.
Definition: DecayMode.h:87
Decayer is an abstract base class to specify objects modelling the decay of a particle.
Definition: Decayer.h:29
The Particle class is used to describe an instance of a particle.
Definition: Particle.h:83
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
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
vector< PPtr > ParticleVector
A vector of pointers to Particle objects.
Definition: Containers.h:73
vector< IBPtr > IVector
A vector of pointers to InterfacedBase objects.
Definition: Containers.h:67
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
static string library()
The name of a file containing the dynamic library where the class T is implemented.
Definition: ClassTraits.h:85