00001 //-------------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: TrkBmSpotOnTrk.h,v 1.1.1.1 2005/04/21 06:26:56 maqm Exp $ 00004 // 00005 // Description: 00006 // Defines interface between Svt hit and track, and stores information 00007 // about fit. Used by fitters 00008 // Environment: 00009 // Software developed for the BaBar Detector at the SLAC B-Factory. 00010 // 00011 // Authors: Steve Schaffner 00012 // 00013 // Copyright (C) 1996 Stanford Linear Accelerator Center 00014 //------------------------------------------------------------------------ 00015 00016 #ifndef TRKBMSPOTONTRK_H 00017 #define TRKBMSPOTONTRK_H 00018 00019 #include "TrkBase/TrkHitOnTrk.h" 00020 #include "TrkBase/TrkEnums.h" 00021 #include "TrkBase/TrkLineTraj.h" 00022 00023 #include "CLHEP/Geometry/Point3D.h" 00024 #include "CLHEP/Matrix/SymMatrix.h" 00025 00026 00027 // Class interface // 00028 class TrkBmSpotOnTrk : public TrkHitOnTrk 00029 { 00030 public: 00031 TrkBmSpotOnTrk(const HepPoint3D &ip, const HepSymMatrix &size ); 00032 ~TrkBmSpotOnTrk(); 00033 00034 TrkBmSpotOnTrk* clone(TrkRep*, const TrkDifTraj *t =0) const; 00035 virtual TrkEnums::TrkViewInfo whatView() const; 00036 virtual unsigned layerNumber() const { return 0; } 00037 00038 const Trajectory* hitTraj() const; 00039 const HepPoint3D& ip() const; 00040 00041 // this hot has no timing information 00042 virtual bool timeResid(double& t,double& tErr) const { return false; } 00043 virtual bool timeAbsolute(double& t,double& tErr) const { return false; } 00044 00045 protected: 00046 TrkBmSpotOnTrk(const TrkBmSpotOnTrk &hitToBeCopied,TrkRep *newRep, const TrkDifTraj *trkTraj=0); 00047 virtual TrkErrCode updateMeasurement(const TrkDifTraj* traj, bool maintainAmbiguity); 00048 00049 static const TrkLineTraj FindBeamTrajectory( const HepPoint3D &point, const HepSymMatrix &error ); 00050 double GetRms(); 00051 00052 private: 00053 // Make sure these aren't used by mistake: 00054 TrkBmSpotOnTrk& operator= (const TrkBmSpotOnTrk&); 00055 TrkBmSpotOnTrk(const TrkBmSpotOnTrk&); 00056 00057 const TrkLineTraj _beamTraj; 00058 const HepPoint3D _ip; 00059 const HepSymMatrix _size; 00060 }; 00061 00062 #endif