MarlinTPC  1.2.0
CGAMagneticField.h
1 #ifndef CGAMAGNETICFIELD_H
2 #define CGAMAGNETICFIELD_H 1
3 
4 // MarlinTPC
5 #include "Field.h"
6 
7 // CLHEP
8 #include <CLHEP/Matrix/Vector.h>
9 
10 // stl
11 #include <string>
12 #include <vector>
13 
14 namespace LCIO {
15 
16  class LCRunHeader;
17 }
18 
19 namespace EVENT {
20 
21  class LCCollection;
22  class LCRunHeader;
23 }
24 
25 namespace marlintpc {
26 
27  class CGAElectricField;
28 }
29 
30 namespace marlintpc {
31 
36 class CGAMagneticField: public Field {
37 
38 public:
41  CGAMagneticField ( lcio::LCRunHeader *run_header );
42 
45  virtual ~CGAMagneticField();
46 
49  virtual Field *new_field( void );
50 
53  virtual bool construct( lcio::LCCollection * );
54 
57  CLHEP::Hep3Vector get_field_value( const CLHEP::Hep3Vector & );
58 
61  std::string get_typename();
62 
63  // go give access to the _cga_initialized variable
64  friend class CGAElectricField;
65 
66 protected:
67 
68 private:
69 
70  #ifdef USE_CGA
71 
73  static bool _cga_initialized;
74  #endif
75 
76 };
77 
78 } // namespace marlintpc
79 
80 #endif // CGAMAGNETICFIELD_H
virtual bool construct(lcio::LCCollection *)
constructs the field from an LCCollection of data objects (could be anything...
std::string get_typename()
returns the typename of the field
Field : A base interface to an electric or magnetic field.
Definition: Field.h:22
CGAMagneticField : A magnetic field which gets it's values from Mokka through CGA (Common Geometry Ac...
Definition: CGAMagneticField.h:36
CLHEP::Hep3Vector get_field_value(const CLHEP::Hep3Vector &)
gets the field value at a specified point
GEARElectricField : An electric field which gets it's values from Mokka through CGA (Common Geometry ...
Definition: CGAElectricField.h:31
virtual Field * new_field(void)
returns a new field...
virtual ~CGAMagneticField()
destructor
CGAMagneticField(lcio::LCRunHeader *run_header)
constructor