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 
30 
31 class TStopwatch;
32 class TBits;
33 
34 using std::vector;
35 
36 namespace genie {
37 
39 
40 public :
42  EventGenerator(string config);
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_
Cross Section Calculation Interface.
GHepRecordHistory fRecHistory
event record history
Holds the history of the GHEP event record as it being modified by the processing steps of an event g...
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
TBits * fFiltUnphysMask
mask for allowing unphysical events to pass through (if requested)
const InteractionListGeneratorI * IntListGenerator(void) const
Defines the InteractionListGeneratorI interface. Concrete implementations of this interface generate ...
Encapsulates a full ordered list of (is the aggregate of) concrete EventGeneratorI implementations th...
Defines the EventGeneratorI interface.
struct vector vector
void ProcessEventRecord(GHepRecord *event_rec) const
vector< double > * fEVGTime
module timing info
TStopwatch * fWatch
stopwatch for module timing
void Configure(const Registry &config)
GVldContext * fVldContext
validity context
static Config * config
Definition: config.cpp:1054
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
vector< const EventRecordVisitorI * > * fEVGModuleVec
list of modules
const GVldContext & ValidityContext(void) const
const XSecAlgorithmI * CrossSectionAlg(void) const
GENIE&#39;s GHEP MC event record.
Definition: GHepRecord.h:45
const InteractionListGeneratorI * fIntListGen
generates list of handled interactions
Validity Context for an Event Generator.
Definition: GVldContext.h:37
const XSecAlgorithmI * fXSecModel
xsec model for events handled by thread