14 #include "FtfBaseHit.h"
28 int refitHelix (
int mode,
int modEqual,
int rowMin,
int rowMax ) ;
33 int getErrorsCircleFit (
double a,
double b,
double r ) ;
36 double arcLength (
double x1,
double y1,
double x2,
double y2 ) ;
37 Ftf3DHit closestApproach (
double xBeam,
double yBeam ) ;
39 int extraRCyl (
double &r,
double &phi,
double &z,
40 double &rc,
double &xc,
double &yc ) ;
41 int intersectorZLine (
double a,
double b,
43 int intersectorZLine (
double a,
double b,
Ftf3DHit& cross ) ;
44 int intersectorYCteLine (
double a,
Ftf3DHit& cross ) ;
45 Ftf3DHit getClosest (
double xBeam,
double yBeam,
46 double &rc,
double &xc,
double &yc ) ;
47 int getClosest (
double xBeam,
double yBeam,
48 double rc,
double xc,
double yc,
49 double &xClosest,
double &yClosest ) ;
51 void updateToRadius (
double r ) ;
52 void updateToClosestApproach (
double xBeam,
double yBeam,
double rMax=10000. ) ;
53 int phiRotate (
double deltaPhi ) ;
55 Ftf3DHit extrapolate2PathLength(
double pathlength);
59 double pathLength(
double Rx,
double Ry,
double Rz,
double Nx,
double Ny,
double Nz );
61 inline virtual void startLoop( ){ currentHit = firstHit ; } ;
62 virtual void nextHit ( ) = 0 ;
63 inline virtual int done ( ) {
return currentHit != 0 ; } ;
64 void Print (
int level ) ;
91 unsigned short CompressOver1(
double,
double);
92 double DecompressOver1(
unsigned short,
double);
96 inline unsigned short FtfBaseTrack::CompressOver1(
double v1,
double v2) {
98 double intermed = v1/fabs(v2);
99 return (intermed < 1 ? (
unsigned short) (intermed*32768.) :
100 (intermed > 1024. ? 65535 :
101 32768 + (
unsigned short) ((intermed - 1.)*32.)));
103 inline double FtfBaseTrack::DecompressOver1(
unsigned short v1,
double v2) {
104 return fabs(v2)*(v1 <= 32768 ? ((double) v1)/32768. :
105 ((double) (v1 - 32768))/32. + 1.);