Newer
Older
TB_Chris / TbKernel / src / .svn / text-base / TbTrackFit.h.svn-base
  1. #ifndef TBTRACKFIT_H
  2. #define TBTRACKFIT_H 1
  3.  
  4. // Gaudi
  5. #include "GaudiAlg/GaudiTool.h"
  6.  
  7. // Tb/TbKernel
  8. #include "TbKernel/ITbTrackFit.h"
  9. #include "TbKernel/ITbGeometrySvc.h"
  10.  
  11. /** @class TbTrackFit TbTrackFit.h
  12. * Implementation of track fit for Timepix3 testbeam analysis
  13. *
  14. * @author Panagiotis Tsopelas
  15. * @date 2014-05-06
  16. *
  17. */
  18.  
  19. class TbTrackFit : public GaudiTool, virtual public ITbTrackFit {
  20.  
  21. public:
  22. /// Constructor
  23. TbTrackFit(const std::string& type, const std::string& name,
  24. const IInterface* parent);
  25. /// Destructor
  26. virtual ~TbTrackFit();
  27.  
  28. virtual StatusCode initialize();
  29.  
  30. /// Fit the track and set its firstState
  31. virtual void fit(LHCb::TbTrack* track);
  32.  
  33. virtual void maskPlane(const unsigned int plane);
  34. virtual void unmaskPlane(const unsigned int plane);
  35.  
  36. protected:
  37. /// Indices of planes to be masked.
  38. std::vector<unsigned int> m_maskedPlanes;
  39. /// Flags whether a plane is masked or not.
  40. std::vector<bool> m_masked;
  41.  
  42. /// Pointer to geometry service
  43. mutable ITbGeometrySvc* m_geomSvc;
  44. /// Access geometry service on-demand
  45. ITbGeometrySvc* geomSvc() const {
  46. if (!m_geomSvc) m_geomSvc = svc<ITbGeometrySvc>("TbGeometrySvc", true);
  47. return m_geomSvc;
  48. }
  49. };
  50.  
  51. #endif