00001 #ifndef RECOCALOTOOLS_METACOLLECTIONS_CALORECHITMETACOLLECTIONFAST_H 00002 #define RECOCALOTOOLS_METACOLLECTIONS_CALORECHITMETACOLLECTIONFAST_H 1 00003 00004 #include "RecoCaloTools/MetaCollections/interface/CaloRecHitMetaCollectionV.h" 00005 #include <vector> 00006 00020 class CaloRecHitMetaCollectionFast : public CaloRecHitMetaCollectionV { 00021 public: 00022 typedef CaloRecHitMetaCollectionV::Iterator const_iterator; 00023 00025 CaloRecHitMetaCollectionFast(); 00027 CaloRecHitMetaCollectionFast(const CaloRecHitMetaCollectionFast& c); 00029 virtual ~CaloRecHitMetaCollectionFast() { } 00030 00031 00033 void add(const CaloRecHit* hit); 00034 00035 virtual const_iterator find(const DetId& id) const; 00036 virtual const CaloRecHit* at(const_iterator::offset_type i) const; 00037 00038 private: 00039 void sort() const; 00040 00041 mutable std::vector<const CaloRecHit*> hits_; 00042 mutable bool dirty_; 00043 }; 00044 #endif