thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
Handlers
AnalysisHandler.h
1
// -*- C++ -*-
2
//
3
// AnalysisHandler.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_AnalysisHandler_H
10
#define ThePEG_AnalysisHandler_H
11
// This is the declaration of the AnalysisHandler class.
12
13
#include "HandlerBase.h"
14
#include "AnalysisHandler.fh"
15
#include "ThePEG/Vectors/LorentzRotation.h"
16
#include "ThePEG/Analysis/FactoryBase.h"
17
#include "ThePEG/EventRecord/Event.h"
18
#include <stdexcept>
19
20
namespace
ThePEG
{
21
41
class
AnalysisHandler
:
public
HandlerBase
{
42
43
public
:
44
48
typedef
FactoryBase::tH1DPtr
tH1DPtr
;
49
53
typedef
FactoryBase::tcH1DPtr
tcH1DPtr
;
54
58
typedef
FactoryBase::tH2DPtr
tH2DPtr
;
59
63
typedef
FactoryBase::tcH2DPtr
tcH2DPtr
;
64
65
public
:
66
87
virtual
void
analyze
(
tEventPtr
event,
long
ieve,
int
loop,
int
state
);
88
97
virtual
LorentzRotation
transform
(
tEventPtr
event)
const
;
98
105
virtual
LorentzRotation
transform
(
tcEventPtr
event)
const
;
106
113
virtual
void
analyze
(
const
tPVector
& particles);
114
121
virtual
void
analyze
(
const
tPVector
& particles,
double
weight);
122
128
virtual
void
analyze
(
tPPtr
particle);
129
135
virtual
void
analyze
(
tPPtr
particle,
double
weight);
136
138
146
bool
checkHistogramFactory
(
bool
warn =
false
)
const
;
147
151
FactoryBase
&
histogramFactory
();
152
156
const
FactoryBase
&
histogramFactory
()
const
;
157
162
AIDA::IHistogramFactory &
iHistogramFactory
()
const
{
163
return
histogramFactory
().
histogramFactory
();
164
}
165
174
void
normalize
(
tH1DPtr
h,
CrossSection
unit = picobarn)
const
;
175
179
void
unitNormalize
(
tH1DPtr
h)
const
;
181
182
public
:
183
190
void
persistentOutput
(
PersistentOStream
& os)
const
;
191
197
void
persistentInput
(
PersistentIStream
& is,
int
version);
198
200
204
static
void
Init
();
205
206
protected
:
207
214
virtual
IBPtr
clone
()
const
;
215
220
virtual
IBPtr
fullclone
()
const
;
221
223
224
private
:
225
230
AnalysisVector
theSlaves
;
232
233
public
:
234
236
class
NoHistFactory
:
public
InitException {};
237
238
private
:
239
244
static
ClassDescription<AnalysisHandler>
initAnalysisHandler
;
245
246
};
247
252
template
<>
253
struct
BaseClassTrait
<
AnalysisHandler
,1>:
public
ClassTraitsType
{
255
typedef
HandlerBase
NthBase
;
256
};
257
260
template
<>
261
struct
ClassTraits<AnalysisHandler>:
public
ClassTraitsBase<AnalysisHandler> {
263
static
string
className
() {
return
"ThePEG::AnalysisHandler"
; }
264
};
265
268
}
269
270
#endif
/* ThePEG_AnalysisHandler_H */
ThePEG::AnalysisHandler::NoHistFactory
Exception class used if no histogram factory was found.
Definition:
AnalysisHandler.h:236
ThePEG::AnalysisHandler
The AnalysisHandler is the base class of all analysis objects which may be handled by the FullEventGe...
Definition:
AnalysisHandler.h:41
ThePEG::AnalysisHandler::analyze
virtual void analyze(tEventPtr event, long ieve, int loop, int state)
Analyze a given Event.
ThePEG::AnalysisHandler::tH1DPtr
FactoryBase::tH1DPtr tH1DPtr
Convenient typedef for pointer to AIDA::IHistogram1D.
Definition:
AnalysisHandler.h:48
ThePEG::AnalysisHandler::histogramFactory
const FactoryBase & histogramFactory() const
Access the HistogramFactory from the EventGenerator.
ThePEG::AnalysisHandler::clone
virtual IBPtr clone() const
Make a simple clone of this object.
ThePEG::AnalysisHandler::checkHistogramFactory
bool checkHistogramFactory(bool warn=false) const
Check if the associated EventGenerator has been assigned a histogram factory.
ThePEG::AnalysisHandler::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG::AnalysisHandler::transform
virtual LorentzRotation transform(tcEventPtr event) const
Return a LorentzTransform which would put the event in the desired Lorentz frame.
ThePEG::AnalysisHandler::tH2DPtr
FactoryBase::tH2DPtr tH2DPtr
Convenient typedef for pointer to AIDA::IHistogram1D.
Definition:
AnalysisHandler.h:58
ThePEG::AnalysisHandler::transform
virtual LorentzRotation transform(tEventPtr event) const
Transform the event to the desired Lorentz frame and return the corresponding LorentzRotation.
ThePEG::AnalysisHandler::theSlaves
AnalysisVector theSlaves
A list of slave analysis objects which are called for the same extracted particles and in the same Lo...
Definition:
AnalysisHandler.h:230
ThePEG::AnalysisHandler::histogramFactory
FactoryBase & histogramFactory()
Access the HistogramFactory from the EventGenerator.
ThePEG::AnalysisHandler::analyze
virtual void analyze(const tPVector &particles, double weight)
Analyze the given vector of particles.
ThePEG::AnalysisHandler::analyze
virtual void analyze(const tPVector &particles)
Analyze the given vector of particles.
ThePEG::AnalysisHandler::normalize
void normalize(tH1DPtr h, CrossSection unit=picobarn) const
Normalize the histogran h using the collected statistics from the EventGenerator.
ThePEG::AnalysisHandler::Init
static void Init()
Standard Init function used to initialize the interface.
ThePEG::AnalysisHandler::unitNormalize
void unitNormalize(tH1DPtr h) const
Normalize the histogran h to unit integral.
ThePEG::AnalysisHandler::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ThePEG::AnalysisHandler::tcH1DPtr
FactoryBase::tcH1DPtr tcH1DPtr
Convenient typedef for pointer to AIDA::IHistogram1D.
Definition:
AnalysisHandler.h:53
ThePEG::AnalysisHandler::analyze
virtual void analyze(tPPtr particle, double weight)
Analyze the given particle.
ThePEG::AnalysisHandler::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::AnalysisHandler::analyze
virtual void analyze(tPPtr particle)
Analyze the given particle.
ThePEG::AnalysisHandler::tcH2DPtr
FactoryBase::tcH2DPtr tcH2DPtr
Convenient typedef for pointer to AIDA::IHistogram1D.
Definition:
AnalysisHandler.h:63
ThePEG::AnalysisHandler::iHistogramFactory
AIDA::IHistogramFactory & iHistogramFactory() const
Access the underlying AIDA::IHistogramFactory in the HistogramFactory from the EventGenerator.
Definition:
AnalysisHandler.h:162
ThePEG::AnalysisHandler::initAnalysisHandler
static ClassDescription< AnalysisHandler > initAnalysisHandler
The static object used to initialize the description of this class.
Definition:
AnalysisHandler.h:244
ThePEG::ClassDescription
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
Definition:
ClassDescription.h:333
ThePEG::FactoryBase
Here is the documentation of the FactoryBase class.
Definition:
FactoryBase.h:47
ThePEG::FactoryBase::tH1DPtr
AIDA::IHistogram1D * tH1DPtr
Convenient typedef for pointer to AIDA::IHistogram1D.
Definition:
FactoryBase.h:54
ThePEG::FactoryBase::histogramFactory
AIDA::IHistogramFactory & histogramFactory() const
A pointer to the underlying AIDA::IHistogramFactory object.
ThePEG::FactoryBase::tH2DPtr
AIDA::IHistogram2D * tH2DPtr
Convenient typedef for pointer to AIDA::IHistogram2D.
Definition:
FactoryBase.h:64
ThePEG::FactoryBase::tcH2DPtr
const AIDA::IHistogram2D * tcH2DPtr
Convenient typedef for pointer to const AIDA::IHistogram2D.
Definition:
FactoryBase.h:69
ThePEG::FactoryBase::tcH1DPtr
const AIDA::IHistogram1D * tcH1DPtr
Convenient typedef for pointer to const AIDA::IHistogram1D.
Definition:
FactoryBase.h:59
ThePEG::HandlerBase
HandlerBase is an abstract base class derived from the Interfaced class via the HandlerBaseT class ad...
Definition:
HandlerBase.h:151
ThePEG::InterfacedBase::state
InitState state() const
Return the state of initialization of this object.
Definition:
InterfacedBase.h:298
ThePEG::LorentzRotation
The LorentzRotation class combine a SpinOneLorentzRotation and a spin SpinHalfLorentzRotation to prov...
Definition:
LorentzRotation.h:27
ThePEG::PersistentIStream
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Definition:
PersistentIStream.h:48
ThePEG::PersistentOStream
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
Definition:
PersistentOStream.h:51
ThePEG::Pointer::RCPtr
RCPtr is a reference counted (smart) pointer.
Definition:
RCPtr.h:60
ThePEG::Pointer::TransientConstRCPtr
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition:
RCPtr.h:696
ThePEG::Pointer::TransientRCPtr
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition:
RCPtr.h:519
ThePEG::Qty< std::ratio< L, DL >, std::ratio< E, DE >, std::ratio< Q, DQ > >
Definition:
PhysicalQty.h:77
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::AnalysisVector
vector< AnaPtr > AnalysisVector
A vector of pointers to AnalysisHandler objects.
Definition:
Containers.h:112
ThePEG::tPVector
vector< tPPtr > tPVector
A vector of transient pointers to Particle objects.
Definition:
Containers.h:82
ThePEG::BaseClassTrait
BaseClassTraits describes the base classes of the templated class.
Definition:
ClassTraits.h:156
ThePEG::BaseClassTrait::NthBase
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition:
ClassTraits.h:161
ThePEG::ClassTraitsBase::className
static string className()
Return the name of class T.
Definition:
ClassTraits.h:66
ThePEG::ClassTraitsType
ClassTraitsType is an empty, non-polymorphic, base class.
Definition:
ClassTraits.h:30
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6