From b4b033771d41cc919f1b6d174ca629da389060ab Mon Sep 17 00:00:00 2001 From: Domenico Giordano <sha1-07f7bb78311ae556a5edf2d08855b34552c86a25@cern.ch> Date: Mon, 6 Apr 2009 16:38:45 +0000 Subject: [PATCH] --- yaml --- r: 64383 b: "refs/heads/CMSSW_7_1_X" c: eb9815ecd7cc51d0106d0d8817a765f9268e8c2a h: "refs/heads/CMSSW_7_1_X" i: 64381: 47ee10934d166402b27bd3449a02ba700a13125a 64379: 539c985aaf809bf98686290921083e82bd4c925e 64375: ef4e534c379fa257d92c2861a952dccb8bdc407d 64367: f8b04a40e68eecc1a333104cb92bf2a0352a71c9 64351: a5edb2d39f5e5a43e8d4d0b30fad1a3221b2e52f 64319: 4109e7147829ac8377edc7de62dcbf405861fa94 64255: 9adaea7b4ed8e8877bedacf3dfa91a9a1453ddcc v: v3 --- [refs] | 2 +- .../interface/DQMHistoryServiceBase.h | 11 +- .../Diagnostic/src/DQMHistoryServiceBase.cc | 121 ++++++++++-------- 3 files changed, 81 insertions(+), 53 deletions(-) diff --git a/[refs] b/[refs] index 00598d2138f31..12999fb54f074 100644 --- a/[refs] +++ b/[refs] @@ -1,3 +1,3 @@ --- refs/heads/gh-pages: 82f76fd1a3f5d9423d7c163d852a0c36647fc4ea -"refs/heads/CMSSW_7_1_X": e4aab8d1aac2f2c1c7a725ca66d6c0c71e420a8e +"refs/heads/CMSSW_7_1_X": eb9815ecd7cc51d0106d0d8817a765f9268e8c2a diff --git a/trunk/DQMServices/Diagnostic/interface/DQMHistoryServiceBase.h b/trunk/DQMServices/Diagnostic/interface/DQMHistoryServiceBase.h index ac11a46513f32..6004b824e3103 100644 --- a/trunk/DQMServices/Diagnostic/interface/DQMHistoryServiceBase.h +++ b/trunk/DQMServices/Diagnostic/interface/DQMHistoryServiceBase.h @@ -35,7 +35,16 @@ class DQMHistoryServiceBase { virtual void scanTreeAndFillSummary(const std::vector<MonitorElement*>& MEs, HDQMSummary* summary,std::string& histoName, std::vector<std::string>& Quantities); virtual uint32_t getRunNumber() const; virtual uint32_t returnDetComponent(std::string& str){return 999999;} - + + virtual bool setDBLabelsForLandau(std::string& keyName, std::vector<std::string>& userDBContent); + virtual bool setDBLabelsForGauss (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){return false;} + + virtual bool setDBValuesForLandau(std::vector<MonitorElement*>::const_iterator iterMes, HDQMSummary::InputVector& values); + virtual bool setDBValuesForGauss(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 ){return false;} DQMStore* dqmStore_; edm::ParameterSet iConfig_; diff --git a/trunk/DQMServices/Diagnostic/src/DQMHistoryServiceBase.cc b/trunk/DQMServices/Diagnostic/src/DQMHistoryServiceBase.cc index 0127ea31192f0..0443d20e035d4 100644 --- a/trunk/DQMServices/Diagnostic/src/DQMHistoryServiceBase.cc +++ b/trunk/DQMServices/Diagnostic/src/DQMHistoryServiceBase.cc @@ -36,7 +36,6 @@ bool DQMHistoryServiceBase::checkForCompatibility(std::string ss){ return previousRun<getRunNumber(); } - void DQMHistoryServiceBase::createSummary(){ //LOOP OVER THE LIST OF SUMMARY OBJECTS TO INSERT IN DB @@ -57,22 +56,14 @@ void DQMHistoryServiceBase::createSummary(){ 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" ){ - userDBContent.push_back(keyName+std::string("@")+std::string("landauPeak")); - userDBContent.push_back(keyName+std::string("@")+std::string("landauPeakErr")); - userDBContent.push_back(keyName+std::string("@")+std::string("landauSFWHM")); - userDBContent.push_back(keyName+std::string("@")+std::string("landauChi2NDF")); - } - else if ( Quantities[i] == "gauss" ){ - userDBContent.push_back(keyName+std::string("@")+std::string("gaussMean")); - userDBContent.push_back(keyName+std::string("@")+std::string("gaussSigma")); - userDBContent.push_back(keyName+std::string("@")+std::string("gaussChi2NDF")); - } - else if ( Quantities[i] == "stat" ){ - userDBContent.push_back(keyName+std::string("@")+std::string("entries")); - userDBContent.push_back(keyName+std::string("@")+std::string("mean")); - userDBContent.push_back(keyName+std::string("@")+std::string("rms")); - } + if ( Quantities[i] == "landau" ) + setDBLabelsForLandau(keyName, userDBContent); + else if ( Quantities[i] == "gauss" ) + setDBLabelsForGauss(keyName, userDBContent); + else if ( Quantities[i] == "stat" ) + setDBLabelsForStat(keyName, userDBContent); + else if ( Quantities[i] == "user" ) + setDBLabelsForUser(keyName, userDBContent); else{ edm::LogError("DQMHistoryServiceBase") << "Quantity " << Quantities[i] @@ -85,7 +76,7 @@ void DQMHistoryServiceBase::createSummary(){ } } obj_->setUserDBContent(userDBContent); - + std::stringstream ss; ss << "[DQMHistoryServiceBase::scanTreeAndFillSummary] QUANTITIES TO BE INSERTED IN DB :" << std::endl; std::vector<std::string> userDBContentA = obj_->getUserDBContent(); @@ -113,9 +104,6 @@ void DQMHistoryServiceBase::openRequestedFile() { dqmStore_ = edm::Service<DQMStore>().operator->(); - // ** FIXME ** // - dqmStore_->setVerbose(0); //add config param - if( iConfig_.getParameter<bool>("accessDQMFile") ){ std::string fileName = iConfig_.getUntrackedParameter<std::string>("FILE_NAME",""); @@ -152,38 +140,21 @@ void DQMHistoryServiceBase::scanTreeAndFillSummary(const std::vector<MonitorElem for(size_t i=0;i<Quantities.size();++i){ - if(Quantities[i] == "landau"){ - userDBContent.push_back(keyName+std::string("@landauPeak")); - userDBContent.push_back(keyName+std::string("@landauPeakErr")); - userDBContent.push_back(keyName+std::string("@landauSFWHM")); - userDBContent.push_back(keyName+std::string("@landauChi2NDF")); - - 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.); + 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] == "gauss"){ - userDBContent.push_back(keyName+std::string("@gaussMean")); - userDBContent.push_back(keyName+std::string("@gaussSigma")); - userDBContent.push_back(keyName+std::string("@gaussChi2NDF")); - - 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.); + else if(Quantities[i] == "stat"){ + setDBLabelsForStat(keyName, userDBContent); + setDBValuesForStat(iterMes,values); } - else if(Quantities[i] == "stat"){ - userDBContent.push_back(keyName+std::string("@entries")); - userDBContent.push_back(keyName+std::string("@mean")); - userDBContent.push_back(keyName+std::string("@rms")); - - values.push_back( (*iterMes)->getEntries()); - values.push_back( (*iterMes)->getMean()); - values.push_back( (*iterMes)->getRMS()); + else if ( Quantities[i] == "user" ){ + setDBLabelsForUser(keyName, userDBContent); + setDBValuesForUser(iterMes,values); } } @@ -201,6 +172,54 @@ void DQMHistoryServiceBase::scanTreeAndFillSummary(const std::vector<MonitorElem edm::LogInfo("DQMHistoryServiceBase") << "[DQMHistoryServiceBase::scanTreeAndFillSummary] " << ss.str(); } + +bool DQMHistoryServiceBase::setDBLabelsForLandau(std::string& keyName, std::vector<std::string>& userDBContent){ + userDBContent.push_back(keyName+std::string("@")+std::string("landauPeak")); + userDBContent.push_back(keyName+std::string("@")+std::string("landauPeakErr")); + userDBContent.push_back(keyName+std::string("@")+std::string("landauSFWHM")); + userDBContent.push_back(keyName+std::string("@")+std::string("landauChi2NDF")); + return true; +} + +bool DQMHistoryServiceBase::setDBLabelsForGauss(std::string& keyName, std::vector<std::string>& userDBContent){ + userDBContent.push_back(keyName+std::string("@")+std::string("gaussMean")); + userDBContent.push_back(keyName+std::string("@")+std::string("gaussSigma")); + userDBContent.push_back(keyName+std::string("@")+std::string("gaussChi2NDF")); + return true; +} +bool DQMHistoryServiceBase::setDBLabelsForStat(std::string& keyName, std::vector<std::string>& userDBContent){ + userDBContent.push_back(keyName+std::string("@")+std::string("entries")); + userDBContent.push_back(keyName+std::string("@")+std::string("mean")); + userDBContent.push_back(keyName+std::string("@")+std::string("rms")); + return true; +} + +bool DQMHistoryServiceBase::setDBValuesForLandau(std::vector<MonitorElement*>::const_iterator iterMes, HDQMSummary::InputVector& values){ + 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::setDBValuesForGauss(std::vector<MonitorElement*>::const_iterator iterMes, HDQMSummary::InputVector& values){ + 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::setDBValuesForStat(std::vector<MonitorElement*>::const_iterator iterMes, HDQMSummary::InputVector& values){ + values.push_back( (*iterMes)->getEntries()); + values.push_back( (*iterMes)->getMean()); + values.push_back( (*iterMes)->getRMS()); + return true; +} + uint32_t DQMHistoryServiceBase::getRunNumber() const { edm::LogInfo("DQMHistoryServiceBase") << "[DQMHistoryServiceBase::getRunNumber] " << iConfig_.getParameter<uint32_t>("RunNb"); return iConfig_.getParameter<uint32_t>("RunNb");