/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/MdcPatRec/TrkBase/TrkBase-00-01-12/TrkBase/TrkPocaBase.h

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // File and Version Information:
00003 //      $Id: TrkPocaBase.h,v 1.2 2006/03/28 01:02:36 zhangy Exp $
00004 //
00005 // Description:
00006 //   Base class for various Poca classes; holds infrastructure, and one 
00007 //   common algorithm.  Ctor and dtor protected, to prevent instantiation.
00008 //
00009 // Environment:
00010 //      Software developed for the BaBar Detector at the SLAC B-Factory.
00011 //
00012 // Author(s): Steve Schaffner
00013 //------------------------------------------------------------------------
00014 #ifndef TRKPOCABASE_H
00015 #define TRKPOCABASE_H
00016 
00017 #include "TrkBase/TrkErrCode.h"
00018 #include "CLHEP/Geometry/Point3D.h" 
00019 #ifndef ENABLE_BACKWARDS_COMPATIBILITY
00020 typedef HepGeom::Point3D<double> HepPoint3D;
00021 #endif
00022 class Trajectory;
00023 
00024 // Class interface
00025 class TrkPocaBase {
00026 
00027 protected:
00028   TrkPocaBase(double flt1, double flt2, double precision);
00029   TrkPocaBase(double flt1, double precision);
00030   virtual ~TrkPocaBase();
00031 
00032 public:
00033   inline const TrkErrCode& status() const;     // did the calculation succeed?
00034   inline double flt1() const;                  // path length on traj 1 @ poca
00035   inline double flt2() const;
00036   inline double precision();                   // In case anyone wants to know
00037 
00038 protected:
00039   double _precision;
00040   double _flt1;
00041   double _flt2;
00042   TrkErrCode _status;
00043 
00044   void minimize(const Trajectory& traj1, double f1,
00045                 const Trajectory& traj2, double f2);
00046   void minimize(const Trajectory& traj1, double f1,
00047                 const HepPoint3D& pt);
00048 
00049   void stepTowardPoca(const Trajectory& traj1, const Trajectory& traj2);
00050   void stepToPointPoca(const Trajectory& traj, const HepPoint3D& pt);
00051 
00052   static double _maxDist;                   // step > maxDist => parallel
00053   static int _maxTry;
00054   static double _extrapToler;            // error allowed in picking step size
00055 };
00056 
00057 // Inlined functions
00058 double
00059 TrkPocaBase::precision()                 {return _precision;}
00060 
00061 const TrkErrCode&
00062 TrkPocaBase::status() const              {return _status;}
00063 
00064 double
00065 TrkPocaBase::flt1() const                {return _flt1;}
00066 
00067 double
00068 TrkPocaBase::flt2() const                {return _flt2;}
00069 
00070 #endif

Generated on Tue Nov 29 23:13:42 2016 for BOSS_7.0.2 by  doxygen 1.4.7