00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "NtupleReader/MyTrigger.h"
00012
00013
00014
00015
00016
00017 using namespace std;
00018
00019
00020
00021
00022 void MyTrigger::init(const bool trigger_l1_defined,
00023 const bool trigger_l2_defined,
00024 const bool trigger_ef_defined,
00025 const vector<string> & trigger_keys_l1,
00026 const vector<int> & trigger_keys_status_l1,
00027 const vector<string> & trigger_keys_l2,
00028 const vector<int> & trigger_keys_status_l2,
00029 const vector<string> & trigger_keys_ef,
00030 const vector<int> & trigger_keys_status_ef){
00031
00032 m_L1defined = trigger_l1_defined;
00033 m_L2defined = trigger_l2_defined;
00034 m_EFdefined = trigger_ef_defined;
00035 m_trigger_keys_l1 = trigger_keys_l1;
00036 m_trigger_keys_l2 = trigger_keys_l2;
00037 m_trigger_keys_ef = trigger_keys_ef;
00038
00039 if(trigger_l1_defined){
00040 for(unsigned int j=0; j<trigger_keys_l1.size(); j++){
00041 set_TriggerItem(trigger_keys_l1[j],
00042 (bool)trigger_keys_status_l1[j],1);
00043 }
00044 }
00045 if(trigger_l2_defined){
00046 for(unsigned int j=0; j<trigger_keys_l2.size(); j++){
00047 set_TriggerItem(trigger_keys_l2[j],
00048 (bool)trigger_keys_status_l2[j],2);
00049 }
00050 }
00051 if(trigger_ef_defined){
00052 for(unsigned int j=0; j<trigger_keys_ef.size(); j++){
00053 set_TriggerItem(trigger_keys_ef[j],
00054 (bool)trigger_keys_status_ef[j],3);
00055 }
00056 }
00057 return;
00058 }
00059
00060
00061
00062 map<string, bool> MyTrigger::triggermap(unsigned int level) {
00063
00064 map<string, bool> dummy;
00065 if (level==1&& m_L1defined) {
00066 dummy=m_TriggerMapL1;
00067 }
00068 if (level==2&& m_L2defined) {
00069 dummy=m_TriggerMapL2;
00070 }
00071 if (level==3&& m_EFdefined) {
00072 dummy=m_TriggerMapEF;
00073 }
00074 return dummy;
00075 }
00076 vector<string> MyTrigger::triggerkey(unsigned int level) const {
00077
00078 vector<string> dummy(0);
00079
00080 if (level==1&& m_L1defined) {
00081 dummy=m_trigger_keys_l1;
00082 }
00083 if (level==2&& m_L2defined) {
00084 dummy=m_trigger_keys_l2;
00085 }
00086 if (level==3&& m_EFdefined) {
00087 dummy=m_trigger_keys_ef;
00088 }
00089 return dummy;
00090 }
00091
00092
00093
00094
00095
00096 void MyTrigger::set_TriggerItem(string TriggerItem, bool triggered, unsigned int level){
00097
00098
00099 if (level == 1 && m_L1defined) {
00100 m_TriggerMapL1.insert(map<string,bool>::value_type(TriggerItem, triggered));
00101 return;
00102 } else if (level == 2 && m_L2defined) {
00103 m_TriggerMapL2.insert(map<string,bool>::value_type(TriggerItem, triggered));
00104 return;
00105 } else if (level == 3 && m_EFdefined) {
00106 m_TriggerMapEF.insert(map<string,bool>::value_type(TriggerItem, triggered));
00107 return;
00108 }
00109 }
00110
00111
00112
00113
00114
00115
00116 bool MyTrigger::isTriggered(string TriggerItem, unsigned int level) const {
00117
00118 map<string,bool>::const_iterator it;
00119
00120 if (level == 1 && m_L1defined) {
00121 it = m_TriggerMapL1.find(TriggerItem);
00122 if (it != m_TriggerMapL1.end()) {
00123 return (it->second);
00124 } else {
00125 cout << "Trigger Item " << TriggerItem
00126 << " not defined!!!" << endl;
00127 return false;
00128 }
00129 } else if (level == 2 && m_L2defined) {
00130 it = m_TriggerMapL2.find(TriggerItem);
00131 if (it != m_TriggerMapL2.end()) {
00132 return (it->second);
00133 } else {
00134 cout << "Trigger Item " << TriggerItem
00135 << " not defined!!!" << endl;
00136 return false;
00137 }
00138 } else if (level == 3 && m_EFdefined) {
00139 it = m_TriggerMapEF.find(TriggerItem);
00140 if (it != m_TriggerMapEF.end()) {
00141 return (it->second);
00142 } else {
00143 cout << "Trigger Item " << TriggerItem
00144 << " not defined!!!" << endl;
00145 return false;
00146 }
00147 } else {
00148 cout << "Trigger level enum TrigLevel["
00149 << level << "] not defined!!!" << endl;
00150 return false;
00151 }
00152 }