BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/MdcPatRec/TrkBase/include/TrkBase/TrkPocaBase.h
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2// File and Version Information:
3// $Id: TrkPocaBase.h,v 1.2 2006/03/28 01:02:36 zhangy Exp $
4//
5// Description:
6// Base class for various Poca classes; holds infrastructure, and one
7// common algorithm. Ctor and dtor protected, to prevent instantiation.
8//
9// Environment:
10// Software developed for the BaBar Detector at the SLAC B-Factory.
11//
12// Author(s): Steve Schaffner
13//------------------------------------------------------------------------
14#ifndef TRKPOCABASE_H
15#define TRKPOCABASE_H
16
17#include "CLHEP/Geometry/Point3D.h"
18#include "TrkBase/TrkErrCode.h"
19#ifndef ENABLE_BACKWARDS_COMPATIBILITY
20typedef HepGeom::Point3D<double> HepPoint3D;
21#endif
22class Trajectory;
23
24// Class interface
25class TrkPocaBase {
26
27protected:
28 TrkPocaBase( double flt1, double flt2, double precision );
29 TrkPocaBase( double flt1, double precision );
30 virtual ~TrkPocaBase();
31
32public:
33 inline const TrkErrCode& status() const; // did the calculation succeed?
34 inline double flt1() const; // path length on traj 1 @ poca
35 inline double flt2() const;
36 inline double precision(); // In case anyone wants to know
37
38protected:
39 double _precision;
40 double _flt1;
41 double _flt2;
43
44 void minimize( const Trajectory& traj1, double f1, const Trajectory& traj2, double f2 );
45 void minimize( const Trajectory& traj1, double f1, const HepPoint3D& pt );
46
47 void stepTowardPoca( const Trajectory& traj1, const Trajectory& traj2 );
48 void stepToPointPoca( const Trajectory& traj, const HepPoint3D& pt );
49
50 static double _maxDist; // step > maxDist => parallel
51 static int _maxTry;
52 static double _extrapToler; // error allowed in picking step size
53};
54
55// Inlined functions
56double TrkPocaBase::precision() { return _precision; }
57
58const TrkErrCode& TrkPocaBase::status() const { return _status; }
59
60double TrkPocaBase::flt1() const { return _flt1; }
61
62double TrkPocaBase::flt2() const { return _flt2; }
63
64#endif
HepGeom::Point3D< double > HepPoint3D
TFile * f1
void stepToPointPoca(const Trajectory &traj, const HepPoint3D &pt)
void minimize(const Trajectory &traj1, double f1, const HepPoint3D &pt)
TrkPocaBase(double flt1, double flt2, double precision)
const TrkErrCode & status() const
TrkPocaBase(double flt1, double precision)
void minimize(const Trajectory &traj1, double f1, const Trajectory &traj2, double f2)
void stepTowardPoca(const Trajectory &traj1, const Trajectory &traj2)
virtual ~TrkPocaBase()