LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
KHitBase.h File Reference

Base class for Kalman filter measurement. More...

#include <iosfwd>
#include <memory>
#include "lardata/RecoObjects/KETrack.h"
#include "lardata/RecoObjects/Surface.h"

Go to the source code of this file.

Classes

class  trkf::KHitBase
 

Namespaces

 trkf
 

Functions

std::ostream & trkf::operator<< (std::ostream &out, const KHitBase &trk)
 Output operator. More...
 

Detailed Description

Base class for Kalman filter measurement.

Author
H. Greenlee

This class represents a general measurement on a surface.

This class includes the following attribute.

  1. Measurement surface.
  2. Measurement plane index.
  3. Prediction surface.
  4. Prediction distance.
  5. Unique id.

Each constructor initializes the unique id to zero. Derived classes may set the unique id if they wish (the unique id is protected).

This class has the following pure virtual methods.

  1. Prediction method, in which the predicted track object (state vector + error matrix) is passed into the measurement to generate a prediction in the measurement coordinate system.
  2. Accessor for incremental chisquare.
  3. Update method, in which the track object is passed in and is updated according to the Kalman updating formula.

This class does not include in its interface anything having to do with concrete measurements, predictions, or residuals, or anything with a variable dimension.

This class has two surface data members. Member fMeasSurf is the idealized measurement surface, which is set on construction and never changes. Member fPredSurf is used to remember the track surface used to make a prediction. It is updated (by derived class) every time method predict is called.

As with KTrack, the surface attributes are polymorphic, and is held via std::shared_ptr type of smart pointer, which handles memory management using reference-counted shared ownership.

Definition in file KHitBase.h.