00001 #ifndef MIXINGALGORITHM_H 00002 #define MIXINGALGORITHM_H 00003 00004 #include "DybAlg/DybAlgorithm.h" 00005 #include "Event/Readout.h" 00006 #include "Event/ReadoutHeader.h" 00007 #include "Event/ReadoutPmtCrate.h" 00008 #include "Event/ReadoutPmtChannel.h" 00009 #include "PerReadoutEvent/PerReadout.h" 00010 #include "PerReadoutEvent/PerReadoutHeader.h" 00011 #include "PerReadoutEvent/PerReadoutPmtCrate.h" 00012 #include "PerReadoutEvent/PerReadoutPmtChannel.h" 00013 00014 #include "MixHeader.h" 00015 #include "IMixingSvc.h" 00016 00017 class MixingAlgorithm : public DybAlgorithm<DayaBay::ReadoutHeader> 00018 { 00019 public: 00020 MixingAlgorithm (const std::string& name, ISvcLocator* pSvcLocator); 00021 StatusCode initialize(); 00022 StatusCode execute(); 00023 StatusCode finalize(); 00024 00025 private: 00026 IMixingSvc* m_mixSvc; 00027 DayaBay::Readout* convert(const PerReadout& perRo); 00028 DayaBay::ReadoutPmtCrate* convert(const PerReadoutPmtCrate& perRoPcr); 00029 DayaBay::ReadoutPmtChannel convert(const PerReadoutPmtChannel& perRoPch); 00030 00031 DayaBay::Readout* assign(const DayaBay::Readout& Ro); 00032 DayaBay::ReadoutPmtCrate* assign(const DayaBay::ReadoutPmtCrate& RoPcr); 00033 DayaBay::ReadoutPmtChannel assign(const DayaBay::ReadoutPmtChannel& RoPch); 00034 00035 void reSetTimeStamps(const PerReadoutHeader* proh); 00036 }; 00037 00038 #endif // MIXINGALGORITHM_H