- /*
- * TbUTPedestalCalculator.h
- *
- * Created on: Oct 10, 2014
- * Author: ADendek
- */
-
- #pragma once
- #include "TbUTIPedestalFollowing.h"
- #include "TbUTIChannelMaskProvider.h"
- #include "TbUTPedestal.h"
- #include <stdexcept>
-
- namespace TbUT
- {
- class PedestalCalculator: public IPedestalFollowing
- {
- enum RunPhase
- {
- CALCULATE_INITIAL_VALUE,
- NORMALIZE_INITIAL_VALUE,
- CALUCLATE_PEDESTAL
- };
-
- public:
- PedestalCalculator(IChannelMaskProvider& p_maskProvider, Pedestal & p_pedestal);
- StatusCode processEvent(RawData<>* p_data);
- void savePedestalToFile(const std::string& p_filename);
-
- private:
-
- StatusCode calculateInitialValue(RawData<>* p_data);
- StatusCode normalizeInitialValue();
- StatusCode calculaPedestal(RawData<>* p_data);
-
- RunPhase getRunPhase() const;
-
- double calculateUpdate(int p_channel, RawData<>::SignalVector& p_data);
-
- IChannelMaskProvider& m_maskProvider;
- Pedestal & m_pedestal;
- int m_normalization;
- int m_event;
- const int m_calculateInitialValueEvents;
- };
- }