thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
Repository
MultiEventGenerator.h
1
// -*- C++ -*-
2
//
3
// MultiEventGenerator.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_MultiEventGenerator_H
10
#define ThePEG_MultiEventGenerator_H
11
// This is the declaration of the MultiEventGenerator class.
12
13
#include "EventGenerator.h"
14
15
namespace
ThePEG
{
16
34
class
MultiEventGenerator
:
public
EventGenerator
{
35
36
public
:
37
43
MultiEventGenerator
():
firstSubrun
(0),
lastSubrun
(0) {}
44
48
virtual
~MultiEventGenerator
();
50
57
virtual
void
addTag
(
string
tag);
58
59
protected
:
60
67
virtual
void
doGo
(
long
next,
long
maxevent,
bool
tics);
69
78
string
addInterface
(
string
);
79
85
string
addRndInterface
(
string
);
86
90
string
addInterface
(
string
,
bool
rnd);
91
92
98
string
removeInterface
(
string
);
100
104
string
heading
(
long
,
const
vector<const InterfaceBase *> &,
string
)
const
;
105
110
RandomGenerator
&
randomArg
()
const
{
111
return
theSeparateRandom
? *
theSeparateRandom
:
random
();
112
}
113
114
public
:
115
116
123
void
persistentOutput
(
PersistentOStream
& os)
const
;
124
130
void
persistentInput
(
PersistentIStream
& is,
int
version);
132
136
static
void
Init
();
137
138
protected
:
139
146
virtual
IBPtr
clone
()
const
;
147
152
virtual
IBPtr
fullclone
()
const
;
154
155
protected
:
156
168
virtual
void
rebind
(
const
TranslationMap
& trans);
169
175
virtual
IVector
getReferences
();
177
178
private
:
179
181
typedef
vector<string>
StringVector
;
182
186
IVector
theObjects
;
187
192
StringVector
theInterfaces
;
193
198
StringVector
thePosArgs
;
199
203
vector<StringVector>
theValues
;
204
208
int
firstSubrun
;
209
213
int
lastSubrun
;
214
219
RanGenPtr
theSeparateRandom
;
220
221
private
:
222
226
static
ClassDescription<MultiEventGenerator>
initMultiEventGenerator
;
227
231
MultiEventGenerator
&
operator=
(
const
MultiEventGenerator
&) =
delete
;
232
233
};
234
235
240
template
<>
241
struct
BaseClassTrait
<
MultiEventGenerator
,1>:
public
ClassTraitsType
{
243
typedef
EventGenerator
NthBase
;
244
};
245
249
template
<>
250
struct
ClassTraits<MultiEventGenerator>:
251
public
ClassTraitsBase<MultiEventGenerator> {
253
static
string
className
() {
return
"ThePEG::MultiEventGenerator"
; }
257
static
string
library
() {
return
"MultiEventGenerator.so"
; }
258
259
};
260
263
}
264
265
#endif
/* ThePEG_MultiEventGenerator_H */
ThePEG::ClassDescription
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
Definition:
ClassDescription.h:333
ThePEG::EventGenerator
The EventGenerator class manages a whole event generator run.
Definition:
EventGenerator.h:68
ThePEG::EventGenerator::random
RandomGenerator & random() const
Return a reference to the default RandomGenerator object in this run.
Definition:
EventGenerator.h:470
ThePEG::MultiEventGenerator
The MultiEventGenerator class is derived from the EventGenerator class and is capable of making sever...
Definition:
MultiEventGenerator.h:34
ThePEG::MultiEventGenerator::lastSubrun
int lastSubrun
If non zero, the last subrun to be considered.
Definition:
MultiEventGenerator.h:213
ThePEG::MultiEventGenerator::MultiEventGenerator
MultiEventGenerator()
Default constructor.
Definition:
MultiEventGenerator.h:43
ThePEG::MultiEventGenerator::addRndInterface
string addRndInterface(string)
Used to add an interface of an object a random value each run.
ThePEG::MultiEventGenerator::Init
static void Init()
Standard Init function used to initialize the interfaces.
ThePEG::MultiEventGenerator::getReferences
virtual IVector getReferences()
Return a vector of all pointers to Interfaced objects used in this object.
ThePEG::MultiEventGenerator::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG::MultiEventGenerator::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ThePEG::MultiEventGenerator::thePosArgs
StringVector thePosArgs
If the there are positional arguments to theInterfaces these are specified here.
Definition:
MultiEventGenerator.h:198
ThePEG::MultiEventGenerator::rebind
virtual void rebind(const TranslationMap &trans)
Rebind pointer to other Interfaced objects.
ThePEG::MultiEventGenerator::~MultiEventGenerator
virtual ~MultiEventGenerator()
Destructor.
ThePEG::MultiEventGenerator::randomArg
RandomGenerator & randomArg() const
A separate random number generator to be used for generating random parameter values (to ensure repro...
Definition:
MultiEventGenerator.h:110
ThePEG::MultiEventGenerator::initMultiEventGenerator
static ClassDescription< MultiEventGenerator > initMultiEventGenerator
Describe a concrete class with persistent data.
Definition:
MultiEventGenerator.h:226
ThePEG::MultiEventGenerator::addTag
virtual void addTag(string tag)
Append a tag to the run name.
ThePEG::MultiEventGenerator::addInterface
string addInterface(string)
Used to add an interface of an object which should be used with a set of different values.
ThePEG::MultiEventGenerator::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::MultiEventGenerator::heading
string heading(long, const vector< const InterfaceBase * > &, string) const
return a header for this sub-run.
ThePEG::MultiEventGenerator::theSeparateRandom
RanGenPtr theSeparateRandom
A separate random number generator to be used for generating random parameter values (to ensure repro...
Definition:
MultiEventGenerator.h:219
ThePEG::MultiEventGenerator::theInterfaces
StringVector theInterfaces
The interfaces to be modified for the corresponding objects in theObjects.
Definition:
MultiEventGenerator.h:192
ThePEG::MultiEventGenerator::addInterface
string addInterface(string, bool rnd)
Helper function for addInterface(string) and addRndInterface(string).
ThePEG::MultiEventGenerator::removeInterface
string removeInterface(string)
Used to remove an interface of an object which should be used with a set of different values.
ThePEG::MultiEventGenerator::operator=
MultiEventGenerator & operator=(const MultiEventGenerator &)=delete
Private and non-existent assignment operator.
ThePEG::MultiEventGenerator::StringVector
vector< string > StringVector
A vector of character strings.
Definition:
MultiEventGenerator.h:181
ThePEG::MultiEventGenerator::theObjects
IVector theObjects
The objects for which there are different interface settings.
Definition:
MultiEventGenerator.h:186
ThePEG::MultiEventGenerator::theValues
vector< StringVector > theValues
The arguments to be used for each of theInterfaces.
Definition:
MultiEventGenerator.h:203
ThePEG::MultiEventGenerator::doGo
virtual void doGo(long next, long maxevent, bool tics)
Run this EventGenerator session.
ThePEG::MultiEventGenerator::clone
virtual IBPtr clone() const
Make a simple clone of this object.
ThePEG::MultiEventGenerator::firstSubrun
int firstSubrun
If non zero, the first subrun to be considered.
Definition:
MultiEventGenerator.h:208
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::RandomGenerator
RandomGenerator is an interface to the CLHEP::RandomEngine classes.
Definition:
RandomGenerator.h:37
ThePEG::Rebinder
Rebinder is a class associating pairs of pointers to objects.
Definition:
Rebinder.h:27
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::IVector
vector< IBPtr > IVector
A vector of pointers to InterfacedBase objects.
Definition:
Containers.h:67
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::ClassTraitsBase::library
static string library()
The name of a file containing the dynamic library where the class T is implemented.
Definition:
ClassTraits.h:85
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