Go to the documentation of this file.00001 #include "DQM/SiStripMonitorClient/interface/SiStripConfigParser.h"
00002 #include "DQMServices/ClientConfig/interface/ParserFunctions.h"
00003 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00004 #include <iostream>
00005
00006
00007
00008
00009 SiStripConfigParser::SiStripConfigParser() : DQMParserBase() {
00010 edm::LogInfo("SiStripConfigParser") <<
00011 " Creating SiStripConfigParser " << "\n" ;
00012 }
00013
00014
00015
00016 SiStripConfigParser::~SiStripConfigParser() {
00017 edm::LogInfo("SiStripConfigParser") <<
00018 " Deleting SiStripConfigParser " << "\n" ;
00019 }
00020
00021
00022
00023 bool SiStripConfigParser::getMENamesForSummary(std::map<std::string, std::string>& me_names) {
00024 if (!doc) {
00025 std::cout << " SiStripConfigParser::Configuration File is not set!!! " << std::endl;
00026 return false;
00027 }
00028
00029 me_names.clear();
00030 unsigned int summaryNodes = doc->getElementsByTagName(qtxml::_toDOMS("SummaryPlot"))->getLength();
00031 if (summaryNodes == 0) return false;
00033 xercesc::DOMNode* summaryNode = doc->getElementsByTagName(qtxml::_toDOMS("SummaryPlot"))->item(0);
00034
00035 if (! summaryNode) return false;
00036 xercesc::DOMElement* summaryElement = static_cast<xercesc::DOMElement *>(summaryNode);
00037 if (! summaryElement) return false;
00038
00039
00040 xercesc::DOMNodeList * meList
00041 = summaryElement->getElementsByTagName(qtxml::_toDOMS("MonElement"));
00042 for (unsigned int k = 0; k < meList->getLength(); k++) {
00043 xercesc::DOMNode* meNode = meList->item(k);
00044 if (!meNode) return false;
00045 xercesc::DOMElement* meElement = static_cast<xercesc::DOMElement *>(meNode);
00046 if (!meElement) return false;
00047 std::string me_name = qtxml::_toString(meElement->getAttribute (qtxml::_toDOMS ("name")));
00048 std::string me_type = qtxml::_toString(meElement->getAttribute (qtxml::_toDOMS ("type")));
00049 me_names.insert(std::pair<std::string,std::string>(me_name,me_type));
00050 }
00051 if (me_names.size() == 0) return false;
00052 else return true;
00053
00054 }
00055
00056
00057
00058 bool SiStripConfigParser::getFrequencyForSummary(int& u_freq) {
00059 if (!doc) {
00060 std::cout << " SiStripConfigParser::Configuration File is not set!!! " << std::endl;
00061 return false;
00062 }
00063
00064 unsigned int summaryNodes = doc->getElementsByTagName(qtxml::_toDOMS("SummaryPlot"))->getLength();
00065 if (summaryNodes != 1 ) return false;
00067 xercesc::DOMNode* summaryNode = doc->getElementsByTagName(qtxml::_toDOMS("SummaryPlot"))->item(0);
00068
00069 if (! summaryNode) return false;
00070 xercesc::DOMElement* summaryElement = static_cast<xercesc::DOMElement *>(summaryNode);
00071 if (! summaryElement) return false;
00072
00073 u_freq = atoi(qtxml::_toString(summaryElement->getAttribute(qtxml::_toDOMS("update_frequency"))).c_str());
00074 return true;
00075 }