// FullFitKalman.h #ifndef FullFitKalman_H #define FullFitKalman_H // Full track fit using Kalman filter. The propagator is specified // when the fitter is constructed. The starting surface, vector and // error matrix are taken from the input track. Errors should be // increased appropriately if the fitter is applied repeatedly to the // a single track. #include #include "trfbase/PropagatorPtr.h" #include "FullFitter.h" #include "ptr/Ptr.h" #include "AddFitKalman.h" namespace trf { class FullFitKalman : public FullFitter { public: // static methods // Return the type name. static TypeName get_type_name() { return "FullFitKalman"; } // Return the creator. static ObjCreator get_creator(); // Return the type. static Type get_static_type() { return get_creator(); } private: // The propagator. PropagatorPtr _pprop; // The add fitter. AddFitKalman _addfit; private: // output stream void ostr(std::ostream& stream) const; public: // constructor FullFitKalman(const PropagatorPtr& prop); // destructor virtual ~FullFitKalman(); // Return the type. Type get_type() const { return get_static_type(); } // Write object data. ObjData write_data() const; // Return the propagator. const PropagatorPtr get_propagator() const { return _pprop; } // Fit the specified track. int fit(HTrack& trh) const; }; } // end namespace trf #endif