MarlinTPC  1.2.0
Public Member Functions | Protected Member Functions | List of all members
marlintpc::MagneticField Class Referenceabstract

MagneticField : A base interface to a magnetic field. More...

#include <MagneticField.h>

Inheritance diagram for marlintpc::MagneticField:
marlintpc::Field marlintpc::Cylindrical2DMagneticField marlintpc::Cylindrical3DMagneticField

Public Member Functions

 MagneticField (std::string field_typename)
 constructor
 
virtual ~MagneticField ()
 destructor
 
virtual Fieldnew_field (void)=0
 returns a new field... More...
 
virtual bool construct (EVENT::LCCollection *)=0
 constructs the field from an LCCollection of data objects (could be anything... More...
 
virtual CLHEP::Hep3Vector get_field_value (const CLHEP::Hep3Vector &)
 gets the field value at a specified point
 
virtual CLHEP::Hep3Vector get_field_error ()
 gets the field error. More...
 
void set_translation (const CLHEP::Hep3Vector &)
 sets the relative position of the origin of the field map (i.e. More...
 
void set_rotation (const double &, const double &)
 sets the orientation of the TPC with respect to the coil axis More...
 
void set_scale_factor (const double &)
 sets the scale factor for the magnetic field, i.e. More...
 
- Public Member Functions inherited from marlintpc::Field
 Field (std::string field_typename)
 constructor
 
virtual ~Field ()
 destructor
 
CLHEP::HepVector get_field_value (const CLHEP::HepVector &)
 gets the field value at a specified point (in carthesian coordinates) More...
 
std::string get_typename ()
 returns the typename of the field
 

Protected Member Functions

virtual CLHEP::Hep3Vector get_field_value_coil_coordinates (const CLHEP::Hep3Vector &)=0
 gets the field value at a point given in coil coordinates
 

Additional Inherited Members

- Protected Attributes inherited from marlintpc::Field
CLHEP::Hep3Vector _field_error
 

Detailed Description

MagneticField : A base interface to a magnetic field.

Author
Christian Grefe

Member Function Documentation

virtual bool marlintpc::MagneticField::construct ( EVENT::LCCollection *  )
pure virtual

constructs the field from an LCCollection of data objects (could be anything...

field bin values or just parameters)

Implements marlintpc::Field.

Implemented in marlintpc::Cylindrical2DMagneticField, and marlintpc::Cylindrical3DMagneticField.

CLHEP::Hep3Vector marlintpc::MagneticField::get_field_error ( )
virtual

gets the field error.

Assumes that the error is symmetric and independent of position

Reimplemented from marlintpc::Field.

virtual Field* marlintpc::MagneticField::new_field ( void  )
pure virtual

returns a new field...

similar to how the Marlin processor registration works

Implements marlintpc::Field.

Implemented in marlintpc::Cylindrical2DMagneticField, and marlintpc::Cylindrical3DMagneticField.

void marlintpc::MagneticField::set_rotation ( const double &  x_rotation,
const double &  y_rotation 
)

sets the orientation of the TPC with respect to the coil axis

sets the rotations if the coordinate system of the field map is tilted with respect to the general coordinate system.

The rotations are applied before a possible translation.

Parameters
x_rotationThe angle between the two z axis in y direction (in rad)
y_rotationThe angle between the two z axis in x direction (in rad)

Referenced by marlintpc::Cylindrical2DMagneticField::Cylindrical2DMagneticField(), marlintpc::Cylindrical2DMagneticField::init(), and MagneticField().

void marlintpc::MagneticField::set_scale_factor ( const double &  scale_factor)

sets the scale factor for the magnetic field, i.e.

higher current than during mapping

Referenced by MagneticField().

void marlintpc::MagneticField::set_translation ( const CLHEP::Hep3Vector &  vector)

sets the relative position of the origin of the field map (i.e.

center of the coil) to the general coordinate system. The translation is applied after the rotation, so when the axis of original system and coil system are parallel.

Referenced by marlintpc::Cylindrical2DMagneticField::Cylindrical2DMagneticField(), marlintpc::Cylindrical2DMagneticField::init(), and MagneticField().


The documentation for this class was generated from the following files: