thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
Onium3GDecayer.h
1 // -*- C++ -*-
2 //
3 // Onium3GDecayer.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_Onium3GDecayer_H
10 #define THEPEG_Onium3GDecayer_H
11 // This is the declaration of the Onium3GDecayer class.
12 
13 #include "ThePEG/PDT/FlatDecayer.h"
14 
15 namespace ThePEG {
16 
30 class Onium3GDecayer: public FlatDecayer {
31 
32 public:
33 
39  Onium3GDecayer() : doShower(true), theMinGGMass(2.0*GeV) {}
40 
44  virtual ~Onium3GDecayer();
46 
47 public:
48 
58  virtual bool accept(const DecayMode & dm) const;
59 
66  virtual ParticleVector decay(const DecayMode & dm, const Particle & p) const;
67 
79  virtual double reweight(const DecayMode & dm, const Particle & parent,
80  const ParticleVector & children) const;
82 
86  bool shower() const { return doShower; }
87 
92  Energy minGGMass() const { return theMinGGMass; }
93 
94 public:
95 
96 
103  void persistentOutput(PersistentOStream & os) const;
104 
110  void persistentInput(PersistentIStream & is, int version);
112 
116  static void Init();
117 
118 protected:
119 
126  virtual IBPtr clone() const;
127 
132  virtual IBPtr fullclone() const;
134 
135 private:
136 
140  bool doShower;
141 
147 
148 private:
149 
154 
158  Onium3GDecayer & operator=(const Onium3GDecayer &) = delete;
159 
160 };
161 
162 }
163 
164 
165 namespace ThePEG {
166 
171 template <>
172 struct BaseClassTrait<Onium3GDecayer,1>: public ClassTraitsType {
174  typedef FlatDecayer NthBase;
175 };
176 
180 template <>
181 struct ClassTraits<Onium3GDecayer>
182  : public ClassTraitsBase<Onium3GDecayer> {
184  static string className() { return "ThePEG::Onium3GDecayer"; }
188  static string library() { return "Onium3GDecayer.so"; }
189 };
190 
193 }
194 
195 #endif /* THEPEG_Onium3GDecayer_H */
PersistentIStream is used to read persistent objects from a stream where they were previously written...
virtual double reweight(const DecayMode &dm, const Particle &parent, const ParticleVector &children) const
Give a weight to a phase space point.
The Particle class is used to describe an instance of a particle.
Definition: Particle.h:83
Onium3GDecayer()
Default constructor.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
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...
Onium3GDecayer & operator=(const Onium3GDecayer &)=delete
Private and non-existent assignment operator.
static ClassDescription< Onium3GDecayer > initOnium3GDecayer
Describe a concrete class with persistent data.
virtual ParticleVector decay(const DecayMode &dm, const Particle &p) const
Perform a decay for a given DecayMode and a given Particle instance.
virtual ~Onium3GDecayer()
Destructor.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
static void Init()
Standard Init function used to initialize the interfaces.
virtual IBPtr clone() const
Make a simple clone of this object.
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.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
bool shower() const
Return true if the produced gluons should be showered.
Energy minGGMass() const
Return the minimum invariant mass between two gluons in gamma-g-g decays.
Energy theMinGGMass
The minimum invariant mass between two gluons in gamma-g-g decays.
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
bool doShower
If true the produced gluons should be showered.
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 Onium3GDecayer class inherits from performs FlatDecayer and will reweight the flat phase space su...
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