GENIEGenerator
Loading...
Searching...
No Matches
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 <c.andreopoulos \at cern.ch>
14 University of Liverpool
15
16\created October 03, 2004
17
18\cpright Copyright (c) 2003-2025, 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
31class TStopwatch;
32class TBits;
33
34using std::vector;
35
36namespace genie {
37
39
40public :
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;
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
58private:
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_
const XSecAlgorithmI * CrossSectionAlg(void) const
const GVldContext & ValidityContext(void) const
TStopwatch * fWatch
stopwatch for module timing
vector< const EventRecordVisitorI * > * fEVGModuleVec
list of modules
TBits * fFiltUnphysMask
mask for allowing unphysical events to pass through (if requested)
GHepRecordHistory fRecHistory
event record history
const XSecAlgorithmI * fXSecModel
xsec model for events handled by thread
void ProcessEventRecord(GHepRecord *event_rec) const
void Configure(const Registry &config)
const InteractionListGeneratorI * IntListGenerator(void) const
vector< double > * fEVGTime
module timing info
const InteractionListGeneratorI * fIntListGen
generates list of handled interactions
GVldContext * fVldContext
validity context
Holds the history of the GHEP event record as it being modified by the processing steps of an event g...
GENIE's GHEP MC event record.
Definition GHepRecord.h:45
Validity Context for an Event Generator.
Definition GVldContext.h:37
Defines the InteractionListGeneratorI interface. Concrete implementations of this interface generate ...
A registry. Provides the container for algorithm configuration parameters.
Definition Registry.h:65
Cross Section Calculation Interface.
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25