herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
HardProcessAnalysis.h
1// -*- C++ -*-
2#ifndef Herwig_HardProcessAnalysis_H
3#define Herwig_HardProcessAnalysis_H
4//
5// This is the declaration of the HardProcessAnalysis class.
6//
7
8#include "ThePEG/Handlers/AnalysisHandler.h"
9#include "Herwig/Utilities/Histogram.h"
10
11namespace Herwig {
12
13using namespace ThePEG;
14
22
23public:
24
29
30public:
31
51 virtual void analyze(tEventPtr event, long ieve, int loop, int state);
52
54
55protected:
56
61 virtual void doinitrun();
62
67 virtual void dofinish();
68
69
70public:
71
79
85 void persistentInput(PersistentIStream & is, int version);
87
94 static void Init();
95
96protected:
97
104 virtual IBPtr clone() const;
105
110 virtual IBPtr fullclone() const;
112
113
114// If needed, insert declarations of virtual function defined in the
115// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
116
117
118private:
119
125
129 struct Histograms {
130
135
139 explicit Histograms(Energy ECM, unsigned int theNBins);
140
144 void fill(const Lorentz5Momentum& p, double weight);
145
149 void finalize(ostream& dat,
150 ostream& plot,
151 const string& subpro,
152 size_t legid,
153 double norm,
154 bool theUnitWeights);
155
159 HistogramPtr transverse;
160
164 HistogramPtr rapidity;
165
169 HistogramPtr phi;
170
171 };
172
177
181 vector<Histograms> outgoing;
182
186 HistogramPtr x1;
187
191 HistogramPtr x2;
192
196 HistogramPtr sshat;
197
201 HistogramPtr rapidity;
202
207
208 };
209
213 map<vector<string>,AllHistograms> histogramData;
214
219
223 void fill(PPair, ParticleVector, double);
224
228 unsigned int theNBins;
229
234
239
244
245};
246
247}
248
249#endif /* Herwig_HardProcessAnalysis_H */
Here is the documentation of the HardProcessAnalysis class.
virtual void doinitrun()
Initialize this object.
virtual IBPtr clone() const
Make a simple clone of this object.
void fill(PPair, ParticleVector, double)
Analyze a given final state.
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.
bool thePartonsAreJets
True, if partons should be handled as jets irrespective of flavour.
virtual void dofinish()
Finalize this object.
map< vector< string >, AllHistograms > histogramData
Histograms per subprocess.
unsigned int theNBins
The number of bins to use.
HardProcessAnalysis & operator=(const HardProcessAnalysis &)=delete
The assignment operator is private and must never be called.
HardProcessAnalysis()
The default constructor.
bool theUnitWeights
True, if unit weights should be booked.
double sumWeights
The total sum of weights.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
bool theSplitInitialStates
True, if subprocesses should be distinguished by initial state.
static void Init()
The standard Init function used to initialize the interfaces.
virtual void analyze(tEventPtr event, long ieve, int loop, int state)
Analyze a given Event.
InitState state() const
-*- C++ -*-
pair< PPtr, PPtr > PPair
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::Ptr< Event >::transient_pointer tEventPtr
vector< PPtr > ParticleVector
Outgoing partons and x distributions.
HistogramPtr sshat
sqrt(shat) distribution
vector< Histograms > outgoing
Outgoing partons.
Differential information per outgoing parton.
HistogramPtr phi
Azimuthal angle distribution.
HistogramPtr rapidity
Rapidity distribution.
void finalize(ostream &dat, ostream &plot, const string &subpro, size_t legid, double norm, bool theUnitWeights)
Finalize given process id and cross section.
Histograms(Energy ECM, unsigned int theNBins)
The constructor.
void fill(const Lorentz5Momentum &p, double weight)
Analyse given momentum.