#include <DQMHistoryServiceBase.h>
Public Member Functions | |
virtual bool | checkForCompatibility (std::string ss) |
DQMHistoryServiceBase (const edm::ParameterSet &, const edm::ActivityRegistry &) | |
virtual void | getMetaDataString (std::stringstream &ss) |
virtual void | getObj (HDQMSummary *&obj) |
virtual void | initialize () |
virtual void | setSeparator (std::string const &) |
virtual | ~DQMHistoryServiceBase () |
Protected Member Functions | |
virtual void | createSummary () |
virtual uint32_t | getRunNumber () const |
virtual void | openRequestedFile () |
virtual uint32_t | returnDetComponent (const MonitorElement *MEs) |
virtual void | scanTreeAndFillSummary (const std::vector< MonitorElement * > &MEs, HDQMSummary *summary, std::string &histoName, std::vector< std::string > &Quantities) |
virtual bool | setDBLabelsForGauss (std::string &keyName, std::vector< std::string > &userDBContent) |
virtual bool | setDBLabelsForLandau (std::string &keyName, std::vector< std::string > &userDBContent) |
virtual bool | setDBLabelsForStat (std::string &keyName, std::vector< std::string > &userDBContent) |
virtual bool | setDBLabelsForUser (std::string &keyName, std::vector< std::string > &userDBContent, std::string &quantity) |
virtual bool | setDBLabelsForUser (std::string &keyName, std::vector< std::string > &userDBContent) |
virtual bool | setDBValuesForGauss (std::vector< MonitorElement * >::const_iterator iterMes, HDQMSummary::InputVector &values) |
virtual bool | setDBValuesForLandau (std::vector< MonitorElement * >::const_iterator iterMes, HDQMSummary::InputVector &values) |
virtual bool | setDBValuesForStat (std::vector< MonitorElement * >::const_iterator iterMes, HDQMSummary::InputVector &values) |
virtual bool | setDBValuesForUser (std::vector< MonitorElement * >::const_iterator iterMes, HDQMSummary::InputVector &values) |
virtual bool | setDBValuesForUser (std::vector< MonitorElement * >::const_iterator iterMes, HDQMSummary::InputVector &values, std::string &quantity) |
Protected Attributes | |
DQMStore * | dqmStore_ |
HDQMfitUtilities * | fitME |
std::string | fSep |
edm::ParameterSet | iConfig_ |
HDQMSummary * | obj_ |
Definition at line 18 of file DQMHistoryServiceBase.h.
DQMHistoryServiceBase::DQMHistoryServiceBase | ( | const edm::ParameterSet & | iConfig, |
const edm::ActivityRegistry & | aReg | ||
) |
Definition at line 12 of file DQMHistoryServiceBase.cc.
: iConfig_(iConfig), fSep("@") { edm::LogInfo("DQMHistoryServiceBase") << "[DQMHistoryServiceBase::DQMHistoryServiceBase]"; }
DQMHistoryServiceBase::~DQMHistoryServiceBase | ( | ) | [virtual] |
Definition at line 20 of file DQMHistoryServiceBase.cc.
{ edm::LogInfo("DQMHistoryServiceBase") << "[DQMHistoryServiceBase::~DQMHistoryServiceBase]"; }
bool DQMHistoryServiceBase::checkForCompatibility | ( | std::string | ss | ) | [virtual] |
Definition at line 34 of file DQMHistoryServiceBase.cc.
References getRunNumber().
{ edm::LogInfo("DQMHistoryServiceBase") << "[DQMHistoryServiceBase::checkForCompatibility]"; if(ss=="") return true; uint32_t previousRun=atoi(ss.substr(ss.find("Run ")+4).c_str()); edm::LogInfo("DQMHistoryServiceBase") << "[DQMHistoryServiceBase::checkForCompatibility] extracted string " << previousRun ; return previousRun<getRunNumber(); }
void DQMHistoryServiceBase::createSummary | ( | ) | [protected, virtual] |
Definition at line 45 of file DQMHistoryServiceBase.cc.
References dqmStore_, DQMStore::getAllContents(), edm::ParameterSet::getParameter(), getRunNumber(), edm::ParameterSet::getUntrackedParameter(), HDQMSummary::getUserDBContent(), template_SiPixelHistoryDQMService_cfg::histoList, i, iConfig_, obj_, openRequestedFile(), scanTreeAndFillSummary(), setDBLabelsForGauss(), setDBLabelsForLandau(), setDBLabelsForStat(), setDBLabelsForUser(), HDQMSummary::setRunNr(), and HDQMSummary::setUserDBContent().
Referenced by getObj().
{ //LOOP OVER THE LIST OF SUMMARY OBJECTS TO INSERT IN DB obj_=new HDQMSummary(); obj_->setRunNr(getRunNumber()); // DISCOVER SET OF HISTOGRAMS & QUANTITIES TO BE UPLOADED std::vector<std::string> userDBContent; typedef std::vector<edm::ParameterSet> VParameters; VParameters histoList = iConfig_.getParameter<VParameters>("histoList"); VParameters::iterator ithistoList = histoList.begin(); VParameters::iterator ithistoListEnd = histoList.end(); for(; ithistoList != ithistoListEnd; ++ithistoList ) { std::string keyName = ithistoList->getUntrackedParameter<std::string>("keyName"); std::vector<std::string> Quantities = ithistoList->getUntrackedParameter<std::vector<std::string> >("quantitiesToExtract"); for (size_t i=0;i<Quantities.size();++i){ if ( Quantities[i] == "landau" ) setDBLabelsForLandau(keyName, userDBContent); else if ( Quantities[i] == "gauss" ) setDBLabelsForGauss(keyName, userDBContent); else if ( Quantities[i] == "stat" ) setDBLabelsForStat(keyName, userDBContent); else setDBLabelsForUser(keyName, userDBContent, Quantities[i]); } } obj_->setUserDBContent(userDBContent); std::stringstream ss; ss << "[DQMHistoryServiceBase::scanTreeAndFillSummary] QUANTITIES TO BE INSERTED IN DB :" << std::endl; std::vector<std::string> userDBContentA = obj_->getUserDBContent(); for (size_t i=0;i<userDBContentA.size();++i){ ss << userDBContentA[i]<< std::endl; } edm::LogInfo("HDQMSummary") << ss.str(); // OPEN DQM FILE openRequestedFile(); const std::vector<MonitorElement*>& MEs = dqmStore_->getAllContents(iConfig_.getUntrackedParameter<std::string>("ME_DIR","DQMData")); // FILL SUMMARY edm::LogInfo("HDQMSummary") << "\nSTARTING TO FILL OBJECT " << std::endl; ithistoList = histoList.begin(); for(; ithistoList != ithistoListEnd; ++ithistoList ) { std::string keyName = ithistoList->getUntrackedParameter<std::string>("keyName"); std::vector<std::string> Quantities = ithistoList->getUntrackedParameter<std::vector<std::string> >("quantitiesToExtract"); scanTreeAndFillSummary(MEs, obj_, keyName, Quantities); } }
virtual void DQMHistoryServiceBase::getMetaDataString | ( | std::stringstream & | ss | ) | [inline, virtual] |
Definition at line 24 of file DQMHistoryServiceBase.h.
References getRunNumber().
{ss << "Run " << getRunNumber();};
virtual void DQMHistoryServiceBase::getObj | ( | HDQMSummary *& | obj | ) | [inline, virtual] |
Definition at line 28 of file DQMHistoryServiceBase.h.
References createSummary(), and obj_.
{createSummary(); obj=obj_;}
uint32_t DQMHistoryServiceBase::getRunNumber | ( | ) | const [protected, virtual] |
Definition at line 239 of file DQMHistoryServiceBase.cc.
References edm::ParameterSet::getParameter(), and iConfig_.
Referenced by checkForCompatibility(), createSummary(), and getMetaDataString().
{ edm::LogInfo("DQMHistoryServiceBase") << "[DQMHistoryServiceBase::getRunNumber] " << iConfig_.getParameter<uint32_t>("RunNb"); return iConfig_.getParameter<uint32_t>("RunNb"); }
void DQMHistoryServiceBase::initialize | ( | ) | [virtual] |
Definition at line 24 of file DQMHistoryServiceBase.cc.
References fitME.
{ edm::LogInfo("DQMHistoryServiceBase") << "[DQMHistoryServiceBase::initialize]"; fitME = new HDQMfitUtilities(); }
void DQMHistoryServiceBase::openRequestedFile | ( | ) | [protected, virtual] |
Definition at line 99 of file DQMHistoryServiceBase.cc.
References dqmStore_, convertXMLtoSQLite_cfg::fileName, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), iConfig_, DQMStore::open(), and cmsCodeRules::cppFunctionSkipper::operator.
Referenced by createSummary().
{ dqmStore_ = edm::Service<DQMStore>().operator->(); if( iConfig_.getParameter<bool>("accessDQMFile") ){ std::string fileName = iConfig_.getUntrackedParameter<std::string>("FILE_NAME",""); edm::LogInfo("DQMHistoryServiceBase") << "[DQMHistoryServiceBase::openRequestedFile] Accessing root File" << fileName; dqmStore_->open(fileName, false); } else { edm::LogInfo("DQMHistoryServiceBase") << "[DQMHistoryServiceBase::openRequestedFile] Accessing dqmStore stream in Online Operation"; } }
virtual uint32_t DQMHistoryServiceBase::returnDetComponent | ( | const MonitorElement * | MEs | ) | [inline, protected, virtual] |
Reimplemented in SiPixelHistoryDQMService, SiStripHistoryDQMService, and GenericHistoryDQMService.
Definition at line 40 of file DQMHistoryServiceBase.h.
Referenced by scanTreeAndFillSummary().
{return 999999;}
void DQMHistoryServiceBase::scanTreeAndFillSummary | ( | const std::vector< MonitorElement * > & | MEs, |
HDQMSummary * | summary, | ||
std::string & | histoName, | ||
std::vector< std::string > & | Quantities | ||
) | [protected, virtual] |
Definition at line 116 of file DQMHistoryServiceBase.cc.
References gather_cfg::cout, cond::rpcobgas::detid, alignCSCRings::e, edm::ParameterSet::getUntrackedParameter(), i, iConfig_, HDQMSummary::put(), returnDetComponent(), setDBLabelsForGauss(), setDBLabelsForLandau(), setDBLabelsForStat(), setDBLabelsForUser(), setDBValuesForGauss(), setDBValuesForLandau(), setDBValuesForStat(), setDBValuesForUser(), and makeHLTPrescaleTable::values.
Referenced by createSummary().
{ // // -- Scan full root file and fill module numbers and histograms // //----------------------------------------------------------------------------------------------- edm::LogInfo("DQMHistoryServiceBase") << "[DQMHistoryServiceBase::scanTreeAndFillSummary] keyName " << keyName; std::vector<MonitorElement*>::const_iterator iterMes = MEs.begin(); std::vector<MonitorElement*>::const_iterator iterMesEnd = MEs.end(); std::stringstream ss; // Use boost regex for more flexibility boost::regex re; try { re.assign(keyName); } catch( boost::regex_error& e ) { std::cout << "Error: " << keyName << " is not a valid regular expression: \"" << e.what() << "\"" << std::endl; std::cout << "Skip search for matches" << std::endl; return; } for (; iterMes!=iterMesEnd; ++iterMes){ // Name including path std::string me_name; if( iConfig_.getUntrackedParameter<bool>("useFullPath", false) ) { me_name = (*iterMes)->getFullname(); } else { me_name = (*iterMes)->getName(); // If the line does not start with a "^" add it if( me_name.find("^") != 0 ) { me_name = "^" + me_name; } } // regex_search has grep-like behaviour if( boost::regex_search(me_name, re) ) { HDQMSummary::InputVector values; std::vector<std::string> userDBContent; ss << "\nFound compatible ME " << me_name << " for key " << keyName << std::endl; for(size_t i=0;i<Quantities.size();++i) { if(Quantities[i] == "landau"){ setDBLabelsForLandau(keyName, userDBContent); setDBValuesForLandau(iterMes,values); } else if(Quantities[i] == "gauss"){ setDBLabelsForGauss(keyName, userDBContent); setDBValuesForGauss(iterMes,values); } else if(Quantities[i] == "stat"){ setDBLabelsForStat(keyName, userDBContent); setDBValuesForStat(iterMes,values); } else{ setDBLabelsForUser(keyName, userDBContent,Quantities[i]); setDBValuesForUser(iterMes,values,Quantities[i]); } } uint32_t detid=returnDetComponent(*iterMes); ss << "detid " << detid << " \n"; for(size_t i=0;i<values.size();++i) ss << "Quantity " << userDBContent[i] << " value " << values[i] << std::endl; summary->put(detid,values,userDBContent); } } edm::LogInfo("DQMHistoryServiceBase") << "[DQMHistoryServiceBase::scanTreeAndFillSummary] " << ss.str(); }
bool DQMHistoryServiceBase::setDBLabelsForGauss | ( | std::string & | keyName, |
std::vector< std::string > & | userDBContent | ||
) | [protected, virtual] |
Definition at line 200 of file DQMHistoryServiceBase.cc.
References fSep.
Referenced by createSummary(), and scanTreeAndFillSummary().
bool DQMHistoryServiceBase::setDBLabelsForLandau | ( | std::string & | keyName, |
std::vector< std::string > & | userDBContent | ||
) | [protected, virtual] |
Definition at line 192 of file DQMHistoryServiceBase.cc.
References fSep.
Referenced by createSummary(), and scanTreeAndFillSummary().
bool DQMHistoryServiceBase::setDBLabelsForStat | ( | std::string & | keyName, |
std::vector< std::string > & | userDBContent | ||
) | [protected, virtual] |
Definition at line 206 of file DQMHistoryServiceBase.cc.
References fSep.
Referenced by createSummary(), and scanTreeAndFillSummary().
virtual bool DQMHistoryServiceBase::setDBLabelsForUser | ( | std::string & | keyName, |
std::vector< std::string > & | userDBContent | ||
) | [inline, protected, virtual] |
Definition at line 46 of file DQMHistoryServiceBase.h.
{return false;}
virtual bool DQMHistoryServiceBase::setDBLabelsForUser | ( | std::string & | keyName, |
std::vector< std::string > & | userDBContent, | ||
std::string & | quantity | ||
) | [inline, protected, virtual] |
Reimplemented in SiPixelHistoryDQMService, SiStripHistoryDQMService, and GenericHistoryDQMService.
Definition at line 45 of file DQMHistoryServiceBase.h.
References setDBLabelsForUser().
Referenced by createSummary(), scanTreeAndFillSummary(), and setDBLabelsForUser().
{return setDBLabelsForUser(keyName, userDBContent);}
bool DQMHistoryServiceBase::setDBValuesForGauss | ( | std::vector< MonitorElement * >::const_iterator | iterMes, |
HDQMSummary::InputVector & | values | ||
) | [protected, virtual] |
Definition at line 223 of file DQMHistoryServiceBase.cc.
References HDQMfitUtilities::doGaussFit(), fitME, HDQMfitUtilities::getFitChi(), HDQMfitUtilities::getFitnDof(), and HDQMfitUtilities::getGaussPar().
Referenced by scanTreeAndFillSummary().
{ fitME->doGaussFit(*iterMes); values.push_back( fitME->getGaussPar("mean") ); values.push_back( fitME->getGaussPar("sigma") ); if (fitME->getFitnDof()!=0 ) values.push_back( fitME->getFitChi()/fitME->getFitnDof() ); else values.push_back(-99.); return true; }
bool DQMHistoryServiceBase::setDBValuesForLandau | ( | std::vector< MonitorElement * >::const_iterator | iterMes, |
HDQMSummary::InputVector & | values | ||
) | [protected, virtual] |
Definition at line 213 of file DQMHistoryServiceBase.cc.
References HDQMfitUtilities::doLanGaussFit(), fitME, HDQMfitUtilities::getFitChi(), HDQMfitUtilities::getFitnDof(), HDQMfitUtilities::getLanGaussConv(), HDQMfitUtilities::getLanGaussPar(), and HDQMfitUtilities::getLanGaussParErr().
Referenced by scanTreeAndFillSummary().
{ fitME->doLanGaussFit(*iterMes); values.push_back( fitME->getLanGaussPar("mpv") ); values.push_back( fitME->getLanGaussParErr("mpv") ); values.push_back( fitME->getLanGaussConv("fwhm") ); if (fitME->getFitnDof()!=0 ) values.push_back( fitME->getFitChi()/fitME->getFitnDof() ); else values.push_back(-99.); return true; }
bool DQMHistoryServiceBase::setDBValuesForStat | ( | std::vector< MonitorElement * >::const_iterator | iterMes, |
HDQMSummary::InputVector & | values | ||
) | [protected, virtual] |
Definition at line 232 of file DQMHistoryServiceBase.cc.
Referenced by scanTreeAndFillSummary().
virtual bool DQMHistoryServiceBase::setDBValuesForUser | ( | std::vector< MonitorElement * >::const_iterator | iterMes, |
HDQMSummary::InputVector & | values | ||
) | [inline, protected, virtual] |
Definition at line 52 of file DQMHistoryServiceBase.h.
{return false;}
virtual bool DQMHistoryServiceBase::setDBValuesForUser | ( | std::vector< MonitorElement * >::const_iterator | iterMes, |
HDQMSummary::InputVector & | values, | ||
std::string & | quantity | ||
) | [inline, protected, virtual] |
Reimplemented in SiPixelHistoryDQMService, SiStripHistoryDQMService, and GenericHistoryDQMService.
Definition at line 51 of file DQMHistoryServiceBase.h.
References setDBValuesForUser().
Referenced by scanTreeAndFillSummary(), and setDBValuesForUser().
{return setDBValuesForUser(iterMes,values);}
void DQMHistoryServiceBase::setSeparator | ( | std::string const & | in | ) | [virtual] |
Definition at line 29 of file DQMHistoryServiceBase.cc.
References fSep, and recoMuon::in.
DQMStore* DQMHistoryServiceBase::dqmStore_ [protected] |
Definition at line 54 of file DQMHistoryServiceBase.h.
Referenced by createSummary(), and openRequestedFile().
HDQMfitUtilities* DQMHistoryServiceBase::fitME [protected] |
Definition at line 57 of file DQMHistoryServiceBase.h.
Referenced by initialize(), setDBValuesForGauss(), and setDBValuesForLandau().
std::string DQMHistoryServiceBase::fSep [protected] |
Definition at line 58 of file DQMHistoryServiceBase.h.
Referenced by setDBLabelsForGauss(), setDBLabelsForLandau(), setDBLabelsForStat(), SiPixelHistoryDQMService::setDBLabelsForUser(), SiStripHistoryDQMService::setDBLabelsForUser(), and setSeparator().
edm::ParameterSet DQMHistoryServiceBase::iConfig_ [protected] |
Reimplemented in SiPixelHistoryDQMService, SiStripHistoryDQMService, and GenericHistoryDQMService.
Definition at line 55 of file DQMHistoryServiceBase.h.
Referenced by createSummary(), getRunNumber(), openRequestedFile(), and scanTreeAndFillSummary().
HDQMSummary* DQMHistoryServiceBase::obj_ [protected] |
Definition at line 56 of file DQMHistoryServiceBase.h.
Referenced by createSummary(), and getObj().