NtupleReader/src/MyTrigger.cxx

00001 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00002 // some other methods SM 
00003 // 13.04.2007, AUTHOR: MANFRED GROH
00004 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00005 
00006 //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
00007 //:: IMPLEMENTATION OF METHODS DEFINED IN THE CLASS MyTrigger ::
00008 //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
00009 
00010 //*****************************************************************************
00011 #include "NtupleReader/MyTrigger.h"
00012 
00013 //:::::::::::::::::::::::::
00014 //:: NAME SPACE SETTINGS ::
00015 //:::::::::::::::::::::::::
00016 
00017 using namespace std;
00018 
00019 //:::::::::::::::::
00020 //:: METHOD init ::
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 //:: METHOD set_TriggerItem ::
00094 //::::::::::::::::::::::::::::
00095 
00096 void MyTrigger::set_TriggerItem(string TriggerItem, bool triggered, unsigned int level){
00097                 // insert trigger items in map
00098                 // cout<<"Set trigger Level "<<level<<" "<<TriggerItem<<" "<<(int)triggered<<endl;
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 //:: METHOD isTriggered ::
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 }

Generated on Tue Oct 21 11:50:46 2008 for NtupleAnalysis by  doxygen 1.5.1