Newer
Older
TB_Chris / TbUT / src / .svn / text-base / TbUTPedestalCalculator.h.svn-base
@iaro iaro on 9 May 2016 992 bytes first attempt of automated anal
  1. /*
  2. * TbUTPedestalCalculator.h
  3. *
  4. * Created on: Oct 10, 2014
  5. * Author: ADendek
  6. */
  7.  
  8. #pragma once
  9. #include "TbUTIPedestalFollowing.h"
  10. #include "TbUTIChannelMaskProvider.h"
  11. #include "TbUTPedestal.h"
  12. #include <stdexcept>
  13.  
  14. namespace TbUT
  15. {
  16. class PedestalCalculator: public IPedestalFollowing
  17. {
  18. enum RunPhase
  19. {
  20. CALCULATE_INITIAL_VALUE,
  21. NORMALIZE_INITIAL_VALUE,
  22. CALUCLATE_PEDESTAL
  23. };
  24.  
  25. public:
  26. PedestalCalculator(IChannelMaskProvider& p_maskProvider, Pedestal & p_pedestal);
  27. StatusCode processEvent(RawData<>* p_data);
  28. void savePedestalToFile(const std::string& p_filename);
  29.  
  30. private:
  31.  
  32. StatusCode calculateInitialValue(RawData<>* p_data);
  33. StatusCode normalizeInitialValue();
  34. StatusCode calculaPedestal(RawData<>* p_data);
  35.  
  36. RunPhase getRunPhase() const;
  37.  
  38. double calculateUpdate(int p_channel, RawData<>::SignalVector& p_data);
  39.  
  40. IChannelMaskProvider& m_maskProvider;
  41. Pedestal & m_pedestal;
  42. int m_normalization;
  43. int m_event;
  44. const int m_calculateInitialValueEvents;
  45. };
  46. }