// PropNull.h #ifndef PropNull_H #define PropNull_H // This propagator does not modify the track. It simple checks // if the track surface matches the requested surface and, if so, // returns success. // #include "Propagator.h" namespace trf { class PropNull : public Propagator { public: // static methods // Return the type name. static TypeName get_type_name() { return "PropNull"; } // Return the creator. static ObjCreator get_creator(); // Return the type. static Type get_static_type() { return get_creator(); } // Output stream. void ostr(std::ostream& stream) const; public: // constructor PropNull(); // destructor ~PropNull(); // Return the type. Type get_type() const { return get_static_type(); } // Write object data. ObjData write_data() const; // Clone, i.e. create a copy on the free store. Propagator* new_propagator() const; // propagate a track without error PropStat vec_prop(VTrack& trv, const Surface& srf, TrackDerivative* pder =0) const; // propagate a track without error in the specified direction PropStat vec_dir_prop(VTrack& trv, const Surface& srf, PropDir dir, TrackDerivative* pder =0) const; // propagate a track with error PropStat err_prop(ETrack& tre, const Surface& srf, TrackDerivative* pder =0) const; // propagate a track with error in the specified direction PropStat err_dir_prop(ETrack& tre, const Surface& srf, PropDir dir, TrackDerivative* pder =0) const; }; } // end namespace trf #endif