thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
OmegaPhi3PiDecayer.h
1 // -*- C++ -*-
2 //
3 // OmegaPhi3PiDecayer.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_OmegaPhi3PiDecayer_H
10 #define THEPEG_OmegaPhi3PiDecayer_H
11 // This is the declaration of the OmegaPhi3PiDecayer class.
12 
13 #include "ThePEG/PDT/FlatDecayer.h"
14 
15 namespace ThePEG {
16 
30 
31 public:
32 
38  OmegaPhi3PiDecayer() : margin(150.0) {}
40 
41 public:
42 
52  virtual bool accept(const DecayMode & dm) const;
53 
65  virtual double reweight(const DecayMode & dm, const Particle & parent,
66  const ParticleVector & children) const;
68 
69 public:
70 
71 
78  void persistentOutput(PersistentOStream & os) const;
79 
85  void persistentInput(PersistentIStream & is, int version);
87 
91  static void Init();
92 
93 protected:
94 
95 
96 protected:
97 
104  virtual IBPtr clone() const;
105 
110  virtual IBPtr fullclone() const;
112 
113 private:
114 
119  double margin;
120 
121 private:
122 
127 
131  OmegaPhi3PiDecayer & operator=(const OmegaPhi3PiDecayer &) = delete;
132 
133 };
134 
135 }
136 
137 
138 namespace ThePEG {
139 
144 template <>
145 struct BaseClassTrait<OmegaPhi3PiDecayer,1>: public ClassTraitsType {
147  typedef FlatDecayer NthBase;
148 };
149 
153 template <>
154 struct ClassTraits<OmegaPhi3PiDecayer>
155  : public ClassTraitsBase<OmegaPhi3PiDecayer> {
157  static string className() { return "ThePEG::OmegaPhi3PiDecayer"; }
161  static string library() { return "OmegaPhi3PiDecayer.so"; }
162 };
163 
166 }
167 
168 #endif /* THEPEG_OmegaPhi3PiDecayer_H */
PersistentIStream is used to read persistent objects from a stream where they were previously written...
virtual bool accept(const DecayMode &dm) const
Check if this decayer can perfom the decay specified by the given decay mode.
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 double reweight(const DecayMode &dm, const Particle &parent, const ParticleVector &children) const
Give a weight to a phase space point.
double margin
Used to multiply the bare weight to get something below unity.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
static ClassDescription< OmegaPhi3PiDecayer > initOmegaPhi3PiDecayer
Describe a concrete class with persistent data.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
virtual IBPtr clone() const
Make a simple clone of this object.
OmegaPhi3PiDecayer & operator=(const OmegaPhi3PiDecayer &)=delete
Private and non-existent assignment operator.
OmegaPhi3PiDecayer()
Default constructor.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
static void Init()
Standard Init function used to initialize the interfaces.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
The DecayMode class describes a decay channel of a particle.
Definition: DecayMode.h:87
The OmegaPhi3PiDecayer class inherits from performs FlatDecayer and will reweight the flat phase spac...
vector< PPtr > ParticleVector
A vector of pointers to Particle objects.
Definition: Containers.h:73
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
The FlatDecayer class inrerits from the abstract Decayer class and implements the decay of a given Pa...
Definition: FlatDecayer.h:33
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52