MarlinTPC  1.2.0
ConstantUnidirectionalMagneticField.h
1 #ifndef CONSTANTUNIDIRECTIONALMAGNETICFIELD_H
2 #define CONSTANTUNIDIRECTIONALMAGNETICFIELD_H 1
3 
4 // stl
5 #include <string>
6 #include <vector>
7 
8 // CLHEP
9 
10 // MarlinTPC
11 #include "Field.h"
12 
13 namespace EVENT {
14 
15  class LCCollection;
16 }
17 
18 namespace marlintpc {
19 
25 
26 public:
30 
34 
37  virtual Field *new_field( void );
38 
41  virtual bool construct( EVENT::LCCollection * );
42 
45  CLHEP::Hep3Vector get_field_value( const CLHEP::Hep3Vector & );
46 
49  std::string get_typename();
50 
51  struct FieldMapEntry {
52 
53  double _z_min;
54  double _z_max;
55  double _r_min;
56  double _r_max;
57 
58  double _field_x;
59  double _field_y;
60  double _field_z;
61  };
62 
63 protected:
64 
65 private:
66 
69  std::vector<FieldMapEntry> _field_map;
70 };
71 
72 } // namespace marlintpc
73 
74 #endif // CONSTANTUNIDIRECTIONALMAGNETICFIELD_H
Field : A base interface to an electric or magnetic field.
Definition: Field.h:22
std::string get_typename()
returns the typename of the field
Definition: ConstantUnidirectionalMagneticField.h:51
ConstantUnidirectionalMagneticField : A constant magnetic field.
Definition: ConstantUnidirectionalMagneticField.h:24
virtual bool construct(EVENT::LCCollection *)
constructs the field from an LCCollection of data objects (could be anything...
Definition: ConstantUnidirectionalMagneticField.cc:40
virtual Field * new_field(void)
returns a new field...
Definition: ConstantUnidirectionalMagneticField.cc:35
virtual ~ConstantUnidirectionalMagneticField()
destructor
Definition: ConstantUnidirectionalMagneticField.cc:30
ConstantUnidirectionalMagneticField()
constructor
Definition: ConstantUnidirectionalMagneticField.cc:23
CLHEP::Hep3Vector get_field_value(const CLHEP::Hep3Vector &)
gets the field value at a specified point
Definition: ConstantUnidirectionalMagneticField.cc:67