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 //:>----------------------------------------------------------------------
10 #ifndef FTFTRACK
11 #define FTFTRACK
12 #include "Stl3Util/ftf/FtfGeneral.h"
13 #include "Stl3Util/ftf/FtfBaseTrack.h"
14 #include "Stl3Util/ftf/FtfHit.h"
15 #include "Stl3Util/ftf/FtfPara.h"
16 
17 int const USE_SEGMENT= 1 ;
18 int const USE_FOLLOW = 2 ;
19 int const GO_DOWN =-1 ;
20 int const GO_UP = 1 ;
21 
22 class FtfTrack : public FtfBaseTrack {
23 
24 public:
25  friend class FtfFinder ;
26 
27  void add ( FtfHit *thisHit, int way ) ;
28  void add ( FtfTrack *thisTrack ) ;
29  int buildTrack ( FtfHit *firstHit, FtfContainer *volume ) ;
30  void dEdx ( ) ;
31  void deleteCandidate ( ) ;
32  void fill ( ) ;
33  void fillPrimary ( double &xc, double &yc, double &rc,
34  double xPar, double yPar ) ;
35  void fillSecondary ( double &xc, double &yc, double xPar, double yPar ) ;
36  int follow ( FtfContainer *volume, int way, int rowToStop ) ;
37  int followHitSelection ( FtfHit *baseHit, FtfHit *candidateHit ) ;
38  FtfTrack* getNextTrack ( ) { return (FtfTrack *)nxatrk ; } ;
39  int mergePrimary ( FtfContainer *trackArea ) ;
40  void reset ( ) ;
41  FtfHit *seekNextHit ( FtfContainer *volume, FtfHit *baseHit,
42  int nradiusSteps, int whichFunction ) ;
43  int segment ( FtfContainer *volume, int way ) ;
44  int segmentHitSelection ( FtfHit *baseHit, FtfHit *candidateHit ) ;
45  void *nxatrk ;
46 
47 #ifdef DEBUG
48  void debugAsk ( ) ;
49  void debugDeleteCandidate ( ) ;
50  void debugFill ( ) ;
51  void debugFollowCandidate ( FtfHit *candidate_hit ) ;
52  void debugFollowSuccess ( double dxy, double dsz, double lchi2_xy,
53  double lchi2_sz, double chi2_min,
54  FtfHit *candidate_hit ) ;
55  void debugInVolume ( FtfHit *base_hit, FtfHit *current_hit ) ;
56  void debugNew ( ) ;
57 #endif
58 
59  float lastXyAngle ; // Angle in the xy plane of line connecting to last hits
60  typedef double vfit ;
61 
62  vfit xRefHit ;
63  vfit yRefHit ;
64  vfit xLastHit ;
65  vfit yLastHit ;
66 
67  vfit s11Xy ; // Fit Parameters
68  vfit s12Xy ;
69  vfit s22Xy ;
70  vfit g1Xy ;
71  vfit g2Xy ;
72  vfit s11Sz ;
73  vfit s12Sz ;
74  vfit s22Sz ;
75  vfit g1Sz ;
76  vfit g2Sz ;
77 
78  vfit ddXy, a1Xy, a2Xy ; /*fit par in xy */
79  vfit ddSz, a1Sz, a2Sz ; /*fit par in sz */
80 //private:
81  inline virtual void nextHit (){ currentHit = ((FtfBaseHit *)currentHit)->nextTrackHit ; } ;
82 
83 } ;
84 #endif
85 
Definition: FtfHit.h:16