00001 //-------------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: TrkId.h,v 1.1.1.1 2005/04/21 06:01:42 zhangy Exp $ 00004 // 00005 // Description: 00006 // Holds an ID number and a pointer to an Id manager that knows how 00007 // provide the next number in the sequence; designed to provided tracks 00008 // with unique ids. It does _not_ own the Id manager. 00009 // 00010 // Environment: 00011 // Software developed for the BaBar Detector at the SLAC B-Factory. 00012 // 00013 // Authors: Steve Schaffner 00014 //------------------------------------------------------------------------ 00015 #ifndef TRKID_HH 00016 #define TRKID_HH 00017 00018 class TrkIdManager; 00019 00020 // Class interface // 00021 class TrkId { 00022 00023 public: 00024 TrkId(long idNo, TrkIdManager* idMan); // creates with input id number 00025 TrkId(TrkIdManager* idMan); // gets id number from idMan 00026 TrkId(const TrkId &); // copies existing value 00027 TrkId& operator= (const TrkId&); // copies existing value 00028 bool operator<(const TrkId &) const; 00029 ~TrkId(); 00030 00031 void setNewValue(const TrkId&); // gets next Id number and copies manager 00032 operator long() const {return _value;} // automatic conversion to long 00033 TrkIdManager* idManager() const; 00034 void setIdManager(TrkIdManager* idMan); // hack for making trks from db 00035 00036 private: 00037 00038 int _value; 00039 TrkIdManager* _idman; 00040 }; 00041 00042 #endif 00043 00044