// CheckHitCount.cpp #include "CheckHitCount.h" #include "objstream/ObjData.hpp" #include "objstream/ObjTable.hpp" #include "trfutil/trfstream.h" #include "trffit/MTrack.h" using std::ostream; using trf::MTrack; using trf::CheckHitCount; //********************************************************************** // Free functions. //********************************************************************** namespace { // Creator. ObjPtr create(const ObjData& data) { assert( data.get_object_type() == "CheckHitCount" ); int min_nhit = data.get_int("min_hit_count"); return ObjPtr( new CheckHitCount(min_nhit) ); } } //********************************************************************** // Member functions. //********************************************************************** // Output stream. void CheckHitCount::ostr(ostream& stream) const { stream << begin_object; stream << "Check number of hits >= " << _min_nhit; stream << end_object; } //********************************************************************** // Constructor. CheckHitCount::CheckHitCount(int min_nhit) : _min_nhit(min_nhit) { } //********************************************************************** // Return the creator. ObjCreator CheckHitCount::get_creator() { return create; } //********************************************************************** // Write the object data. ObjData CheckHitCount::write_data() const { ObjData data( get_type_name() ); data.add_int( "min_hit_count", static_cast (get_min_hit_count()) ); return data; } //********************************************************************** // return track status. bool CheckHitCount::status(const MTrack& trm) const { return trm.get_hits().size() >= _min_nhit; } //**********************************************************************