StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
FtfTrack.h
1 //:>----------------------------------------------------------------------
2 //: FILE: FtfTrack.h
3 //: HISTORY:
4 //: 27jan2000 start writting changes
5 //: refHit replaced by xRefHit and yRefHit
6 //: 27jan2000 VOLUME, ROW and AREA classes replaced by FtfContainer
7 //: 9mar2000 trackLength moved to FtfBaseTrack
8 //: 9mar2000 use void pointers
9 //: 4sep2001 add way to followHitSelection to correct bug in
10 //: outward extrapolation
11 //:>----------------------------------------------------------------------
12 #ifndef FTFTRACK
13 #define FTFTRACK
14 #include "FtfGeneral.h"
15 
16 #include "rtsLog.h"
17 
18 #include "FtfBaseTrack.h"
19 #include "FtfHit.h"
20 #include "FtfPara.h"
21 
22 int const USE_SEGMENT= 1 ;
23 int const USE_FOLLOW = 2 ;
24 int const GO_DOWN =-1 ;
25 int const GO_UP = 1 ;
26 
27 class FtfTrack : public FtfBaseTrack {
28 
29 public:
30  friend class FtfFinder ;
31 
32  void add ( FtfHit *thisHit, int way ) ;
33  void add ( FtfTrack *thisTrack ) ;
34  int buildTrack ( FtfHit *firstHit, FtfContainer *volume ) ;
35  void dEdx ( ) ;
36  void deleteCandidate ( ) ;
37  void fill ( ) ;
38  void fillPrimary ( double &xc, double &yc, double &rc,
39  double xPar, double yPar ) ;
40  void fillSecondary ( double &xc, double &yc, double xPar, double yPar ) ;
41  int follow ( FtfContainer *volume, int way, int rowToStop ) ;
42  int followHitSelection ( FtfHit *baseHit, FtfHit *candidateHit, int way ) ;
43  FtfTrack* getNextTrack ( ) { return (FtfTrack *)nxatrk ; } ;
44  int mergePrimary ( FtfContainer *trackArea ) ;
45  void reset ( ) ;
46  FtfHit *seekNextHit ( FtfContainer *volume, FtfHit *baseHit,
47  int nradiusSteps, int whichFunction ) ;
48  int segment ( FtfContainer *volume, int way ) ;
49  int segmentHitSelection ( FtfHit *baseHit, FtfHit *candidateHit ) ;
50  void *nxatrk ;
51 
52 #ifdef DEBUG
53  void debugAsk ( ) ;
54  void debugDeleteCandidate ( ) ;
55  void debugFill ( ) ;
56  void debugFollowCandidate ( FtfHit *candidate_hit ) ;
57  void debugFollowSuccess ( double dxy, double dsz, double lchi2_xy,
58  double lchi2_sz, double chi2_min,
59  FtfHit *candidate_hit ) ;
60  void debugInVolume ( FtfHit *base_hit, FtfHit *current_hit ) ;
61  void debugNew ( ) ;
62 #endif
63 
64  float lastXyAngle ; // Angle in the xy plane of line connecting to last hits
65  typedef double vfit ;
66 
67  vfit xRefHit ;
68  vfit yRefHit ;
69  vfit xLastHit ;
70  vfit yLastHit ;
71 
72  vfit s11Xy ; // Fit Parameters
73  vfit s12Xy ;
74  vfit s22Xy ;
75  vfit g1Xy ;
76  vfit g2Xy ;
77  vfit s11Sz ;
78  vfit s12Sz ;
79  vfit s22Sz ;
80  vfit g1Sz ;
81  vfit g2Sz ;
82 
83  vfit ddXy, a1Xy, a2Xy ; /*fit par in xy */
84  vfit ddSz, a1Sz, a2Sz ; /*fit par in sz */
85 
86 //private:
87  inline virtual void nextHit (){ currentHit = ((FtfBaseHit *)currentHit)->nextTrackHit ; } ;
88 
89 } ;
90 #endif
91 
Definition: FtfHit.h:16