thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
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
15namespace ThePEG {
16
31
32public:
33
37 Onium3GDecayer() : doShower(true), theMinGGMass(2.0*GeV) {}
38
39public:
40
50 virtual bool accept(const DecayMode & dm) const;
51
58 virtual ParticleVector decay(const DecayMode & dm, const Particle & p) const;
59
71 virtual double reweight(const DecayMode & dm, const Particle & parent,
72 const ParticleVector & children) const;
74
78 bool shower() const { return doShower; }
79
84 Energy minGGMass() const { return theMinGGMass; }
85
86public:
87
88
96
102 void persistentInput(PersistentIStream & is, int version);
104
108 static void Init();
109
110protected:
111
118 virtual IBPtr clone() const;
119
124 virtual IBPtr fullclone() const;
126
127private:
128
133
139
140private:
141
146
151
152};
153
154}
155
156
157namespace ThePEG {
158
163template <>
164struct BaseClassTrait<Onium3GDecayer,1>: public ClassTraitsType {
166 typedef FlatDecayer NthBase;
167};
168
172template <>
173struct ClassTraits<Onium3GDecayer>
174 : public ClassTraitsBase<Onium3GDecayer> {
176 static string className() { return "ThePEG::Onium3GDecayer"; }
180 static string library() { return "Onium3GDecayer.so"; }
181};
182
185}
186
187#endif /* THEPEG_Onium3GDecayer_H */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
The DecayMode class describes a decay channel of a particle.
Definition: DecayMode.h:87
The FlatDecayer class inrerits from the abstract Decayer class and implements the decay of a given Pa...
Definition: FlatDecayer.h:33
The Onium3GDecayer class inherits from performs FlatDecayer and will reweight the flat phase space su...
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.
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.
Energy minGGMass() const
Return the minimum invariant mass between two gluons in gamma-g-g decays.
virtual bool accept(const DecayMode &dm) const
Check if this decayer can perfom the decay specified by the given decay mode.
virtual IBPtr clone() const
Make a simple clone of this object.
Onium3GDecayer()
Default constructor.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Energy theMinGGMass
The minimum invariant mass between two gluons in gamma-g-g decays.
bool doShower
If true the produced gluons should be showered.
static ClassDescription< Onium3GDecayer > initOnium3GDecayer
Describe a concrete class with persistent data.
virtual double reweight(const DecayMode &dm, const Particle &parent, const ParticleVector &children) const
Give a weight to a phase space point.
Onium3GDecayer & operator=(const Onium3GDecayer &)=delete
Private and non-existent assignment operator.
The Particle class is used to describe an instance of a particle.
Definition: Particle.h:83
PersistentIStream is used to read persistent objects from a stream where they were previously written...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
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
static string library()
The name of a file containing the dynamic library where the class T is implemented.
Definition: ClassTraits.h:85