Newer
Older
TB_Chris / TbIO / src / .svn / text-base / TbCombatBuilder.h.svn-base
  1. #ifndef TB_COMBATBUILDER_H
  2. #define TB_COMBATBUILDER_H 1
  3.  
  4. #include <fstream>
  5.  
  6. // Boost
  7. #include <boost/iostreams/device/mapped_file.hpp>
  8.  
  9. // Tb/TbEvent
  10. #include "Event/TbHit.h"
  11. #include "Event/TbTrigger.h"
  12.  
  13. // Tb/TbKernel
  14. #include "TbKernel/TbAlgorithm.h"
  15.  
  16. /** @class TbCombatBuilder TbCombatBuilder.h
  17. * @author Dan Saunders & Vinicius Franco
  18. * @date 2014-09-22
  19. */
  20.  
  21. class TbCombatBuilder : public TbAlgorithm {
  22. public:
  23. /// Standard constructor
  24. TbCombatBuilder(const std::string& name, ISvcLocator* pSvcLocator);
  25. /// Destructor
  26. virtual ~TbCombatBuilder();
  27.  
  28. virtual StatusCode initialize(); ///< Algorithm initialization
  29. virtual StatusCode execute(); ///< Algorithm execution
  30. virtual StatusCode finalize(); ///< Algorithm termination
  31.  
  32. private:
  33. /// Input data files
  34. std::string m_readoutFormat;
  35. std::string m_fileName0;
  36. std::string m_fileName1;
  37. std::ifstream m_dataStream0;
  38. std::ifstream m_dataStream1;
  39. /// TES location of output hits
  40. std::string m_hitLocation;
  41. int m_nPixels;
  42.  
  43. /// Number of events to skip TODO
  44. unsigned int m_skipEvents;
  45. /// Min. number of non-empty planes required to make an event TODO
  46. unsigned int m_nMinPlanesWithHits;
  47.  
  48. /// Frequency to print event count.
  49. unsigned int m_printFreq;
  50.  
  51. /// Number of processed events
  52. unsigned int m_nEvents;
  53. std::vector<LHCb::TbHits*> m_hits;
  54.  
  55. /// Fake timestamp (not htime).
  56. int m_fakeTime;
  57. bool m_neof;
  58. int m_nArms; // 1 for vertical lab cases, 2 for testbeams.
  59.  
  60. void fillHit(std::string, int);
  61. void fillEventFromPixelmanFile(const int arm);
  62. void fillEventFromRelaxDFile();
  63. };
  64.  
  65. #endif