thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
NLOHepMC3File.h
1 // -*- C++ -*-
2 #ifndef ThePEG_NLOHepMC3File_H
3 #define ThePEG_NLOHepMC3File_H
4 //
5 // This is the declaration of the NLOHepMC3File class.
6 //
7 
8 #include "ThePEG/Handlers/AnalysisHandler.h"
9 #include "HepMC/IO/IO_Base.h"
10 #include "ThePEG/Config/HepMCHelper.h"
11 
12 namespace ThePEG {
13 
21 
22 public:
23 
29  NLOHepMC3File();
30 
35 
39  virtual ~NLOHepMC3File() {}
41 
42 public:
43 
63  virtual void analyze(tEventPtr event, long ieve, int loop, int state);
64 
68  HepMC::GenEvent * makeEvent(tEventPtr event, tSubProPtr sub, long no,
69  Energy eUnit, Length lUnit,
70  CrossSection xsec, CrossSection xsecErr) const;
71 
73 
74 public:
75 
82  void persistentOutput(PersistentOStream & os) const;
83 
89  void persistentInput(PersistentIStream & is, int version);
91 
98  static void Init();
99 
100 protected:
101 
108  virtual void doinitrun();
109 
114  virtual void dofinish();
116 
117 protected:
118 
125  virtual IBPtr clone() const;
126 
131  virtual IBPtr fullclone() const;
133 
134 
135 // If needed, insert declarations of virtual function defined in the
136 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
137 
138 private:
139 
144 
148  string _filename;
149 
153  HepMC::IO_Base *_hepmcio;
154 
159 
163  unsigned int _geneventPrecision;
164 
168  unsigned long _eventNumber;
169 
170 private:
171 
176  NLOHepMC3File & operator=(const NLOHepMC3File &) = delete;
177 
178 };
179 
180 }
181 
182 #endif /* ThePEG_NLOHepMC3File_H */
static void Init()
The standard Init function used to initialize the interfaces.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual void doinitrun()
Initialize this object.
Write hard sub processes or sub process groups to HepMC.
Definition: NLOHepMC3File.h:20
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual void dofinish()
Finalize this object.
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition: RCPtr.h:519
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
unsigned int _geneventPrecision
Choice of output precision in GenEvent format.
virtual ~NLOHepMC3File()
The destructor.
Definition: NLOHepMC3File.h:39
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
The AnalysisHandler is the base class of all analysis objects which may be handled by the FullEventGe...
long _remnantId
The PDG ID to be used for remnants.
InitState state() const
Return the state of initialization of this object.
NLOHepMC3File & operator=(const NLOHepMC3File &)=delete
The assignment operator is private and must never be called.
virtual IBPtr clone() const
Make a simple clone of this object.
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
string _filename
The HepMC filename.
HepMC::IO_Base * _hepmcio
The HepMC I/O handler.
NLOHepMC3File()
The default constructor.
int _unitchoice
Selector for the choice of units.
virtual void analyze(tEventPtr event, long ieve, int loop, int state)
Analyze a given Event.
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.
unsigned long _eventNumber
Count events.