Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
Generator
src
Framework
EventGen
EventGenerator.h
Go to the documentation of this file.
1
//____________________________________________________________________________
2
/*!
3
4
\class genie::EventGenerator
5
6
\brief Encapsulates a full ordered list of (is the aggregate of) concrete
7
EventGeneratorI implementations that must act on the EventRecord
8
to generate an event. Each of these implementations corresponds to
9
a single processing step.
10
11
Is a concrete implementation of the EventGeneratorI interface.
12
13
\author Costas Andreopoulos <constantinos.andreopoulos \at cern.ch>
14
University of Liverpool & STFC Rutherford Appleton Laboratory
15
16
\created October 03, 2004
17
18
\cpright Copyright (c) 2003-2020, The GENIE Collaboration
19
For the full text of the license visit http://copyright.genie-mc.org
20
*/
21
//____________________________________________________________________________
22
23
#ifndef _EVENT_GENERATOR_H_
24
#define _EVENT_GENERATOR_H_
25
26
#include <vector>
27
28
#include "
Framework/EventGen/EventGeneratorI.h
"
29
#include "
Framework/GHEP/GHepRecordHistory.h
"
30
31
class
TStopwatch;
32
class
TBits;
33
34
using
std::vector
;
35
36
namespace
genie
{
37
38
class
EventGenerator
:
public
EventGeneratorI
{
39
40
public
:
41
EventGenerator
();
42
EventGenerator
(
string
config
);
43
~EventGenerator
();
44
45
//-- implement the original EventRecordVisitorI interface
46
void
ProcessEventRecord
(
GHepRecord
* event_rec)
const
;
47
48
//-- implement the extensions to the EventRecordVisitorI interface
49
const
GVldContext
&
ValidityContext
(
void
)
const
;
50
const
InteractionListGeneratorI
*
IntListGenerator
(
void
)
const
;
51
const
XSecAlgorithmI
*
CrossSectionAlg
(
void
)
const
;
52
53
//-- override the Algorithm::Configure methods to load configuration
54
// data to private data members
55
void
Configure
(
const
Registry
& config);
56
void
Configure
(
string
param_set);
57
58
private
:
59
60
void
Init
(
void
);
61
void
LoadConfig
(
void
);
62
63
//-- private data members
64
vector<const EventRecordVisitorI *> *
fEVGModuleVec
;
///< list of modules
65
vector<double>
*
fEVGTime
;
///< module timing info
66
const
XSecAlgorithmI
*
fXSecModel
;
///< xsec model for events handled by thread
67
const
InteractionListGeneratorI
*
fIntListGen
;
///< generates list of handled interactions
68
GVldContext
*
fVldContext
;
///< validity context
69
TStopwatch *
fWatch
;
///< stopwatch for module timing
70
TBits *
fFiltUnphysMask
;
///< mask for allowing unphysical events to pass through (if requested)
71
mutable
GHepRecordHistory
fRecHistory
;
///< event record history
72
};
73
74
}
// genie namespace
75
76
#endif // _EVENT_GENERATOR_H_
genie::XSecAlgorithmI
Cross Section Calculation Interface.
Definition:
XSecAlgorithmI.h:27
genie::EventGenerator::EventGenerator
EventGenerator()
Definition:
EventGenerator.cxx:42
vector< double >
genie::EventGenerator::fRecHistory
GHepRecordHistory fRecHistory
event record history
Definition:
EventGenerator.h:71
genie::GHepRecordHistory
Holds the history of the GHEP event record as it being modified by the processing steps of an event g...
Definition:
GHepRecordHistory.h:40
genie
THE MAIN GENIE PROJECT NAMESPACE
Definition:
AlgCmp.h:25
genie::EventGenerator::fFiltUnphysMask
TBits * fFiltUnphysMask
mask for allowing unphysical events to pass through (if requested)
Definition:
EventGenerator.h:70
genie::EventGenerator::IntListGenerator
const InteractionListGeneratorI * IntListGenerator(void) const
Definition:
EventGenerator.cxx:197
genie::InteractionListGeneratorI
Defines the InteractionListGeneratorI interface. Concrete implementations of this interface generate ...
Definition:
InteractionListGeneratorI.h:31
EventGeneratorI.h
genie::EventGenerator
Encapsulates a full ordered list of (is the aggregate of) concrete EventGeneratorI implementations th...
Definition:
EventGenerator.h:38
genie::EventGeneratorI
Defines the EventGeneratorI interface.
Definition:
EventGeneratorI.h:38
vector
struct vector vector
genie::EventGenerator::ProcessEventRecord
void ProcessEventRecord(GHepRecord *event_rec) const
Definition:
EventGenerator.cxx:64
genie::EventGenerator::fEVGTime
vector< double > * fEVGTime
module timing info
Definition:
EventGenerator.h:65
genie::EventGenerator::fWatch
TStopwatch * fWatch
stopwatch for module timing
Definition:
EventGenerator.h:69
genie::EventGenerator::Configure
void Configure(const Registry &config)
Definition:
EventGenerator.cxx:207
genie::EventGenerator::fVldContext
GVldContext * fVldContext
validity context
Definition:
EventGenerator.h:68
config
static Config * config
Definition:
config.cpp:1054
genie::EventGenerator::Init
void Init(void)
Definition:
EventGenerator.cxx:227
genie::EventGenerator::LoadConfig
void LoadConfig(void)
Definition:
EventGenerator.cxx:255
genie::Registry
A registry. Provides the container for algorithm configuration parameters.
Definition:
Registry.h:65
genie::EventGenerator::fEVGModuleVec
vector< const EventRecordVisitorI * > * fEVGModuleVec
list of modules
Definition:
EventGenerator.h:64
genie::EventGenerator::~EventGenerator
~EventGenerator()
Definition:
EventGenerator.cxx:54
genie::EventGenerator::ValidityContext
const GVldContext & ValidityContext(void) const
Definition:
EventGenerator.cxx:222
genie::EventGenerator::CrossSectionAlg
const XSecAlgorithmI * CrossSectionAlg(void) const
Definition:
EventGenerator.cxx:202
genie::GHepRecord
GENIE's GHEP MC event record.
Definition:
GHepRecord.h:45
genie::EventGenerator::fIntListGen
const InteractionListGeneratorI * fIntListGen
generates list of handled interactions
Definition:
EventGenerator.h:67
genie::GVldContext
Validity Context for an Event Generator.
Definition:
GVldContext.h:37
genie::EventGenerator::fXSecModel
const XSecAlgorithmI * fXSecModel
xsec model for events handled by thread
Definition:
EventGenerator.h:66
GHepRecordHistory.h
Generated by
1.8.11