1 #ifndef TIMEPIXHOUGHTRANSFORMIMPROCESSOR_H
2 #define TIMEPIXHOUGHTRANSFORMIMPROCESSOR_H
4 #include <marlin/Processor.h>
19 #include <gear/PadRowLayout2D.h>
20 #include <EVENT/LCEvent.h>
21 #include <IMPL/LCCollectionVec.h>
22 #include <IMPL/TrackImpl.h>
23 #include <IMPL/LCFlagImpl.h>
24 #include <EVENT/TrackerHit.h>
25 #include <Exceptions.h>
27 #include "TrackFitterFactory.h"
28 #include "TrackFitterBase.h"
31 using namespace marlin;
62 virtual void processRunHeader(lcio::LCRunHeader* run);
64 virtual void processEvent(lcio::LCEvent* evt);
66 virtual void check(lcio::LCEvent* evt);
71 typedef std::vector< TrackImpl * > TrackImplVec;
77 virtual void FillHistogram();
81 virtual void GetTrackProperties();
85 virtual void CreateTracks();
90 virtual void AddHits();
94 virtual void RemoveSparseTracks( TrackImplVec & ImplVec, TrackImplVec::iterator itFirst, TrackImplVec::iterator itLast );
98 virtual void OutputAddElement( LCCollectionVec *& outputCol, TrackImplVec::iterator itFirst, TrackImplVec::iterator itLast );
108 ,
int hitsontrackvalue = 0)
112 _hitsontrack = hitsontrackvalue;
120 bool operator >( TrackProperties
const trackproperties )
const
122 return (_hitsontrack > trackproperties._hitsontrack);
125 bool operator == ( TrackProperties
const trackproperties )
const
127 return( _D0 == trackproperties._D0
128 && _Phi == trackproperties._Phi
129 && _hitsontrack == trackproperties._hitsontrack
134 static bool sortPredicate(
const TrackProperties& lhs,
const TrackProperties& rhs)
140 static bool sortTrackImpl(
const TrackImpl * lhs,
const TrackImpl * rhs )
143 return lhs->getTrackerHits().size() > rhs->getTrackerHits().size();
147 TH1D * _hMaxConvoluted;
153 LCCollectionVec * _inputColVec;
187 #endif // HOUGHTRAFOIMPROCESSOR_H