EventGeneratorI.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::EventGeneratorI
5 
6 \brief Defines the EventGeneratorI interface.
7 
8  The concrete implementations of this interface are Event Record
9  Visitors (subclasses of the EventRecordVisitorI pABC) that,
10  additionally, declare a 'Validity Context'. \n
11 
12  The declared validity context is used for selecting the appropriate
13  concrete EventGeneratorI to generate the interacion at hand using
14  the 'chain-of-responsibility' design pattern.
15 
16 \author Costas Andreopoulos <constantinos.andreopoulos \at cern.ch>
17  University of Liverpool & STFC Rutherford Appleton Laboratory
18 
19 \created November 22, 2004
20 
21 \cpright Copyright (c) 2003-2020, The GENIE Collaboration
22  For the full text of the license visit http://copyright.genie-mc.org
23 */
24 //____________________________________________________________________________
25 
26 
27 #ifndef _EVENT_GENERATOR_I_H_
28 #define _EVENT_GENERATOR_I_H_
29 
32 
33 namespace genie {
34 
35 class InteractionListGeneratorI;
36 class XSecAlgorithmI;
37 
39 
40 public :
41 
42  virtual ~EventGeneratorI();
43 
44  //-- define an extension to the public EventRecordVisitorI interface
45  virtual const GVldContext & ValidityContext (void) const = 0;
46  virtual const InteractionListGeneratorI * IntListGenerator (void) const = 0;
47  virtual const XSecAlgorithmI * CrossSectionAlg (void) const = 0;
48 
49 protected:
50 
51  //-- dummy ctors & dtor
53  EventGeneratorI(string name);
54  EventGeneratorI(string name, string config);
55 };
56 
57 } // genie namespace
58 
59 #endif // _EVENT_GENERATOR_I_H_
static QCString name
Definition: declinfo.cpp:673
Cross Section Calculation Interface.
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
Defines the InteractionListGeneratorI interface. Concrete implementations of this interface generate ...
Defines the EventRecordVisitorI interface. Concrete implementations of this interface use the &#39;Visito...
virtual const InteractionListGeneratorI * IntListGenerator(void) const =0
Defines the EventGeneratorI interface.
virtual const GVldContext & ValidityContext(void) const =0
static Config * config
Definition: config.cpp:1054
virtual const XSecAlgorithmI * CrossSectionAlg(void) const =0
Validity Context for an Event Generator.
Definition: GVldContext.h:37