CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/RecoCaloTools/MetaCollections/interface/CaloRecHitMetaCollectionFast.h

Go to the documentation of this file.
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