// ClusterFindAll.h #ifndef ClusterFindAll_H #define ClusterFindAll_H // This a cluster finder which simply returns all the clusters // for either request. The clusters are stored in the same // format in which they are returned. // // The method for finding clusters near a track is virtual so // it may be overridden in a subclass. // #include "ClusterFindManager.h" #include "trfbase/SurfacePtr.h" namespace trf { class ClusterFindAll : public ClusterFindManager { public: // static methods // Return the type name. static TypeName get_type_name() { return "ClusterFindAll"; } // Return the creator. static ObjCreator get_creator(); // Return the type. static Type get_static_type() { return get_creator(); } private: // attributes // surface SurfacePtr _psrf; // list of clusters ClusterList _clusters; private: // attributes // output stream void ostr(std::ostream& stream) const; public: // methods // constructor from a surface ClusterFindAll(const SurfacePtr& psrf); // destructor virtual ~ClusterFindAll(); // Return the type. Type get_type() const { return get_static_type(); } // Write object data. ObjData write_data() const; // add a cluster int add_cluster(const ClusterPtr& pclu); // drop the clusters void drop_clusters(); // Return the surface. const Surface& get_surface() const { return *_psrf; }; // Return all the clusters associated with this surface. ClusterList get_clusters() const; // Return all the clusters near the specified track at the surface. virtual ClusterList get_clusters(const ETrack& tre) const; }; } // end namespace trf #endif