00001 #ifndef RecoCollectionFP420_h 00002 #define RecoCollectionFP420_h 00003 00004 #include "DataFormats/FP420Cluster/interface/RecoFP420.h" 00005 #include <vector> 00006 #include <map> 00007 #include <utility> 00008 00009 class RecoCollectionFP420 { 00010 00011 public: 00012 00013 typedef std::vector<RecoFP420>::const_iterator ContainerIterator; 00014 typedef std::pair<ContainerIterator, ContainerIterator> Range; 00015 typedef std::pair<unsigned int, unsigned int> IndexRange; 00016 typedef std::map<unsigned int, IndexRange> Registry; 00017 typedef std::map<unsigned int, IndexRange>::const_iterator RegistryIterator; 00018 typedef std::map< unsigned int, std::vector<RecoFP420> > RecoFP420Container; 00019 00020 RecoCollectionFP420() {} 00021 // RecoCollectionFP420() { 00022 // container_.clear(); 00023 //} 00024 00025 // virtual ~RecoCollectionFP420(){ 00026 // delete RecoCollectionFP420 00027 // cout << " RecoCollectionFP420h: delete RecoCollectionFP420 " << endl; 00028 // } 00029 00030 00031 void put(Range input, unsigned int stationID); 00032 const Range get(unsigned int stationID) const; 00033 const std::vector<unsigned int> stationIDs() const; 00034 void putclear(Range input, unsigned int stationID); 00035 void clear(); 00036 00037 private: 00038 mutable std::vector<RecoFP420> container_; 00039 mutable Registry map_; 00040 00041 mutable RecoFP420Container trackMap_; 00042 }; 00043 00044 #endif // 00045 00046