#include <DQMOffline/Trigger/interface/TrigCodes.h>
Public Member Functions | |
TrigBitSet | getCode (const char *descript) const |
void | getCodeName (TrigBitSet code, std::string &id) const |
void | printCodes () |
void | setCode (const char *descript, int bitNr) |
void | setCode (const char *descript, TrigBitSet code) |
size_t | size () const |
void | sort () |
TrigBitSetMap () | |
~TrigBitSetMap () | |
Static Public Member Functions | |
static bool | keyComp (const std::pair< std::string, TrigBitSet > &lhs, const std::pair< std::string, TrigBitSet > &rhs) |
Private Attributes | |
std::vector< std::pair < std::string, TrigBitSet > > | codeDefs_ |
Definition at line 28 of file TrigCodes.h.
TrigCodes::TrigBitSetMap::TrigBitSetMap | ( | ) | [inline] |
TrigCodes::TrigBitSetMap::~TrigBitSetMap | ( | ) | [inline] |
TrigCodes::TrigBitSet TrigCodes::TrigBitSetMap::getCode | ( | const char * | descript | ) | const |
Definition at line 40 of file TrigCodes.cc.
References code, codeDefs_, first, i, and NULL.
Referenced by TrigCodes::getCode().
00041 { 00042 //first copy the character string to a local array so we can manipulate it 00043 char localDescript[512]; 00044 strcpy(localDescript,descript); 00045 00046 TrigBitSet code; 00047 char* codeKey = strtok(localDescript,":"); 00048 // std::map<std::string,int> ::const_iterator mapIt; 00049 while(codeKey!=NULL){ 00050 bool found=false; 00051 00052 for(size_t i=0;i<codeDefs_.size() && !found;i++){ 00053 if(codeDefs_[i].first.compare(codeKey)==0){ 00054 found=true; 00055 code |= codeDefs_[i].second; 00056 00057 } 00058 } 00059 00060 if(!found) edm::LogError("TrigCodes::TrigBitSetMap") <<"TrigCodes::TrigBitSetMap::getCode : Error, Key "<<codeKey<<" not found"; 00061 codeKey = strtok(NULL,":"); //getting new substring 00062 00063 } 00064 return code; 00065 }
void TrigCodes::TrigBitSetMap::getCodeName | ( | TrigBitSet | code, | |
std::string & | id | |||
) | const |
Definition at line 72 of file TrigCodes.cc.
References codeDefs_, empty, i, and edm::second().
Referenced by TrigCodes::getCodeName().
00073 { 00074 id.clear(); 00075 for(size_t i=0;i<codeDefs_.size();i++){ 00076 if((code&codeDefs_[i].second)==codeDefs_[i].second){ 00077 if(!id.empty()) id+=":";//seperating entries by a ':' 00078 id+=codeDefs_[i].first; 00079 } 00080 00081 } 00082 00083 }
bool TrigCodes::TrigBitSetMap::keyComp | ( | const std::pair< std::string, TrigBitSet > & | lhs, | |
const std::pair< std::string, TrigBitSet > & | rhs | |||
) | [static] |
void TrigCodes::TrigBitSetMap::printCodes | ( | ) |
Definition at line 85 of file TrigCodes.cc.
References codeDefs_, GenMuonPlsPt100GeV_cfg::cout, lat::endl(), first, i, and edm::second().
Referenced by TrigCodes::printCodes().
00086 { 00087 std::cout <<"trig bits defined"<<std::endl; 00088 for(size_t i=0;i<codeDefs_.size();i++) std::cout <<" key : "<<codeDefs_[i].first<<" bit "<<codeDefs_[i].second<<std::endl; 00089 }
Definition at line 17 of file TrigCodes.cc.
References code, TrigCodes::maxNrBits(), and setCode().
00018 { 00019 if(bitNr<maxNrBits()){ 00020 TrigBitSet code; 00021 code.set(bitNr); 00022 setCode(descript,code); 00023 }else{ 00024 edm::LogWarning("TrigCodes::TrigBitSetMap") <<" Warning, trying to store at bit "<<bitNr<<" but max nr bits is "<<maxNrBits(); 00025 } 00026 }
void TrigCodes::TrigBitSetMap::setCode | ( | const char * | descript, | |
TrigBitSet | code | |||
) |
Definition at line 28 of file TrigCodes.cc.
References codeDefs_, first, and i.
Referenced by setCode(), and TrigCodes::setCodes().
00029 { 00030 bool found=false; 00031 for(size_t i=0;i<codeDefs_.size() && !found;i++){ 00032 if(codeDefs_[i].first.compare(descript)==0) found=true; 00033 } 00034 if(!found) codeDefs_.push_back(std::make_pair<std::string,TrigBitSet>(descript,code)); 00035 //_codeDefs[descript] = code; 00036 }
size_t TrigCodes::TrigBitSetMap::size | ( | void | ) | const [inline] |
Definition at line 49 of file TrigCodes.h.
References codeDefs_.
Referenced by TrigCodes::setCodes().
00049 {return codeDefs_.size();}
void TrigCodes::TrigBitSetMap::sort | ( | ) | [inline] |
Definition at line 48 of file TrigCodes.h.
References codeDefs_, keyComp(), and python::multivaluedict::sort().
Referenced by TrigCodes::setCodes().
std::vector<std::pair<std::string,TrigBitSet> > TrigCodes::TrigBitSetMap::codeDefs_ [private] |
Definition at line 32 of file TrigCodes.h.
Referenced by getCode(), getCodeName(), printCodes(), setCode(), size(), and sort().