herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
DipoleMCCheck.h
1// -*- C++ -*-
2//
3// DipoleMCCheck.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4// Copyright (C) 2002-2019 The Herwig Collaboration
5//
6// Herwig 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 HERWIG_DipoleMCCheck_H
10#define HERWIG_DipoleMCCheck_H
11//
12// This is the declaration of the DipoleMCCheck class.
13//
14
15#include "ThePEG/Handlers/HandlerBase.h"
16
17#include "Herwig/Utilities/Histogram.h"
18
19namespace Herwig {
20
21using namespace ThePEG;
22
34
35public:
36
41
42public:
43
47 void book(double xe,double xs,
48 Energy dScale,
49 Energy hardPt,
50 Energy pt, double z,
51 double weight);
52
53public:
54
62
68 void persistentInput(PersistentIStream & is, int version);
70
77 static void Init();
78
79protected:
80
87 virtual IBPtr clone() const;
88
93 virtual IBPtr fullclone() const;
95
96
97
98protected:
99
104 virtual void doinitrun();
105
110 virtual void dofinish();
111
112
113// If needed, insert declarations of virtual function defined in the
114// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
115
116private:
117
123 unsigned int theHardPtBins;
124
130 unsigned int theEmitterXBins;
131
137 unsigned int theSpectatorXBins;
138
143 unsigned int thePtBins;
144
148 unsigned int theZBins;
149
157 map<double,
158 map<double,
159 map<double,
160 pair<Ptr<Histogram>::ptr,Ptr<Histogram>::ptr>
161 >
162 >
164
168 vector<double> makeLogBins(double xlow, double xup, unsigned int n) const;
169
170private:
171
177
183
184};
185
186}
187
188#include "ThePEG/Utilities/ClassTraits.h"
189
190namespace ThePEG {
191
196template <>
197struct BaseClassTrait<Herwig::DipoleMCCheck,1> {
199 typedef HandlerBase NthBase;
200};
201
204template <>
205struct ClassTraits<Herwig::DipoleMCCheck>
206 : public ClassTraitsBase<Herwig::DipoleMCCheck> {
208 static string className() { return "Herwig::DipoleMCCheck"; }
216 static string library() { return "HwDipoleShower.so"; }
217};
218
221}
222
223#endif /* HERWIG_DipoleMCCheck_H */
DipoleMCCheck is used to perform checks for the dipole shower.
Definition: DipoleMCCheck.h:33
virtual void doinitrun()
Initialize this object.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
vector< double > makeLogBins(double xlow, double xup, unsigned int n) const
Helper to make logarithmic bins.
virtual IBPtr clone() const
Make a simple clone of this object.
unsigned int theHardPtBins
The number of bins in the starting scale divided by the dipole scale, the upper bound is 1/2.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
static void Init()
The standard Init function used to initialize the interfaces.
unsigned int theEmitterXBins
The number of bins in the emitter fraction.
unsigned int theZBins
The number of bins in z.
void book(double xe, double xs, Energy dScale, Energy hardPt, Energy pt, double z, double weight)
Book a point.
DipoleMCCheck()
The default constructor.
unsigned int thePtBins
The number of bins in pt dicided by the dipole scale; the upper bound is 1/2.
DipoleMCCheck & operator=(const DipoleMCCheck &)=delete
The assignment operator is private and must never be called.
virtual void dofinish()
Finalize this object.
static ClassDescription< DipoleMCCheck > initDipoleMCCheck
The static object used to initialize the description of this class.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
map< double, map< double, map< double, pair< Ptr< Histogram >::ptr, Ptr< Histogram >::ptr > > > > histoMap
The recursive map structure: xe, xs, hard pt / GeV to histograms for pt and z; output is done such th...
unsigned int theSpectatorXBins
The number of bins in the spectator fraction.
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
static string className()
static string library()