/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #ifndef ADCOINCTAGGING_H 00002 #define ADCOINCTAGGING_H 00003 00004 #include "DybAlg/DybBaseAlg.h" 00005 #include "Event/IHeader.h" 00006 #include "Event/HeaderObject.h" 00007 #include "Conventions/DetectorId.h" 00008 #include "Context/TimeStamp.h" 00009 #include "Event/UserDataHeader.h" 00010 #include <vector> 00011 #include <string> 00012 #include <map> 00013 00014 class IDaqDetailsSvc; 00015 00016 class ADCoincTagging: public DybBaseAlg 00017 { 00018 public: 00020 ADCoincTagging(const std::string& name, ISvcLocator* svcloc); 00021 virtual ~ADCoincTagging(); 00022 00024 StatusCode initialize(); 00025 StatusCode execute(); 00026 StatusCode finalize(); 00027 00028 private: 00029 // properties 00030 std::string m_location; 00031 std::string m_tagLocation; 00032 std::string m_recHeaderLoc; 00033 double m_timeWindow; 00034 double m_maxGapWindow; 00035 00036 // regular memebers 00037 IDaqDetailsSvc* m_daqDetailsSvc; 00038 std::map<DetectorId::DetectorId_t, std::vector<const DayaBay::IHeader*> > m_inputHeaders; 00039 std::map<DetectorId::DetectorId_t, TimeStamp> m_lastTimeStamp; 00040 int m_nTagged; 00041 int m_nTaggedTriggers; 00042 00043 // helper methods 00044 void SaveRecData(std::vector<const DayaBay::IHeader*>& inputHeaders, DayaBay::UserDataHeader* dataHeader); 00045 void SaveCalibStatsData(std::vector<const DayaBay::IHeader*>& inputHeaders, DayaBay::UserDataHeader* dataHeader); 00046 void SaveOtherData(std::vector<const DayaBay::IHeader*>& inputHeaders, DayaBay::UserDataHeader* dataHeader); 00047 00048 }; 00049 00050 #endif