-
- #pragma once
-
- #include "GaudiAlg/GaudiTupleAlg.h"
- #include "TbUTRawData.h"
- #include "TbUTCluster.h"
-
- #include <string>
- #include <stdexcept>
-
-
- namespace TbUT
- {
- class NTupleCreator : public GaudiTupleAlg {
-
- class DataError: public std::runtime_error
- {
- public:
- DataError(const std::string& err) :
- std::runtime_error(err)
- {
- }
- };
-
- public:
- NTupleCreator(const std::string& name, ISvcLocator* pSvcLocator);
-
- virtual StatusCode initialize();
- virtual StatusCode execute();
-
- private:
- void bookRawData();
- void bookHeaderData();
- void bookPedestal();
- void bookCMS();
- void bookClusters();
-
-
- void fillRawData();
- void fillHeaderData();
- void fillPedestal();
- void fillCMS();
- void fillClusters();
- template <typename DATA_TYPE = int>
- RawDataContainer<DATA_TYPE>* getDataFromTES(const std::string& p_location);
- ClusterContainer* getClustersFromTES();
-
- int m_eventNumber;
- int m_storeEventNumber;
- bool m_isRawWritten;
- bool m_isHeaderWritten;
- bool m_isPedestalWritten;
- bool m_isCMSWritten;
- bool m_isClusterWritten;
-
- std::string m_rawLocation;
- std::string m_pedestalLocation;
- std::string m_cmsLocation;
- std::string m_clusterLocation;
- std::string m_headerLocation;
-
- NTuple::Array<double> m_rawSignal;
- NTuple::Array<double> m_header0Signal;
- NTuple::Array<double> m_header1Signal;
- NTuple::Array<double> m_header2Signal;
- NTuple::Array<double> m_header3Signal;
- NTuple::Array<double> m_header3P1Signal;
- NTuple::Array<double> m_header3P2Signal;
- NTuple::Array<double> m_pedestalSignal;
- NTuple::Array<double> m_cmsSignal;
-
- NTuple::Item<int> m_clusterNumberPerEvent;
- NTuple::Item<unsigned int> m_tdc;
- NTuple::Item<unsigned long long> m_timestamp;
-
- NTuple::Array<double> m_clusterPosition;
- NTuple::Array<int> m_clusterSize;
- NTuple::Array<int> m_clusterSeedPosition;
- NTuple::Array<double> m_clusterCharge;
- NTuple::Array<double> m_clusterSeedCharge;
- NTuple::Array<double> m_clusterCharge2StripLeft;
- NTuple::Array<double> m_clusterCharge1StripLeft;
- NTuple::Array<double> m_clusterCharge2StripRight;
- NTuple::Array<double> m_clusterCharge1StripRight;
-
- };
-
- }