thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
FlatDecayer.h
1// -*- C++ -*-
2//
3// FlatDecayer.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_FlatDecayer_H
10#define ThePEG_FlatDecayer_H
11// This is the declaration of the FlatDecayer class.
12
13#include "ThePEG/PDT/Decayer.h"
14
15namespace ThePEG {
16
33class FlatDecayer: public Decayer {
34
35public:
36
46 virtual bool accept(const DecayMode & dm) const;
47
54 virtual ParticleVector decay(const DecayMode & dm, const Particle & p) const;
55
67 virtual double reweight(const DecayMode &, const Particle & ,
68 const ParticleVector & ) const {
69 return 1.0;
70 }
72
73public:
74
78 static void Init();
79
80protected:
81
88 virtual IBPtr clone() const;
89
94 virtual IBPtr fullclone() const;
96
97private:
98
103
107 FlatDecayer & operator=(const FlatDecayer &) = delete;
108
109};
110
111}
112
113
114namespace ThePEG {
115
120template <>
121struct BaseClassTrait<FlatDecayer,1>: public ClassTraitsType {
123 typedef Decayer NthBase;
124};
125
128template <>
129struct ClassTraits<FlatDecayer>: public ClassTraitsBase<FlatDecayer> {
131 static string className() { return "ThePEG::FlatDecayer"; }
132};
133
136}
137
138#endif /* ThePEG_FlatDecayer_H */
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 FlatDecayer class inrerits from the abstract Decayer class and implements the decay of a given Pa...
Definition: FlatDecayer.h:33
static NoPIOClassDescription< FlatDecayer > initFlatDecayer
Describe a concrete class without persistent data.
Definition: FlatDecayer.h:102
virtual IBPtr clone() const
Make a simple clone of this object.
virtual ParticleVector decay(const DecayMode &dm, const Particle &p) const
Perform a decay for a given DecayMode and a given Particle instance.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
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.
FlatDecayer & operator=(const FlatDecayer &)=delete
Private and non-existent assignment operator.
virtual double reweight(const DecayMode &, const Particle &, const ParticleVector &) const
Give a weight to a phase space point.
Definition: FlatDecayer.h:67
A concreate implementation of ClassDescriptionBase describing a concrete class without persistent dat...
The Particle class is used to describe an instance of a particle.
Definition: Particle.h:83
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
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