Classes | Namespaces | Functions
Surface.h File Reference

Base class for Kalman filter surface. More...

#include <iosfwd>
#include "lardata/RecoObjects/KalmanLinearAlgebra.h"

Go to the source code of this file.

Classes

class  trkf::Surface
 

Namespaces

 trkf
 

Functions

std::ostream & trkf::operator<< (std::ostream &out, const Surface &surf)
 Output operator. More...
 

Detailed Description

Base class for Kalman filter surface.

Author
H. Greenlee

Surfaces may have the following distinct uses in the context of the Kalman filter.

  1. Destination for track propagation.
  2. Define a local 3D coordinate systems.
  3. Have a standard set of track parameters, which are meaningful in the local coordinate system.

Larsoft global coordinates are (x,y,z).

Surface local coordinates are called (u,v,w), where w=0 is the surface, and (u,v) are the local coordinates within the surface.

Notes about track and surface directions:

  1. Surfaces are in general orientable, which means that a track that is located at a surface can be propagating in the forward direction with respect to the surface (dw/ds > 0) or in the backward direction (dw/ds < 0).
  2. For some kinds surfaces and track parameters, the track direction is implied by the track parameters themselves. For others it isn't, and must be supplied externally.
  3. A surface can be queried to find the track direction implied by track parameters, (via method Surface::getDirection), with result returned via enum TrackDirection (possible values FORWARD, BACKWARD, UNKNOWN).
  4. In all situations, a direction implied by track parameters has precedence over an externally supplied one.

This class doesn't have any attributes of its own, but it provides several virtual methods that derived classes can or must override.

Definition in file Surface.h.