CGEM BOSS 6.6.5.h
BESIII Offline Software System
Loading...
Searching...
No Matches
TrkDifTraj.h
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2// File and Version Information:
3// $Id: TrkDifTraj.h,v 1.2 2005/07/18 02:56:07 zhangy Exp $
4//
5// Description: Abstract base class for Trajectory objects designed to
6// live inside TrkReps as descriptions of tracks. Adds to the base
7// class functions that provide derivatives related to the underlying
8// independent parameters. The interface for getting the parameters
9// is deferred to more derived classes.
10//
11// Environment:
12// Software developed for the BaBar Detector at the SLAC B-Factory.
13//
14// Author(s): Steve Schaffner, Dave Brown
15//
16//------------------------------------------------------------------------
17
18#ifndef TRKDIFTRAJ_H
19#define TRKDIFTRAJ_H
20#include "MdcGeom/Trajectory.h"
21
22class Trajectory;
23class DifPoint;
24class DifVector;
25class TrkSimpTraj;
26
27// Class interface //
28class TrkDifTraj : public Trajectory {
29public:
30 //**************
31 // Constructors, etc.
32 //**************
33 // By default, the valid flight distance range is really big
34 TrkDifTraj(const double lowlim = -99999.,const double hilim = 99999.);
35 virtual ~TrkDifTraj();
36
37 //**************
38 // Access
39 //**************
40 // DifNumber version of position, direction, 2nd deriv information
41 virtual void getDFInfo(double fltLen, DifPoint& pos, DifVector& direction,
42 DifVector& delDirect) const = 0;
43 virtual void getDFInfo2(double fltLen, DifPoint& pos, DifVector& direction) const;
44 // Return locally-valid simple trajectory (complete with parameters) and the
45 // equivalent flight length along it. Trivial except for piece-wise trajs
46 virtual const TrkSimpTraj* localTrajectory(double fltLen, double& localFlt)
47 const = 0;
48
49private:
50// Preempt
51 TrkDifTraj& operator= (const TrkDifTraj&);
52 TrkDifTraj(const TrkDifTraj &);
53};
54
55#endif
virtual Hep3Vector delDirect(double) const =0
virtual Hep3Vector direction(double) const =0
virtual void getDFInfo2(double fltLen, DifPoint &pos, DifVector &direction) const
virtual ~TrkDifTraj()
TrkDifTraj(const double lowlim=-99999., const double hilim=99999.)
virtual const TrkSimpTraj * localTrajectory(double fltLen, double &localFlt) const =0
virtual void getDFInfo(double fltLen, DifPoint &pos, DifVector &direction, DifVector &delDirect) const =0