00001 #ifndef DATAFORMATS_SISTRIPCLUSTERCOLLECTION_H 00002 #define DATAFORMATS_SISTRIPCLUSTERCOLLECTION_H 00003 00004 #include "DataFormats/SiStripCluster/interface/SiStripCluster.h" 00005 #include <vector> 00006 #include <map> 00007 #include <utility> 00008 00009 class SiStripClusterCollection { 00010 00011 public: 00012 typedef std::vector<SiStripCluster> container; 00013 typedef container::value_type value_type; 00014 typedef container::const_iterator ContainerIterator; 00015 typedef std::pair<ContainerIterator, ContainerIterator> Range; 00016 typedef std::pair<unsigned int, unsigned int> IndexRange; 00017 typedef std::map<unsigned int, IndexRange> Registry; 00018 typedef std::map<unsigned int, IndexRange>::const_iterator RegistryIterator; 00019 00020 SiStripClusterCollection() {} 00021 00022 void put(Range input, unsigned int detID); 00023 const Range get(unsigned int detID) const; 00024 const std::vector<unsigned int> detIDs() const; 00025 size_t size() const { return container_.size(); } 00026 00027 private: 00028 mutable container container_; 00029 mutable Registry map_; 00030 00031 }; 00032 00033 #endif // 00034 00035