thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
DummyDecayer.h
1 // -*- C++ -*-
2 //
3 // DummyDecayer.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_DummyDecayer_H
10 #define THEPEG_DummyDecayer_H
11 // This is the declaration of the DummyDecayer class.
12 
13 #include "ThePEG/PDT/Decayer.h"
14 
15 namespace ThePEG {
16 
25 class DummyDecayer: public Decayer {
26 
27 public:
28 
38  virtual bool accept(const DecayMode & dm) const;
39 
47  virtual ParticleVector decay(const DecayMode & dm, const Particle & p) const;
48 
53  virtual double brat(const DecayMode &,
54  const ParticleData &, double) const;
59  virtual double brat(const DecayMode &, const Particle &, double) const;
61 
62 public:
63 
67  static void Init();
68 
69 protected:
70 
71 
72 protected:
73 
80  virtual IBPtr clone() const;
81 
86  virtual IBPtr fullclone() const;
88 
89 private:
90 
95 
99  DummyDecayer & operator=(const DummyDecayer &) = delete;
100 
101 };
102 
103 }
104 
105 
106 namespace ThePEG {
107 
112 template <>
113 struct BaseClassTrait<DummyDecayer,1>: public ClassTraitsType {
115  typedef Decayer NthBase;
116 };
117 
120 template <>
121 struct ClassTraits<DummyDecayer>
122  : public ClassTraitsBase<DummyDecayer> {
124  static string className() { return "ThePEG::DummyDecayer"; }
125 
126 };
127 
130 }
131 
132 #endif /* THEPEG_DummyDecayer_H */
The Particle class is used to describe an instance of a particle.
Definition: Particle.h:83
virtual bool accept(const DecayMode &dm) const
Check if this decayer can perfom the decay specified by the given decay mode.
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
DummyDecayer inherits from Decayer and is a dummy decayer class to be used for symbolic decay channel...
Definition: DummyDecayer.h:25
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
DummyDecayer & operator=(const DummyDecayer &)=delete
Private and non-existent assignment operator.
A concreate implementation of ClassDescriptionBase describing a concrete class without persistent dat...
ParticleData inherits from InterfacedBase and represents the properties of a particle type...
Definition: ParticleData.h:36
static void Init()
Standard Init function used to initialize the interfaces.
virtual IBPtr clone() const
Make a simple clone of this object.
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
The DecayMode class describes a decay channel of a particle.
Definition: DecayMode.h:87
virtual double brat(const DecayMode &, const ParticleData &, double) const
Will always return zero, since no decay can ever be performed with this decayer.
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
static NoPIOClassDescription< DummyDecayer > initDummyDecayer
Describe a concrete class without persistent data.
Definition: DummyDecayer.h:94
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
virtual ParticleVector decay(const DecayMode &dm, const Particle &p) const
Perform a decay for a given DecayMode and a given Particle instance.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52