GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 <c.andreopoulos \at cern.ch>
17  University of Liverpool
18 
19 \created November 22, 2004
20 
21 \cpright Copyright (c) 2003-2024, 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_
Cross Section Calculation Interface.
Defines the InteractionListGeneratorI interface. Concrete implementations of this interface generate ...
Defines the EventRecordVisitorI interface. Concrete implementations of this interface use the &#39;Visito...
Defines the EventGeneratorI interface.
virtual const GVldContext & ValidityContext(void) const =0
virtual const XSecAlgorithmI * CrossSectionAlg(void) const =0
virtual const InteractionListGeneratorI * IntListGenerator(void) const =0
Validity Context for an Event Generator.
Definition: GVldContext.h:37