thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
HepMC3File.h
1// -*- C++ -*-
2//
3// HepMC3File.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_HepMC3File_H
10#define THEPEG_HepMC3File_H
11//
12// This is the declaration of the HepMC3File class.
13//
14#include <iostream>
15#include <fstream>
16#include "ThePEG/Handlers/AnalysisHandler.h"
17#include "ThePEG/Repository/CurrentGenerator.h"
18#include "ThePEG/Repository/EventGenerator.h"
19#include "HepMC/IO/IO_Base.h"
20
21namespace ThePEG {
22
30
31public:
32
39
45
46public:
47
67 virtual void analyze(tEventPtr event, long ieve, int loop, int state);
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
113protected:
114
121 virtual void doinitrun();
122
127 virtual void dofinish();
129
130private:
131
137
142 HepMC3File & operator=(const HepMC3File &) = delete;
143
144private:
145
150
154 string _filename;
155
159 HepMC::IO_Base *_hepmcio;
160
165
169 unsigned int _geneventPrecision;
170};
171
172}
173
174#include "ThePEG/Utilities/ClassTraits.h"
175
176namespace ThePEG {
177
182template <>
183struct BaseClassTrait<HepMC3File,1> {
185 typedef AnalysisHandler NthBase;
186};
187
190template <>
191struct ClassTraits<HepMC3File>
192 : public ClassTraitsBase<HepMC3File> {
194 static string className() { return "ThePEG::HepMCFile"; }
198 static string library() { return "HepMCAnalysis.so"; }
199};
200
203}
204
205#endif /* THEPEG_HepMC3File_H */
The AnalysisHandler is the base class of all analysis objects which may be handled by the FullEventGe...
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
The HepMC3File class outputs ThePEG events in HepMC format.
Definition: HepMC3File.h:29
HepMC::IO_Base * _hepmcio
The HepMC I/O handler.
Definition: HepMC3File.h:159
HepMC3File & operator=(const HepMC3File &)=delete
The assignment operator is private and must never be called.
virtual void doinitrun()
Initialize this object.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
static void Init()
The standard Init function used to initialize the interfaces.
HepMC3File()
The default constructor.
HepMC3File(const HepMC3File &)
The copy constructor.
string _filename
The HepMC filename.
Definition: HepMC3File.h:154
long _eventNumber
Last event that should be written out as HepMC format.
Definition: HepMC3File.h:149
static ClassDescription< HepMC3File > initHepMC3File
The static object used to initialize the description of this class.
Definition: HepMC3File.h:136
virtual void analyze(tEventPtr event, long ieve, int loop, int state)
Analyze a given Event.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
int _unitchoice
Selector for the choice of units.
Definition: HepMC3File.h:164
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.
unsigned int _geneventPrecision
Choice of output precision in GenEvent format.
Definition: HepMC3File.h:169
virtual void dofinish()
Finalize this object.
InitState state() const
Return the state of initialization of this object.
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
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
static string library()
The name of a file containing the dynamic library where the class T is implemented.
Definition: ClassTraits.h:85