thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
SimpleZGenerator.h
1 // -*- C++ -*-
2 //
3 // SimpleZGenerator.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_SimpleZGenerator_H
10 #define THEPEG_SimpleZGenerator_H
11 // This is the declaration of the SimpleZGenerator class.
12 
13 #include "ThePEG/Handlers/ZGenerator.h"
14 
15 namespace ThePEG {
16 
27 
28 public:
29 
35  virtual ~SimpleZGenerator();
37 
38 public:
39 
52  virtual double generate(cPDPtr q1, cPDPtr q2, Energy2 mT2 ) const;
54 
55 public:
56 
63  void persistentOutput(PersistentOStream & os) const;
64 
70  void persistentInput(PersistentIStream & is, int version);
72 
76  static void Init();
77 
78 protected:
79 
86  virtual IBPtr clone() const;
87 
92  virtual IBPtr fullclone() const;
94 
95 private:
96 
101 
105  SimpleZGenerator & operator=(const SimpleZGenerator &) = delete;
106 
107 };
108 
109 }
110 
111 
112 #include "ThePEG/Utilities/ClassTraits.h"
113 
114 namespace ThePEG {
115 
122 template <>
123 struct BaseClassTrait<SimpleZGenerator,1>: public ClassTraitsType {
125  typedef ZGenerator NthBase;
126 };
127 
132 template <>
133 struct ClassTraits<SimpleZGenerator>
134  : public ClassTraitsBase<SimpleZGenerator> {
136  static string className() { return "ThePEG::SimpleZGenerator"; }
142  static string library() { return "SimpleZGenerator.so"; }
143 
144 };
145 
148 }
149 
150 #endif /* THEPEG_SimpleZGenerator_H */
PersistentIStream is used to read persistent objects from a stream where they were previously written...
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.
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
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.
ZGenerator is the base class for all classes implementing models to generate the momentum fraction...
Definition: ZGenerator.h:32
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
ConstRCPtr is a reference counted (smart) const pointer.
Definition: RCPtr.h:320
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
virtual double generate(cPDPtr q1, cPDPtr q2, Energy2 mT2) const
Return the momentum fraction.
static ClassDescription< SimpleZGenerator > initSimpleZGenerator
Describe a concrete class with persistent data.
SimpleZGenerator is a very simple concrete subclass of ZGenerator.
static void Init()
Standard Init function used to initialize the interfaces.
SimpleZGenerator & operator=(const SimpleZGenerator &)=delete
Private and non-existent assignment operator.
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
virtual ~SimpleZGenerator()
Destructor.
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52