Newer
Older
TB_Chris / TbAlignment / src / .svn / text-base / TbAlignment.h.svn-base
  1. #ifndef TBALIGNMENT_H
  2. #define TBALIGNMENT_H 1
  3.  
  4. // Tb/TbKernel
  5. #include "TbKernel/TbAlgorithm.h"
  6.  
  7. // Local
  8. #include "TbAlignmentBase.h"
  9.  
  10. /** @class TbAlignment TbAlignment.h
  11. *
  12. * Algorithm for telescope alignment.
  13. *
  14. * @author Angelo Di Canto
  15. * @date 2014-04-22
  16. */
  17.  
  18. class TbAlignmentTrack;
  19.  
  20. class TbAlignment : public TbAlgorithm {
  21.  
  22. public:
  23. /// Standard constructor
  24. TbAlignment(const std::string& name, ISvcLocator* pSvcLocator);
  25. /// Destructor
  26. virtual ~TbAlignment();
  27.  
  28. virtual StatusCode initialize(); ///< Algorithm initialization
  29. virtual StatusCode execute(); ///< Algorithm execution
  30. virtual StatusCode finalize(); ///< Algorithm finalization
  31.  
  32. private:
  33. /// Output alignment file
  34. std::string m_outputFile;
  35. /// Alignment methods to be run
  36. std::vector<std::string> m_alignmentSequence;
  37. /// For the track counter printout
  38. unsigned int m_lastTrackPrint;
  39.  
  40. /// Tracks for alignment
  41. std::vector<TbAlignmentTrack*> m_tracks;
  42. /// Number of alignment tracks after which to stop processsing.
  43. unsigned int m_nTracks;
  44.  
  45. std::vector<TbAlignmentBase*> m_toolChain;
  46. std::vector<TbAlignmentBase*>::iterator m_toolIterator;
  47.  
  48. bool writeAlignmentFile();
  49. };
  50.  
  51. #endif // TBALIGNMENT_H