thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
NLOHepMCFile.h
1// -*- C++ -*-
2#ifndef ThePEG_NLOHepMCFile_H
3#define ThePEG_NLOHepMCFile_H
4//
5// This is the declaration of the NLOHepMCFile class.
6//
7#include <config.h>
8#include "ThePEG/Handlers/AnalysisHandler.h"
9#include "ThePEG/Config/HepMCHelper.h"
10namespace ThePEG {
11
19
20public:
21
28
34
35public:
36
56 virtual void analyze(tEventPtr event, long ieve, int loop, int state);
57
61 HepMC::GenEvent * makeEvent(tEventPtr event, tSubProPtr sub, long no,
62 Energy eUnit, Length lUnit,
63 CrossSection xsec, CrossSection xsecErr) const;
64
66
67public:
68
76
82 void persistentInput(PersistentIStream & is, int version);
84
91 static void Init();
92
93protected:
94
101 virtual void doinitrun();
102
107 virtual void dofinish();
109
110protected:
111
118 virtual IBPtr clone() const;
119
124 virtual IBPtr fullclone() const;
126
127
128// If needed, insert declarations of virtual function defined in the
129// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
130
131private:
132
137
142
146 string _filename;
147
148#ifdef HAVE_HEPMC_ROOTIO
152 string _ttreename;
153
157 string _tbranchname;
158
159#endif
163#ifdef HAVE_HEPMC3
164 HepMC::Writer *_hepmcio;
165#else
166 HepMC::IO_BaseClass *_hepmcio;
167#endif
168
172 ofstream _hepmcdump;
173
178
182 unsigned int _geneventPrecision;
183
187 unsigned long _eventNumber;
188
189private:
190
196
197};
198
199}
200
201#endif /* ThePEG_NLOHepMCFile_H */
The AnalysisHandler is the base class of all analysis objects which may be handled by the FullEventGe...
InitState state() const
Return the state of initialization of this object.
Write hard sub processes or sub process groups to HepMC.
Definition: NLOHepMCFile.h:18
virtual void dofinish()
Finalize this object.
HepMC::GenEvent * makeEvent(tEventPtr event, tSubProPtr sub, long no, Energy eUnit, Length lUnit, CrossSection xsec, CrossSection xsecErr) const
Produca a HepMC event for the given subprocess.
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.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
unsigned long _eventNumber
Count events.
Definition: NLOHepMCFile.h:187
int _format
The HepMC format.
Definition: NLOHepMCFile.h:141
virtual IBPtr clone() const
Make a simple clone of this object.
virtual void doinitrun()
Initialize this object.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
string _filename
The HepMC filename.
Definition: NLOHepMCFile.h:146
NLOHepMCFile()
The default constructor.
NLOHepMCFile(const NLOHepMCFile &)
The copy constructor.
int _unitchoice
Selector for the choice of units.
Definition: NLOHepMCFile.h:177
unsigned int _geneventPrecision
Choice of output precision in GenEvent format.
Definition: NLOHepMCFile.h:182
virtual void analyze(tEventPtr event, long ieve, int loop, int state)
Analyze a given Event.
HepMC::Writer * _hepmcio
The HepMC I/O handler.
Definition: NLOHepMCFile.h:164
NLOHepMCFile & operator=(const NLOHepMCFile &)=delete
The assignment operator is private and must never be called.
ofstream _hepmcdump
The HepMC dump file.
Definition: NLOHepMCFile.h:172
long _remnantId
The PDG ID to be used for remnants.
Definition: NLOHepMCFile.h:136
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
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition: RCPtr.h:519
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28