KiTrackMarlin  1.9.0
FTDTrack.h
1 #ifndef FTDTrack_h
2 #define FTDTrack_h
3 
4 #include "IMPL/TrackImpl.h"
5 #include "MarlinTrk/IMarlinTrkSystem.h"
6 #include "MarlinTrk/IMarlinTrack.h"
7 
8 #include <vector>
9 
10 #include "ILDImpl/IFTDHit.h"
11 #include "KiTrack/ITrack.h"
12 
13 #include "Tools/Fitter.h"
14 
15 
16 namespace KiTrackMarlin{
17 
18 
21  class FTDTrack : public ITrack {
22 
23  public:
24 
27  FTDTrack( MarlinTrk::IMarlinTrkSystem* trkSystem );
28 
32  FTDTrack( std::vector< IFTDHit* > hits , MarlinTrk::IMarlinTrkSystem* trkSystem );
33  FTDTrack( const FTDTrack& f );
34  FTDTrack & operator= (const FTDTrack & f);
35 
36 
39  TrackImpl* getLcioTrack(){ return ( _lcioTrack );}
40 
41 
42  void addHit( IFTDHit* hit );
43 
44  virtual double getNdf() const { return _lcioTrack->getNdf(); }
45  virtual double getChi2() const { return _lcioTrack->getChi2(); }
46  virtual double getChi2Prob() const { return _chi2Prob; }
47 
48  virtual std::vector< IHit* > getHits() const
49  { std::vector<IHit*> hits;
50  for(unsigned i=0; i<_hits.size();i++) hits.push_back( _hits[i] );
51  return hits; }
52 
53  virtual double getQI() const;
54 
55 
58  virtual void fit() throw( FitterException );
59 
60  virtual ~FTDTrack(){ delete _lcioTrack; }
61 
62  protected:
63 
66  std::vector< IFTDHit* > _hits;
67 
68 
69  IMPL::TrackImpl* _lcioTrack;
70 
71  // for fitting
72  MarlinTrk::IMarlinTrkSystem* _trkSystem;
73 
74 
75  double _chi2Prob;
76 
77 
78  };
79 
80 
81 
82 }
83 
84 
85 #endif
86 
87 
Definition: Fitter.h:17
FTDTrack(MarlinTrk::IMarlinTrkSystem *trkSystem)
Definition: FTDTrack.cc:24
std::vector< IFTDHit * > _hits
the hits the track consists of
Definition: FTDTrack.h:66
TrackImpl * getLcioTrack()
Definition: FTDTrack.h:39
virtual void fit()
Fits the track and sets chi2, Ndf etc.
Definition: FTDTrack.cc:104
An interface for a hit for the ILD using an lcio TrackerHit as basis.
Definition: IFTDHit.h:21
A class for ITracks containing an lcio::Track at core.
Definition: FTDTrack.h:21