00001 //-------------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: TrkTimeCalculator.h,v 1.1.1.1 2005/04/21 06:01:42 zhangy Exp $ 00004 // 00005 // Description: 00006 // class TrkTimeCalculator. An abstract base class for computing a new 00007 // track time based on the hots in the track. 00008 // 00009 // Environment: 00010 // Software developed for the BaBar Detector at the SLAC B-Factory. 00011 // 00012 // Copyright Information: 00013 // Copyright (C) 2001 Lawrence Berkeley Laboratory 00014 // 00015 // Author List: 00016 // Dave Brown 7/17/01 00017 //------------------------------------------------------------------------ 00018 00019 #ifndef TRKTIMECALCULATOR_HH 00020 #define TRKTIMECALCULATOR_HH 00021 00022 class TrkRecoTrk; 00023 #include "TrkBase/TrkHotSelector.h" 00024 00025 class TrkTimeCalculator { 00026 public: 00027 // only one constructor 00028 TrkTimeCalculator(const TrkHotSelector& selector) : 00029 _selector(selector){}; 00030 virtual ~TrkTimeCalculator(){}; 00031 // The Function 00032 virtual bool trackTime(const TrkRecoTrk& trk, 00033 double& time, double& timeerr, 00034 int& nHotsUsed) const = 0; 00035 bool trackTime(const TrkRecoTrk& trk, 00036 double& time, double& timeerr) const 00037 { int dummy; return trackTime(trk,time,timeerr,dummy);} 00038 protected: 00039 bool useHot(const TrkHitOnTrk& x) const { return _selector.useHot(x);} 00040 private: 00041 const TrkHotSelector& _selector; 00042 // disallow 00043 TrkTimeCalculator(const TrkTimeCalculator&); 00044 TrkTimeCalculator& operator = (const TrkTimeCalculator&); 00045 }; 00046 #endif