BOSS 7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/MdcPatRec/TrkBase/TrkBase-00-01-12/TrkBase/TrkPoca.h
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2// File and Version Information:
3// $Id: TrkPoca.h,v 1.1.1.1 2005/04/21 06:01:42 zhangy Exp $
4//
5// Description:
6// Calculate the point of closest approach between two trajectories,
7// or between a trajectory and a point.
8// Calculates (in ctor) the distance and the flight lengths alongs
9// the trajectory or trajectories; calculated values are obtained
10// through accessors. "Precision" is maximum allowed error on distance
11// (in cm). The input flightlengths are used as a starting point; the
12// code will find the point-of-closest-approach that is closest to that
13// point. (A good starting point also reduces CPU time.)
14// Note that distance is a signed quantity for two trajectories.
15// Environment:
16// Software developed for the BaBar Detector at the SLAC B-Factory.
17//
18// Author(s): Steve Schaffner; core algorithm stolen from Art Snyder.
19//
20//------------------------------------------------------------------------
21#ifndef TRKPOCA_H
22#define TRKPOCA_H
23class TrkDifTraj;
24#include "TrkBase/TrkPocaBase.h"
25
26// Class interface //
27class TrkPoca : public TrkPocaBase {
28public:
29 TrkPoca(const Trajectory& traj1, double flt1,
30 const Trajectory& traj2, double flt2,
31 double precision=1.e-5);
32 TrkPoca(const Trajectory& traj, double flt,
33 const HepPoint3D& pt, double precision=1.e-5);
35
36 inline double doca() const; // distance of closest approach
37 /*
38 // The following inherited functions are also available:
39 const TrkErrCode& status() const; // did the calculation succeed?
40 double flt1() const; // path length on traj 1 @ poca
41 double flt2() const;
42 double precision(); // In case anyone wants to know:
43 */
44
45private:
46 double _doca;
47
48 // private functions
49 void calcDist(const Trajectory& traj1, const Trajectory& traj2);
50 // Preempt
51// TrkPoca& operator= (const TrkPoca&);
52// TrkPoca(const TrkPoca &);
53};
54
55// Inlined functions
56double TrkPoca::doca() const {return _doca;}
57
58#endif
TrkPoca(const Trajectory &traj1, double flt1, const Trajectory &traj2, double flt2, double precision=1.e-5)
TrkPoca(const Trajectory &traj, double flt, const HepPoint3D &pt, double precision=1.e-5)
double doca() const