// ------------------------------------------------------------------------- // ----- PndSdsStripClusterer header file ----- // ----- Converted 27.11.2007 from R.Jaekel by R.Kliemt ----- // ------------------------------------------------------------------------- /** PndSdsStripClusterer.h *@author R.Kliemt ** ** Calculator class to find clusters in one channel dimension ** for the MVD strip sensors **/ #ifndef PNDSDSSTRIPCLUSTERBUILDER_H #define PNDSDSSTRIPCLUSTERBUILDER_H #include #include #include #include "PndSdsDigiStrip.h" #include "PndSdsClusterStrip.h" // #include "PndSdsStripCluster.h" typedef std::map Indexpair; typedef std::map Indextriple; typedef std::map SidedTriple; typedef std::map Fullmap; class PndSdsStripClusterer { public: PndSdsStripClusterer(Int_t DigiType); virtual ~PndSdsStripClusterer(); void Reinit(); void AddDigi(Int_t sensorID, SensorSide side, Int_t timestamp, Int_t strip, Int_t iDigi); void ClearDigis() {fSortedDigis.clear();} virtual std::vector< PndSdsClusterStrip* > SearchClusters() = 0; std::vector< PndSdsClusterStrip* > GetClusters() const {return fClusters;} PndSdsClusterStrip* GetCluster(Int_t i); PndSdsClusterStrip* GetTopCluster(Int_t i); PndSdsClusterStrip* GetBotCluster(Int_t i); std::vector< Int_t > GetTopClusterIDs() const {return fTopclusters;} std::vector< Int_t > GetBotClusterIDs() const {return fBotclusters;} std::vector< Int_t > GetLeftDigiIDs() const {return fLeftDigis;} void SetDigiType(Int_t digiType){fDigiType = digiType;} protected: void AddCluster(const std::vector< Int_t >& onecluster,SensorSide side); Fullmap fSortedDigis; std::vector< Int_t > fTopclusters;// contains index to fClusterArray std::vector< Int_t > fBotclusters;// contains index to fClusterArray std::vector< Int_t > fLeftDigis; // contains index to the not assigned digis std::vector< PndSdsClusterStrip* > fClusters; Int_t fDigiType; ClassDef(PndSdsStripClusterer,3); }; #endif // PndSdsStripClusterer