00001 /* 00002 * \class TsExternalTriggerTool 00003 * 00004 * \brief Adds externally forced trigger to trigger system 00005 * 00006 * dandwyer@caltech.edu 2008/11/15 00007 * 00008 */ 00009 00010 #ifndef _TSEXTERNALTRIGGERTOOL_H_ 00011 #define _TSEXTERNALTRIGGERTOOL_H_ 00012 00013 #include "TrigSim/ITsTriggerTool.h" 00014 #include "GaudiAlg/GaudiTool.h" 00015 00016 #include "Context/TimeStamp.h" 00017 #include "Conventions/Detectors.h" 00018 #include "Conventions/Trigger.h" 00019 00020 #include <vector> 00021 #include <string> 00022 00023 namespace DayaBay{ 00024 class ElecHeader; 00025 class SimTrigHeader; 00026 } 00027 00028 class TsExternalTriggerTool : public GaudiTool, 00029 virtual public ITsTriggerTool 00030 { 00031 public: 00032 00033 TsExternalTriggerTool(const std::string& type, 00034 const std::string& name, 00035 const IInterface* parent); 00036 virtual ~TsExternalTriggerTool(); 00037 00038 virtual StatusCode mutate(DayaBay::SimTrigHeader* trigHeader, 00039 const DayaBay::ElecHeader& elecHeader); 00040 virtual StatusCode initialize(); 00041 virtual StatusCode finalize(); 00042 00043 private: 00044 std::vector<std::string> m_detectorsToProcess; 00045 int m_triggerOffset; 00046 double m_frequency; 00047 bool m_autoSet; 00048 00049 DayaBay::Trigger::TriggerType_t getTriggerType(DayaBay::Detector det); 00050 }; 00051 00052 #endif /* _TSEXTERNALTRIGGERTOOL_H_ */