thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
GaussianPtGenerator.h
1// -*- C++ -*-
2//
3// GaussianPtGenerator.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_GaussianPtGenerator_H
10#define THEPEG_GaussianPtGenerator_H
11// This is the declaration of the GaussianPtGenerator class.
12
13#include "ThePEG/Handlers/PtGenerator.h"
14
15namespace ThePEG {
16
26
27public:
28
34 GaussianPtGenerator() : theSigma(1.0*GeV), theUpperCut(5.0*GeV) {}
35
41
42public:
43
55
56public:
57
65
71 void persistentInput(PersistentIStream & is, int version);
73
77 static void Init();
78
79protected:
80
87 virtual IBPtr clone() const;
88
93 virtual IBPtr fullclone() const;
95
96private:
97
103
108
109private:
110
115
120
121};
122
123}
124
125
126#include "ThePEG/Utilities/ClassTraits.h"
127
128namespace ThePEG {
129
136template <>
137struct BaseClassTrait<GaussianPtGenerator,1>: public ClassTraitsType {
139 typedef PtGenerator NthBase;
140};
141
147template <>
148struct ClassTraits<GaussianPtGenerator>
149 : public ClassTraitsBase<GaussianPtGenerator> {
151 static string className() { return "ThePEG::GaussianPtGenerator"; }
155 static string library() { return "GaussianPtGenerator.so"; }
156
157};
158
161}
162
163#endif /* THEPEG_GaussianPtGenerator_H */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
GaussianPtGenerator inherits from the abstract PtGenerator class.
GaussianPtGenerator()
Default constructor.
virtual ~GaussianPtGenerator()
Destructor.
static ClassDescription< GaussianPtGenerator > initGaussianPtGenerator
Describe a concrete class with persistent data.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
virtual TransverseMomentum generate() const
Generate ( ) components of the transverse momentum.
GaussianPtGenerator & operator=(const GaussianPtGenerator &)=delete
Private and non-existent assignment operator.
Energy theUpperCut
Upper cutoff for the transverse momentum distribution.
Energy theSigma
The width of the Gaussian distribution.
static void Init()
Standard Init function used to initialize the interfaces.
virtual IBPtr clone() const
Make a simple clone of this object.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
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
PtGenerator is the base for all classes implementing alternative models for transverse momentum gener...
Definition: PtGenerator.h:29
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
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