/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #ifndef COINCIDENCETIGHT_H 00002 #define COINCIDENCETIGHT_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/RecHeader.h" 00010 #include "Event/UserDataHeader.h" 00011 #include <vector> 00012 #include <string> 00013 #include <map> 00014 00015 class IDaqDetailsSvc; 00016 class IDataProvider; 00017 00018 class CoincidenceTight: public DybBaseAlg 00019 { 00020 public: 00022 CoincidenceTight(const std::string& name, ISvcLocator* svcloc); 00023 virtual ~CoincidenceTight(); 00024 00026 StatusCode initialize(); 00027 StatusCode execute(); 00028 StatusCode finalize(); 00029 00030 private: 00031 // properties 00032 std::string m_location; 00033 std::string m_tagLocation; 00034 std::string m_recHeaderLoc; 00035 double m_timeWindow; 00036 double m_maxGapWindow; 00037 00038 // regular memebers 00039 IDataProviderSvc* m_archiveSvc; 00040 IDaqDetailsSvc* m_daqDetailsSvc; 00041 std::map<DetectorId::DetectorId_t, std::vector<const DayaBay::IHeader*> > m_inputHeaders; 00042 std::map<DetectorId::DetectorId_t, std::vector<DayaBay::RecHeader*> > m_adScaledHeaders; 00043 std::map<DetectorId::DetectorId_t, TimeStamp> m_lastTimeStamp; 00044 std::map<DetectorId::DetectorId_t, std::string > m_detName; 00045 std::map<DetectorId::DetectorId_t, float> m_integratedLiveTime_sec; 00046 std::map<DetectorId::DetectorId_t, float> m_integratedGapTime_sec; 00047 std::map<DetectorId::DetectorId_t, float> m_extendTimeMultiplet_sec; 00048 int m_integratedNGaps; 00049 00050 int m_execNum; 00051 int m_nTagged; 00052 int m_nTaggedTriggers; 00053 00054 // helper methods 00055 void SaveRecData(std::vector<const DayaBay::IHeader*>& inputHeaders, DayaBay::UserDataHeader* dataHeader); 00056 void SaveAdScaledData(std::vector<DayaBay::RecHeader*>& inputHeaders, DayaBay::UserDataHeader* dataHeader); 00057 void SaveCalibStatsData(std::vector<const DayaBay::IHeader*>& inputHeaders, DayaBay::UserDataHeader* dataHeader); 00058 void SaveMuonData(DayaBay::UserDataHeader* dataHeader); 00059 void SaveOtherData(std::vector<const DayaBay::IHeader*>& inputHeaders, DayaBay::UserDataHeader* dataHeader); 00060 bool PreSelection(DayaBay::UserDataHeader* dataHeader); 00061 00062 }; 00063 00064 #endif