13 #include "Stl3Util/ftf/FtfGeneral.h"
14 #include "Stl3Util/ftf/FtfBaseHit.h"
15 #include "Stl3Util/ftf/FtfPara.h"
27 int refitHelix (
int mode,
int modEqual,
int rowMin,
int rowMax ) ;
32 int getErrorsCircleFit (
double a,
double b,
double r ) ;
35 double arcLength (
double x1,
double y1,
double x2,
double y2 ) ;
36 Ftf3DHit closestApproach (
double xBeam,
double yBeam ) ;
38 int extraRCyl (
double &r,
double &phi,
double &z,
39 double &rc,
double &xc,
double &yc ) ;
40 int intersectorZLine (
double a,
double b,
42 int intersectorZLine (
double a,
double b,
Ftf3DHit& cross ) ;
43 int intersectorYCteLine (
double a,
Ftf3DHit& cross ) ;
44 Ftf3DHit getClosest (
double xBeam,
double yBeam,
45 double &rc,
double &xc,
double &yc ) ;
46 int getClosest (
double xBeam,
double yBeam,
47 double rc,
double xc,
double yc,
48 double &xClosest,
double &yClosest ) ;
50 void updateToRadius (
double r ) ;
51 void updateToClosestApproach (
double xBeam,
double yBeam,
double rMax=10000 ) ;
52 int phiRotate (
double deltaPhi ) ;
54 Ftf3DHit extrapolate2PathLength(
double pathlength);
59 virtual void startLoop( );
60 virtual void nextHit ( ) = 0 ;
62 void Print (
int level ) ;
89 unsigned short CompressOver1(
double,
double);
90 double DecompressOver1(
unsigned short,
double);
94 inline unsigned short FtfBaseTrack::CompressOver1(
double v1,
double v2) {
96 double intermed = v1/fabs(v2);
97 return (intermed < 1 ? (
unsigned short) (intermed*32768.) :
98 (intermed > 1024. ? 65535 :
99 32768 + (
unsigned short) ((intermed - 1.)*32.)));
101 inline double FtfBaseTrack::DecompressOver1(
unsigned short v1,
double v2) {
102 return fabs(v2)*(v1 <= 32768 ? ((double) v1)/32768. :
103 ((double) (v1 - 32768))/32. + 1.);