GEMC  2.3
Geant4 Monte-Carlo Framework
fieldFactory.h
Go to the documentation of this file.
1 #ifndef FIELD_FACTORY_H
2 #define FIELD_FACTORY_H
3 
4 // C++ headers
5 #include <map>
6 #include <iostream>
7 using namespace std;
8 
9 // gemc headers
10 #include "field.h"
11 
12 
14 {
15  public:
16  virtual ~fieldFactory(){}
17 
18  virtual bool isEligible(string) = 0; // check if field object contain a valid gfield XML header
19  virtual gfield loadField(string, goptions) = 0; // load field definitions
20  virtual void loadFieldMap(gMappedField*, double) = 0; // load field map. This is a dispatcher function for the various types of fields below
21 
22  virtual void loadFieldMap_Dipole(gMappedField*, double) = 0; // load 1D dipole field depending on 2 coordinates (transverse and longitudinal)
23  virtual void loadFieldMap_Cylindrical(gMappedField*, double) = 0; // load phi-symmetric field depending on 2 coordinates (transverse and longitudinal)
24 
25  string factoryType;
26 
27  void initFactory(string ft)
28  {
29  cout << " >> gemc Init: " << ft << " Field Factory is Initialized " << endl;
30  factoryType = ft;
31  }
32 };
33 
34 typedef fieldFactory *(*fieldFactoryInMap)(); // Define fieldFactoryInMap as a pointer to a function that returns a pointer
35 
36 fieldFactory *getFieldFactory(map<string, fieldFactoryInMap> *, string); // returns fieldFactory Function from Factory Map
37 
38 map<string, fieldFactoryInMap> registerFieldFactories(); // Registers FieldFactory in Factory Map
39 
40 map<string, gfield> loadAllFields(map<string, fieldFactoryInMap>, goptions opts ); // returns a map of all available gfields
41 
42 #endif
STL namespace.
string factoryType
Definition: fieldFactory.h:25
virtual ~fieldFactory()
Definition: fieldFactory.h:16
fieldFactory * getFieldFactory(map< string, fieldFactoryInMap > *, string)
Definition: fieldFactory.cc:7
map< string, gfield > loadAllFields(map< string, fieldFactoryInMap >, goptions opts)
Definition: fieldFactory.cc:30
Definition: field.h:52
map< string, fieldFactoryInMap > registerFieldFactories()
Definition: fieldFactory.cc:19
void initFactory(string ft)
Definition: fieldFactory.h:27