thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
V2PPDecayer.h
1// -*- C++ -*-
2//
3// V2PPDecayer.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_V2PPDecayer_H
10#define THEPEG_V2PPDecayer_H
11// This is the declaration of the V2PPDecayer class.
12
13#include "ThePEG/PDT/FlatDecayer.h"
14
15namespace ThePEG {
16
30class V2PPDecayer: public FlatDecayer {
31
32public:
33
43 virtual bool accept(const DecayMode & dm) const;
44
51 virtual ParticleVector decay(const DecayMode & dm, const Particle & p) const;
52
64 virtual double reweight(const DecayMode & dm, const Particle & parent,
65 const ParticleVector & children) const;
67
68public:
69
70
78
84 void persistentInput(PersistentIStream & is, int version);
86
90 static void Init();
91
92protected:
93
94
95protected:
96
103 virtual IBPtr clone() const;
104
109 virtual IBPtr fullclone() const;
111
112private:
113
118
122 mutable tPPtr sibling;
123
124private:
125
130
134 V2PPDecayer & operator=(const V2PPDecayer &) = delete;
135
136};
137
138}
139
140
141namespace ThePEG {
142
147template <>
148struct BaseClassTrait<V2PPDecayer,1>: public ClassTraitsType {
150 typedef FlatDecayer NthBase;
151};
152
156template <>
157struct ClassTraits<V2PPDecayer>
158 : public ClassTraitsBase<V2PPDecayer> {
160 static string className() { return "ThePEG::V2PPDecayer"; }
164 static string library() { return "V2PPDecayer.so"; }
165};
166
169}
170
171#endif /* THEPEG_V2PPDecayer_H */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
The DecayMode class describes a decay channel of a particle.
Definition: DecayMode.h:87
The FlatDecayer class inrerits from the abstract Decayer class and implements the decay of a given Pa...
Definition: FlatDecayer.h:33
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
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition: RCPtr.h:519
The V2PPDecayer class performs the decay of a vector meson into two pseudo-scalars according to a fla...
Definition: V2PPDecayer.h:30
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual IBPtr clone() const
Make a simple clone of this object.
static ClassDescription< V2PPDecayer > initV2PPDecayer
Describe a concrete class with persistent data.
Definition: V2PPDecayer.h:129
tPPtr grandParent
The grand parent in case reweighting should be done.
Definition: V2PPDecayer.h:117
tPPtr sibling
The decaying particles sibling in case reweighting should be done.
Definition: V2PPDecayer.h:122
virtual double reweight(const DecayMode &dm, const Particle &parent, const ParticleVector &children) const
Give a weight to a phase space point.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual ParticleVector decay(const DecayMode &dm, const Particle &p) const
Perform a decay for a given DecayMode and a given Particle instance.
V2PPDecayer & operator=(const V2PPDecayer &)=delete
Private and non-existent assignment operator.
virtual bool accept(const DecayMode &dm) const
Check if this decayer can perfom the decay specified by the given decay mode.
static void Init()
Standard Init function used to initialize the interfaces.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
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
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