00001 /* 00002 * \class ROsFecReadoutTool 00003 * 00004 * \brief Fee Readout Tool 00005 * 00006 * bseilhan@iit.edu Wed Sep 17 21:33:23 CDT 2008 00007 * 00008 */ 00009 00010 #ifndef _ROFECREADOUTTOOLL_H_ 00011 #define _ROFECREADOUTTOOLL_H_ 00012 00013 #include "ReadoutSim/IROsReadoutTool.h" 00014 #include "GaudiAlg/GaudiTool.h" 00015 00016 #include "Conventions/Detectors.h" 00017 #include "Conventions/Trigger.h" 00018 00019 #include <vector> 00020 #include <string> 00021 00022 namespace DayaBay{ 00023 class ElecHeader; 00024 class SimTrigHeader; 00025 class ReadoutTriggerDataPkg; 00026 class SimReadoutHeader; 00027 } 00028 00029 class ROsFecReadoutTool : public GaudiTool , virtual public IROsReadoutTool 00030 { 00031 public: 00032 00033 ROsFecReadoutTool(const std::string& type, 00034 const std::string& name, 00035 const IInterface* parent); 00036 00037 virtual ~ROsFecReadoutTool(); 00038 00039 virtual StatusCode mutate(DayaBay::SimReadoutHeader *roHeader, 00040 std::vector<DayaBay::ReadoutTriggerDataPkg*>& trigDataPkg, 00041 const DayaBay::ElecHeader& elecHeader); 00042 00043 virtual StatusCode initialize(); 00044 virtual StatusCode finalize(); 00045 00046 private: 00047 virtual StatusCode makeReadouts(DayaBay::SimReadoutHeader *roHeader, 00048 const DayaBay::SimTrigHeader& trigHeader, 00049 const DayaBay::ElecHeader& elecHeader); 00050 00051 std::vector<std::string> m_detectorsToProcess; 00052 }; 00053 00054 00055 00056 #endif /* _ROFECREADOUTTOOLL_H_ */