00001 //-------------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: MdcHitMap.h,v 1.3 2009/09/22 06:28:08 zhangy Exp $ 00004 // 00005 // Description: 00006 // Holds map of (layer,wire) -> MdcHit*. To avoid time wasted in 00007 // building the map, its guts are implemented as a singleton class 00008 // (MdcHitMapGuts); a MdcHitMap can be created, stored in AbsEvent, and 00009 // destroyed every event, but the underlying guts remain the same (they are 00010 // cleared every time an instance is requested). Or maybe I did it this way 00011 // because I'm bored today. 00012 // 00013 // Environment: 00014 // Software developed for the BaBar Detector at the SLAC B-Factory. 00015 // 00016 // Author(s): Steve Schaffner 00017 // 00018 //------------------------------------------------------------------------ 00019 #ifndef MDCHITMAP_HH 00020 #define MDCHITMAP_HH 00021 00022 #include "MdcData/MdcHitMapGuts.h" 00023 #include "GaudiKernel/DataObject.h" 00024 class MdcHit; 00025 class MdcDetector; 00026 00027 // Class interface // 00028 class MdcHitMap : public DataObject { 00029 00030 public: 00031 MdcHitMap(const MdcDetector&); 00032 virtual ~MdcHitMap(); 00033 00034 MdcHit* hitWire(int lay, int wire) const {return _guts->hitWire(lay, wire);} 00035 void addHit(MdcHit& theHit) { _guts->addHit(theHit);} 00036 void removeHit(int lay, int wire) { _guts->removeHit(lay, wire); } 00037 void clearMap() { _guts->clear(); } 00038 00039 private: 00040 MdcHitMapGuts* _guts; 00041 00042 // Preempt 00043 MdcHitMap& operator= (const MdcHitMap&); 00044 MdcHitMap(const MdcHitMap &); 00045 }; 00046 00047 #endif