00001 //-------------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: TrkContext.h,v 1.1.1.1 2005/04/21 06:01:42 zhangy Exp $ 00004 // 00005 // Description: 00006 // Holds information about the "environment" in which a track is created -- 00007 // BField, track id manager. One of these objects must be passed 00008 // to the track when it is created. The idea is to decouple the tracks 00009 // from the sources of this information. (See TrkFitter/TrkContextEv for 00010 // semi-automatic creation of an object of this class.) 00011 // 00012 // Environment: 00013 // Software developed for the BaBar Detector at the SLAC B-Factory. 00014 // 00015 // Author(s): Steve Schaffner 00016 // 00017 //------------------------------------------------------------------------ 00018 00019 #ifndef TRKCONTEXT_HH 00020 #define TRKCONTEXT_HH 00021 00022 class BField; 00023 class TrkIdManager; 00024 class TrkId; 00025 00026 // Class interface // 00027 class TrkContext { 00028 00029 public: 00030 TrkContext(const BField*); 00031 TrkContext(const TrkContext &); 00032 virtual ~TrkContext(); 00033 TrkContext& operator= (const TrkContext&); 00034 00035 const BField* bField() const {return _bf;} 00036 virtual TrkId getId() const = 0; 00037 00038 void setBField(const BField* bf); 00039 bool operator==(const TrkContext&) const; 00040 00041 protected: 00042 00043 private: 00044 const BField* _bf; 00045 }; 00046 00047 #endif 00048 00049 00050 00051 00052 00053 00054