KiTrackMarlin  1.9.0
VXDTrack.h
1 #ifndef VXDTrack_h
2 #define VXDTrack_h
3 
4 #include "IMPL/TrackImpl.h"
5 #include "IMPL/TrackerHitImpl.h"
6 #include "EVENT/TrackerHitPlane.h"
7 #include "EVENT/TrackerHit.h"
8 #include "MarlinTrk/IMarlinTrkSystem.h"
9 #include "MarlinTrk/IMarlinTrack.h"
10 
11 #include <marlin/Global.h>
12 
13 #include <vector>
14 
15 #include "ILDImpl/IVXDHit.h"
16 #include "ILDImpl/IMiniVector.h"
17 #include "KiTrack/ITrack.h"
18 
19 #include "Tools/Fitter.h"
20 
21 // GEAR tools
22 #include <gear/GEAR.h>
23 #include <gear/GearParameters.h>
24 #include <gear/VXDLayerLayout.h>
25 #include <gear/VXDParameters.h>
26 #include <gear/BField.h>
27 #include "gear/gearsurf/MeasurementSurfaceStore.h"
28 #include "gear/gearsurf/MeasurementSurface.h"
29 #include "gear/gearsurf/ICoordinateSystem.h"
30 #include "gear/gearsurf/CartesianCoordinateSystem.h"
31 
32 //#include "SpacePointBuilder.h"
33 // CLHEP tools
34 #include "CLHEP/Vector/ThreeVector.h"
35 #include "CLHEP/Matrix/SymMatrix.h"
36 #include "CLHEP/Matrix/Matrix.h"
37 
38 
39 namespace KiTrackMarlin{
40 
41 
44  class VXDTrack : public ITrack {
45 
46  public:
47 
50  VXDTrack( MarlinTrk::IMarlinTrkSystem* trkSystem );
51 
55  //VXDTrack( std::vector< IVXDHit* > hits , MarlinTrk::IMarlinTrkSystem* trkSystem );
56  VXDTrack( std::vector< IMiniVector* > hits , MarlinTrk::IMarlinTrkSystem* trkSystem );
57  VXDTrack( const VXDTrack& f );
58  VXDTrack & operator= (const VXDTrack & f);
59 
60 
63  TrackImpl* getLcioTrack(){ return ( _lcioTrack );}
64 
65 
66  //void addHit( IVXDHit* hit );
67  void addHit( IMiniVector* MV );
68 
69  virtual double getNdf() const { return _lcioTrack->getNdf(); }
70  virtual double getChi2() const { return _lcioTrack->getChi2(); }
71  virtual double getChi2Prob() const { return _chi2Prob; }
72 
73  virtual std::vector< IHit* > getHits() const
74  { std::vector<IHit*> hits;
75  for(unsigned i=0; i<_hits.size();i++) hits.push_back( _hits[i] );
76  return hits; }
77 
78  virtual std::vector< IMiniVector* > getMVs() const
79  { std::vector<IMiniVector*> mvhits;
80  for(unsigned i=0; i<_hits.size();i++) mvhits.push_back( _hits[i] );
81  return mvhits; }
82 
83  virtual double getQI() const;
84 
85 
88  virtual void fit() throw( FitterException );
89 
90  virtual ~VXDTrack(){ delete _lcioTrack; }
91 
92  protected:
93 
96  //std::vector< IVXDHit* > _hits;
97  std::vector< IMiniVector* > _hits;
98 
99  IMPL::TrackImpl* _lcioTrack;
100 
101  // for fitting
102  MarlinTrk::IMarlinTrkSystem* _trkSystem;
103 
104 
105  double _chi2Prob;
106 
107  };
108 
109 
110 
111 }
112 
113 
114 #endif
115 
116 
Definition: Fitter.h:17
A class for ITracks containing an lcio::Track at core.
Definition: VXDTrack.h:44
std::vector< IMiniVector * > _hits
the hits the track consists of
Definition: VXDTrack.h:97
virtual void fit()
Fits the track and sets chi2, Ndf etc.
Definition: VXDTrack.cc:161
An interface for a mini-vector for the ILD.
Definition: IMiniVector.h:21
TrackImpl * getLcioTrack()
Definition: VXDTrack.h:63
VXDTrack(MarlinTrk::IMarlinTrkSystem *trkSystem)
Definition: VXDTrack.cc:29