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 <costas.andreopoulos \at stfc.ac.uk>
17  University of Liverpool & STFC Rutherford Appleton Lab
18 
19 \created November 22, 2004
20 
21 \cpright Copyright (c) 2003-2019, The GENIE Collaboration
22  For the full text of the license visit http://copyright.genie-mc.org
23  or see $GENIE/LICENSE
24 */
25 //____________________________________________________________________________
26 
27 
28 #ifndef _EVENT_GENERATOR_I_H_
29 #define _EVENT_GENERATOR_I_H_
30 
33 
34 namespace genie {
35 
36 class InteractionListGeneratorI;
37 class XSecAlgorithmI;
38 
40 
41 public :
42 
43  virtual ~EventGeneratorI();
44 
45  //-- define an extension to the public EventRecordVisitorI interface
46  virtual const GVldContext & ValidityContext (void) const = 0;
47  virtual const InteractionListGeneratorI * IntListGenerator (void) const = 0;
48  virtual const XSecAlgorithmI * CrossSectionAlg (void) const = 0;
49 
50 protected:
51 
52  //-- dummy ctors & dtor
54  EventGeneratorI(string name);
55  EventGeneratorI(string name, string config);
56 };
57 
58 } // genie namespace
59 
60 #endif // _EVENT_GENERATOR_I_H_
Cross Section Calculation Interface.
const XML_Char * name
Definition: expat.h:151
THE MAIN GENIE PROJECT NAMESPACE
Definition: GeneratorBase.h:8
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.
Definition: config.py:1
virtual const GVldContext & ValidityContext(void) const =0
virtual const XSecAlgorithmI * CrossSectionAlg(void) const =0
Validity Context for an Event Generator.
Definition: GVldContext.h:38