ThePEG  1.8.0
Onium3GDecayer.h
1 // -*- C++ -*-
2 //
3 // Onium3GDecayer.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2011 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 2 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 
159 
160 };
161 
162 }
163 
164 
165 namespace ThePEG {
166 
171 template <>
174  typedef FlatDecayer NthBase;
175 };
176 
180 template <>
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 */
virtual bool accept(const DecayMode &dm) const
Check if this decayer can perfom the decay specified by the given decay mode.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
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
Energy minGGMass() const
Return the minimum invariant mass between two gluons in gamma-g-g decays.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
Onium3GDecayer & operator=(const Onium3GDecayer &)
Private and non-existent assignment operator.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
static ClassDescription< Onium3GDecayer > initOnium3GDecayer
Describe a concrete class with persistent data.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
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.
QTY< 0, 1, 0 >::Type Energy
Energy.
Definition: Unitsystem.h:34
virtual IBPtr clone() const
Make a simple clone of this object.
bool shower() const
Return true if the produced gluons should be showered.
virtual ParticleVector decay(const DecayMode &dm, const Particle &p) const
Perform a decay for a given DecayMode and a given Particle instance.
virtual double reweight(const DecayMode &dm, const Particle &parent, const ParticleVector &children) const
Give a weight to a phase space point.
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
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
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