MarlinUtil  1.12.1
TrackExtended.h
1 #ifndef TRACKAR_H
2 #define TRACKAR_H 1
3 
4 #include "lcio.h"
5 #include "EVENT/LCIO.h"
6 #include "EVENT/Track.h"
7 #include <vector>
8 #include "ClusterExtended.h"
9 #include "TrackerHitExtended.h"
10 #include "GroupTracks.h"
11 
12 using namespace lcio;
13 
14 class ClusterExtended;
15 class GroupTracks;
16 class TrackerHitExtended;
17 typedef std::vector<TrackerHitExtended*> TrackerHitExtendedVec;
18 typedef std::vector<ClusterExtended*> ClusterExtendedVec;
19 
29 
30  public:
31 
32 
33  TrackExtended( );
34  TrackExtended( TrackerHitExtended * trackerhit );
35  TrackExtended( Track * track );
36  ~TrackExtended();
37 
38  Track * getTrack();
39  const float * getSeedDirection();
40  const float * getSeedPosition();
41  ClusterExtendedVec & getClusterVec();
42  ClusterExtended * getSuperCluster();
43  TrackerHitExtendedVec & getTrackerHitExtendedVec();
44  void addCluster(ClusterExtended * cluster);
45  void setSuperCluster(ClusterExtended * superCluster);
46  void setSeedDirection( float * seedDirection );
47  void setSeedPosition( float * seedPosition);
48  void addTrackerHitExtended( TrackerHitExtended * trackerhit);
49  void ClearTrackerHitExtendedVec();
50 
51  void setX0(float x0);
52  void setY0(float y0);
53  void setR0(float r0);
54  void setD0(float d0);
55  void setZ0(float z0);
56  void setBz(float bz);
57  void setPhi0(float phi0);
58  void setPhi(float phi);
59  void setOmega(float omega);
60  void setTanLambda(float tanLambda);
61 
62 
63  void setStart(float * xStart);
64  void setEnd(float * xEnd);
65 
66 
67  float getX0();
68  float getY0();
69  float getD0();
70  float getZ0();
71  float getOmega();
72  float getTanLambda();
73  float getPhi();
74  float getR0();
75  float getBz();
76  float getPhi0();
77 
78  float * getStart();
79  float * getEnd();
80 
81  void setGroupTracks( GroupTracks * group );
82  GroupTracks * getGroupTracks();
83 
84  float getChi2();
85  void setChi2(float chi2);
86 
87  int getNDF();
88  void setNDF(int ndf);
89 
90  float * getCovMatrix();
91  void setCovMatrix( float * cov);
92 
93  private:
94 
95  ClusterExtended *_superCluster;
96  ClusterExtendedVec _clusterVec;
97  GroupTracks * _group;
98  Track * _track;
99  float _seedDirection[3];
100  float _seedPosition[3];
101  TrackerHitExtendedVec _trackerHitVector;
102 
103  float _x0;
104  float _y0;
105  float _r0;
106  float _bz;
107  float _phi0;
108 
109  float _xStart[3];
110  float _xEnd[3];
111 
112  float _d0; // d0 in canonical parameterisation
113  float _z0; // z0 in canonical parameterisation
114  float _omega; // omega in canonical parameterisation
115  float _tanLambda; // tanlambda in canonical parameterisation
116  float _phi; // phi in canonical parameterisation
117 
118  float _chi2; // chi2 of the fit
119 
120  float _cov[15]; // covariance matrix
121 
122  int _ndf; // NDF
123 
124  int _type; // Track type;
125 
126 };
127 
128 #endif
Definition: GroupTracks.h:23
Class extending native LCIO class Track.
Definition: TrackExtended.h:28
Class extending native LCIO class Cluster.
Definition: ClusterExtended.h:28
Class extending native LCIO class TrackerHit.
Definition: TrackerHitExtended.h:24