00001
00002
00003
00004
00005
00006 #ifndef MyTriggerH
00007 #define MyTriggerH
00008
00009
00010
00011
00012
00022
00023
00024
00025
00026
00027
00028 #include <iostream>
00029 #include <string>
00030 #include <vector>
00031 #include <map>
00032
00033
00034 class MyTrigger{
00035
00036 public:
00037
00038 MyTrigger(void) {
00039 std::vector<std::string> empty;
00040 std::vector<int> empty2;
00041 init(false, false, false, empty, empty2, empty, empty2, empty, empty2);
00042 }
00044 MyTrigger(const bool trigger_l1_defined,
00045 const bool trigger_l2_defined,
00046 const bool trigger_ef_defined,
00047 const std::vector<std::string> trigger_keys_l1,
00048 const std::vector<int> trigger_keys_status_l1,
00049 const std::vector<std::string> trigger_keys_l2,
00050 const std::vector<int> trigger_keys_status_l2,
00051 const std::vector<std::string> trigger_keys_ef,
00052 const std::vector<int> trigger_keys_status_ef) {
00053 init(trigger_l1_defined,
00054 trigger_l2_defined,
00055 trigger_ef_defined,
00056 trigger_keys_l1,
00057 trigger_keys_status_l1,
00058 trigger_keys_l2,
00059 trigger_keys_status_l2,
00060 trigger_keys_ef,
00061 trigger_keys_status_ef);
00062 }
00064
00065
00066
00067
00068 bool isTriggered(std::string TriggerItem, unsigned int level) const;
00070 std::vector<std::string> triggerkey(unsigned int level) const;
00071 std::map<std::string, bool> triggermap(unsigned int level);
00072
00073
00074 private:
00075
00076
00077 bool m_L1defined;
00078 bool m_L2defined;
00079 bool m_EFdefined;
00080
00081
00082 std::map<std::string, bool> m_TriggerMapL1;
00083 std::map<std::string, bool> m_TriggerMapL2;
00084 std::map<std::string, bool> m_TriggerMapEF;
00085 std::vector<std::string> m_trigger_keys_l1;
00086 std::vector<std::string> m_trigger_keys_l2;
00087 std::vector<std::string> m_trigger_keys_ef;
00088
00089
00090
00091 void set_TriggerItem(std::string TriggerItem, bool triggered, unsigned int level);
00092 void init(const bool trigger_l1_defined,
00093 const bool trigger_l2_defined,
00094 const bool trigger_ef_defined,
00095 const std::vector<std::string> & trigger_keys_l1,
00096 const std::vector<int> & trigger_keys_status_l1,
00097 const std::vector<std::string> & trigger_keys_l2,
00098 const std::vector<int> & trigger_keys_status_l2,
00099 const std::vector<std::string> & trigger_keys_ef,
00100 const std::vector<int> & trigger_keys_status_ef);
00101
00102
00103
00104 };
00105
00106 #endif