#include "TH1F.h"
#include "TH1.h"
#include "TH2F.h"
#include "TCanvas.h"
#include <string>
#include "DQMServices/Core/interface/DQMStore.h"
#include "DQMServices/Core/interface/MonitorElement.h"
#include "DQMServices/Core/interface/QTest.h"
#include "DQMServices/Core/interface/QReport.h"
#include "TROOT.h"
#include "TGaxis.h"
#include <iostream>
#include <fstream>
#include <vector>
Go to the source code of this file.
Classes | |
class | HcalUtilsClient |
Functions | |
void | createH2CompTest (DQMStore *dbe, std::vector< std::string > ¶ms, TH2F *ref) |
void | createH2ContentTest (DQMStore *dbe, std::vector< std::string > ¶ms) |
void | createMeanValueTest (DQMStore *dbe, std::vector< std::string > ¶ms) |
void | createXRangeTest (DQMStore *dbe, std::vector< std::string > ¶ms) |
void | createYRangeTest (DQMStore *dbe, std::vector< std::string > ¶ms) |
void | dumpHisto (TH1F *hist, std::vector< std::string > &names, std::vector< double > &meanX, std::vector< double > &meanY, std::vector< double > &rmsX, std::vector< double > &rmsY) |
void | dumpHisto2 (TH2F *hist, std::vector< std::string > &names, std::vector< double > &meanX, std::vector< double > &meanY, std::vector< double > &rmsX, std::vector< double > &rmsY) |
TH1F * | getHisto (const MonitorElement *me, bool verb=false, bool clone=false) |
TH1F * | getHisto (std::string name, std::string process, DQMStore *dbe_, bool verb=false, bool clone=false) |
TH2F * | getHisto2 (std::string name, std::string process, DQMStore *dbe_, bool verb=false, bool clone=false) |
TH2F * | getHisto2 (const MonitorElement *me, bool verb=false, bool clone=false) |
TH3F * | getHistoTH3F (const MonitorElement *me, bool verb=false, bool clone=false) |
TH3F * | getHistoTH3F (std::string name, std::string process, DQMStore *dbe_, bool verb=false, bool clone=false) |
TProfile * | getHistoTProfile (std::string name, std::string process, DQMStore *dbe_, bool verb=false, bool clone=false) |
TProfile * | getHistoTProfile (const MonitorElement *me, bool verb=false, bool clone=false) |
TProfile2D * | getHistoTProfile2D (std::string name, std::string process, DQMStore *dbe_, bool verb=false, bool clone=false) |
TProfile2D * | getHistoTProfile2D (const MonitorElement *me, bool verb=false, bool clone=false) |
std::string | getIMG (int runNo, TH1F *hist, int size, std::string htmlDir, const char *xlab, const char *ylab) |
std::string | getIMG2 (int runNo, TH2F *hist, int size, std::string htmlDir, const char *xlab, const char *ylab, bool color=false) |
std::string | getIMGTProfile (int runNo, TProfile *hist, int size, std::string htmlDir, const char *xlab, const char *ylab, std::string opts="NONE") |
void | histoHTML (int runNo, TH1F *hist, const char *xlab, const char *ylab, int width, ofstream &htmlFile, std::string htmlDir) |
void | histoHTML2 (int runNo, TH2F *hist, const char *xlab, const char *ylab, int width, ofstream &htmlFile, std::string htmlDir, bool color=false) |
void | histoHTMLTProfile (int runNo, TProfile *hist, const char *xlab, const char *ylab, int width, ofstream &htmlFile, std::string htmlDir, std::string opts="NONE") |
void | htmlErrors (int runNo, std::string htmlDir, std::string client, std::string process, DQMStore *dbe, std::map< std::string, std::vector< QReport * > > mapE, std::map< std::string, std::vector< QReport * > > mapW, std::map< std::string, std::vector< QReport * > > mapO) |
bool | isValidGeom (std::string type, int depth) |
bool | isValidGeom (int subdet, int iEta, int iPhi, int depth) |
void | resetME (const char *name, DQMStore *dbe) |
void createH2CompTest | ( | DQMStore * | dbe, |
std::vector< std::string > & | params, | ||
TH2F * | ref | ||
) |
Definition at line 418 of file HcalClientUtils.cc.
References DQMStore::createQTest(), DQMStore::get(), DQMStore::getQCriterion(), MonitorElement::getQReport(), and NULL.
{ if (params.size() < 2 ) return; if(ref==NULL) return; if(!dbe) return; QCriterion* qc = dbe->getQCriterion(params[1]); MonitorElement* me = dbe->get(params[0]); if(me!=NULL && qc == NULL){ printf("\n\nDon't have this QC, but have the me!\n\n"); const QReport* qr = me->getQReport(params[1]); if(qr) return; printf("\n\nThe ME doesn't have the QC!!\n\n"); qc = dbe->createQTest("Comp2RefEqualH2",params[1]); /* Time to get with DQMServices/Core V03-00-12-qtest DQMServices/ClientConfig V03-00-04-qtest // Contents within a mean value Comp2RefEqualH2ROOT* me_qc = dynamic_cast<Comp2RefEqualH2ROOT*> (qc); //set reference histogram me_qc->setReference(ref); // link it to the monitor element printf("\n\nGonna run it...\n\n"); dbe->useQTest(params[0], params[1]); */ } else printf("\n\nAlready had the QC or didn't have the ME!\n\n"); return; }
void createH2ContentTest | ( | DQMStore * | dbe, |
std::vector< std::string > & | params | ||
) |
Definition at line 395 of file HcalClientUtils.cc.
References DQMStore::get(), DQMStore::getQCriterion(), and NULL.
{ if (params.size() < 2 ) return; if(!dbe) return; QCriterion* qc = dbe->getQCriterion(params[1]); MonitorElement* me = dbe->get(params[0]); if(me!=NULL && qc == NULL){ /* Time to get with DQMServices/Core V03-00-12-qtest DQMServices/ClientConfig V03-00-04-qtest qc = dbe->createQTest(ContentsTH2FWithinRange::getAlgoName(),params[1]); // Contents within a mean value ContentsTH2FWithinRangeROOT* me_qc = dynamic_cast<ContentsTH2FWithinRangeROOT*> (qc); me_qc->setMeanRange(0,1e-10); me_qc->setRMSRange(0,1e-10); // link it to the monitor element dbe->useQTest(params[0], params[1]); */ } return; }
void createMeanValueTest | ( | DQMStore * | dbe, |
std::vector< std::string > & | params | ||
) |
Definition at line 371 of file HcalClientUtils.cc.
References DQMStore::createQTest(), DQMStore::getQCriterion(), NULL, QCriterion::setErrorProb(), MeanWithinExpected::setExpectedMean(), QCriterion::setWarningProb(), DQMStore::useQTest(), MeanWithinExpected::useRMS(), and MeanWithinExpected::useSigma().
{ if (params.size() < 7 ) return; if(!dbe) return; QCriterion* qc = dbe->getQCriterion(params[1]); if(qc == NULL){ qc = dbe->createQTest("MeanWithinExpected",params[1]); // Contents within a mean value MeanWithinExpected* me_qc = (MeanWithinExpected*) qc; //set probability limit for test warning me_qc->setWarningProb(atof(params[2].c_str())); //set probability limit for test error me_qc->setErrorProb(atof(params[3].c_str())); // set Expected Mean me_qc->setExpectedMean(atof(params[4].c_str())); // set Test Type if (params[6] == "useRMS") me_qc->useRMS(); else if (params[6] == "useSigma") me_qc->useSigma(atof(params[5].c_str())); } // link it to the monitor element dbe->useQTest(params[0], params[1]); return; }
void createXRangeTest | ( | DQMStore * | dbe, |
std::vector< std::string > & | params | ||
) |
Definition at line 329 of file HcalClientUtils.cc.
References DQMStore::createQTest(), ContentsXRange::getAlgoName(), DQMStore::getQCriterion(), NULL, ContentsXRange::setAllowedXRange(), QCriterion::setErrorProb(), QCriterion::setWarningProb(), and DQMStore::useQTest().
{ if (params.size() < 6) return; if(!dbe) return; QCriterion* qc = dbe->getQCriterion(params[1]); if(qc == NULL){ qc = dbe->createQTest(ContentsXRange::getAlgoName(),params[1]); // Contents within [Xmin, Xmax] ContentsXRange* me_qc = (ContentsXRange*) qc; //set probability limit for test warning me_qc->setWarningProb(atof(params[2].c_str())); //set probability limit for test error me_qc->setErrorProb(atof(params[3].c_str())); // set allowed range in X-axis (default values: histogram's X-range) me_qc->setAllowedXRange(atof(params[4].c_str()), atof(params[5].c_str())); } // link it to the monitor element dbe->useQTest(params[0], params[1]); return; }
void createYRangeTest | ( | DQMStore * | dbe, |
std::vector< std::string > & | params | ||
) |
Definition at line 350 of file HcalClientUtils.cc.
References DQMStore::createQTest(), ContentsYRange::getAlgoName(), DQMStore::getQCriterion(), NULL, ContentsYRange::setAllowedYRange(), QCriterion::setErrorProb(), QCriterion::setWarningProb(), and DQMStore::useQTest().
{ if (params.size() < 6) return; if(!dbe) return; QCriterion* qc = dbe->getQCriterion(params[1]); if(qc == NULL){ qc = dbe->createQTest(ContentsYRange::getAlgoName(),params[1]); // Contents within [Xmin, Xmax] ContentsYRange* me_qc = (ContentsYRange*) qc; //set probability limit for test warning me_qc->setWarningProb(atof(params[2].c_str())); //set probability limit for test error me_qc->setErrorProb(atof(params[3].c_str())); // set allowed range in Y-axis (default values: histogram's Y-range) me_qc->setAllowedYRange(atof(params[4].c_str()), atof(params[5].c_str())); } // link it to the monitor element dbe->useQTest(params[0], params[1]); return; }
void dumpHisto | ( | TH1F * | hist, |
std::vector< std::string > & | names, | ||
std::vector< double > & | meanX, | ||
std::vector< double > & | meanY, | ||
std::vector< double > & | rmsX, | ||
std::vector< double > & | rmsY | ||
) |
void dumpHisto2 | ( | TH2F * | hist, |
std::vector< std::string > & | names, | ||
std::vector< double > & | meanX, | ||
std::vector< double > & | meanY, | ||
std::vector< double > & | rmsX, | ||
std::vector< double > & | rmsY | ||
) |
TH1F* getHisto | ( | const MonitorElement * | me, |
bool | verb = false , |
||
bool | clone = false |
||
) |
Definition at line 280 of file HcalClientUtils.cc.
References gather_cfg::cout, MonitorElement::getName(), MonitorElement::getTH1F(), timingPdfMaker::histo, NULL, and dbtoconf::out.
{ TH1F* out = NULL; if ( me ) { if ( verb ) std::cout << "Found '" << me->getName() << "'" << std::endl; if ( clone ) { char histo[150]; sprintf(histo, "ME %s",((std::string)(me->getName())).c_str()); out = dynamic_cast<TH1F*> (me->getTH1F()->Clone(histo)); } else { out = me->getTH1F(); } } return out; }
TH1F* getHisto | ( | std::string | name, |
std::string | process, | ||
DQMStore * | dbe_, | ||
bool | verb = false , |
||
bool | clone = false |
||
) |
Definition at line 239 of file HcalClientUtils.cc.
References gather_cfg::cout, DQMStore::get(), MonitorElement::getTH1F(), timingPdfMaker::histo, NULL, dbtoconf::out, and indexGen::title.
Referenced by EBBeamCaloClient::analyze(), EEBeamCaloClient::analyze(), EEPedestalClient::analyze(), EETimingClient::analyze(), EESummaryClient::analyze(), EBClusterClient::analyze(), EEClusterClient::analyze(), EELaserClient::analyze(), EEIntegrityClient::analyze(), EETestPulseClient::analyze(), EBStatusFlagsClient::analyze(), EEPedestalOnlineClient::analyze(), EBSummaryClient::analyze(), EETriggerTowerClient::analyze(), EBTestPulseClient::analyze(), EEBeamHodoClient::analyze(), EELedClient::analyze(), EBBeamHodoClient::analyze(), EEOccupancyClient::analyze(), EBIntegrityClient::analyze(), EBPedestalClient::analyze(), EECosmicClient::analyze(), DTTTrigResidualCorrection::correction(), DTTTrigT0SegCorrection::correction(), and htmlErrors().
{ if(!dbe_) return NULL; char title[150]; sprintf(title, "%sHcal/%s",process.c_str(),name.c_str()); TH1F* out = NULL; const MonitorElement* me = dbe_->get(title); if (me){ if ( verb ) std::cout << "Found '" << title << "'" << std::endl; if ( clone ) { char histo[150]; sprintf(histo, "ME %s",name.c_str()); out = dynamic_cast<TH1F*> (me->getTH1F()->Clone(histo)); } else { out = me->getTH1F(); } } return out; }
TH2F* getHisto2 | ( | std::string | name, |
std::string | process, | ||
DQMStore * | dbe_, | ||
bool | verb = false , |
||
bool | clone = false |
||
) |
Definition at line 216 of file HcalClientUtils.cc.
References gather_cfg::cout, DQMStore::get(), timingPdfMaker::histo, NULL, dbtoconf::out, and indexGen::title.
Referenced by htmlErrors().
{ if(!dbe_) return NULL; TH2F* out = NULL; char title[150]; sprintf(title, "%sHcal/%s",process.c_str(),name.c_str()); MonitorElement* me = dbe_->get(title); if ( me ) { if ( verb) std::cout << "Found '" << title << "'" << std::endl; if ( clone) { char histo[150]; sprintf(histo, "ME %s",name.c_str()); out = dynamic_cast<TH2F*> (me->getTH2F()->Clone(histo)); } else { out = me->getTH2F(); } } return out; }
TH2F* getHisto2 | ( | const MonitorElement * | me, |
bool | verb = false , |
||
bool | clone = false |
||
) |
Definition at line 262 of file HcalClientUtils.cc.
References gather_cfg::cout, MonitorElement::getName(), MonitorElement::getTH2F(), timingPdfMaker::histo, NULL, and dbtoconf::out.
{ TH2F* out = NULL; if ( me ) { if ( verb) std::cout << "Found '" << me->getName() << "'" << std::endl; // MonitorElementT<TNamed>* ob = dynamic_cast<MonitorElementT<TNamed>*> (me); if ( clone ) { char histo[150]; sprintf(histo, "ME %s", ((std::string)(me->getName())).c_str()); out = dynamic_cast<TH2F*> (me->getTH2F()->Clone(histo)); } else { out = me->getTH2F(); } } return out; }
TH3F* getHistoTH3F | ( | const MonitorElement * | me, |
bool | verb = false , |
||
bool | clone = false |
||
) |
Definition at line 745 of file HcalClientUtils.cc.
References gather_cfg::cout, MonitorElement::getName(), MonitorElement::getTH3F(), timingPdfMaker::histo, NULL, and dbtoconf::out.
{ TH3F* out = NULL; if ( me ) { if ( verb ) std::cout << "Found '" << me->getName() << "'" << std::endl; if ( clone ) { char histo[150]; sprintf(histo, "ME %s",((std::string)(me->getName())).c_str()); out = dynamic_cast<TH3F*> (me->getTH3F()->Clone(histo)); } else { out = me->getTH3F(); } } return out; }
TH3F* getHistoTH3F | ( | std::string | name, |
std::string | process, | ||
DQMStore * | dbe_, | ||
bool | verb = false , |
||
bool | clone = false |
||
) |
Definition at line 723 of file HcalClientUtils.cc.
References gather_cfg::cout, DQMStore::get(), MonitorElement::getTH3F(), timingPdfMaker::histo, NULL, dbtoconf::out, and indexGen::title.
{ if(!dbe_) return NULL; char title[150]; sprintf(title, "%sHcal/%s",process.c_str(),name.c_str()); TH3F* out = NULL; const MonitorElement* me = dbe_->get(title); if (me){ if ( verb ) std::cout << "Found '" << title << "'" << std::endl; if ( clone ) { char histo[150]; sprintf(histo, "ME %s",name.c_str()); out = dynamic_cast<TH3F*> (me->getTH3F()->Clone(histo)); } else { out = me->getTH3F(); } } return out; }
TProfile* getHistoTProfile | ( | std::string | name, |
std::string | process, | ||
DQMStore * | dbe_, | ||
bool | verb = false , |
||
bool | clone = false |
||
) |
Definition at line 589 of file HcalClientUtils.cc.
References gather_cfg::cout, DQMStore::get(), MonitorElement::getTProfile(), timingPdfMaker::histo, NULL, dbtoconf::out, and indexGen::title.
{ if(!dbe_) return NULL; char title[150]; sprintf(title, "%sHcal/%s",process.c_str(),name.c_str()); TProfile* out = NULL; const MonitorElement* me = dbe_->get(title); if (me){ if ( verb ) std::cout << "Found '" << title << "'" << std::endl; if ( clone ) { char histo[150]; sprintf(histo, "ME %s",name.c_str()); out = dynamic_cast<TProfile*> (me->getTProfile()->Clone(histo)); } else { out = me->getTProfile(); } } return out; }
TProfile* getHistoTProfile | ( | const MonitorElement * | me, |
bool | verb = false , |
||
bool | clone = false |
||
) |
Definition at line 611 of file HcalClientUtils.cc.
References gather_cfg::cout, MonitorElement::getName(), MonitorElement::getTProfile(), timingPdfMaker::histo, NULL, and dbtoconf::out.
{ TProfile* out = NULL; if ( me ) { if ( verb ) std::cout << "Found '" << me->getName() << "'" << std::endl; if ( clone ) { char histo[150]; sprintf(histo, "ME %s",((std::string)(me->getName())).c_str()); out = dynamic_cast<TProfile*> (me->getTProfile()->Clone(histo)); } else { out = me->getTProfile(); } } return out; }
TProfile2D* getHistoTProfile2D | ( | std::string | name, |
std::string | process, | ||
DQMStore * | dbe_, | ||
bool | verb = false , |
||
bool | clone = false |
||
) |
Definition at line 684 of file HcalClientUtils.cc.
References gather_cfg::cout, DQMStore::get(), MonitorElement::getTProfile2D(), timingPdfMaker::histo, NULL, dbtoconf::out, and indexGen::title.
{ if(!dbe_) return NULL; char title[150]; sprintf(title, "%sHcal/%s",process.c_str(),name.c_str()); TProfile2D* out = NULL; const MonitorElement* me = dbe_->get(title); if (me){ if ( verb ) std::cout << "Found '" << title << "'" << std::endl; if ( clone ) { char histo[150]; sprintf(histo, "ME %s",name.c_str()); out = dynamic_cast<TProfile2D*> (me->getTProfile2D()->Clone(histo)); } else { out = me->getTProfile2D(); } } return out; }
TProfile2D* getHistoTProfile2D | ( | const MonitorElement * | me, |
bool | verb = false , |
||
bool | clone = false |
||
) |
Definition at line 706 of file HcalClientUtils.cc.
References gather_cfg::cout, MonitorElement::getName(), MonitorElement::getTProfile2D(), timingPdfMaker::histo, NULL, and dbtoconf::out.
{ TProfile2D* out = NULL; if ( me ) { if ( verb ) std::cout << "Found '" << me->getName() << "'" << std::endl; if ( clone ) { char histo[150]; sprintf(histo, "ME %s",((std::string)(me->getName())).c_str()); out = dynamic_cast<TProfile2D*> (me->getTProfile2D()->Clone(histo)); } else { out = me->getTProfile2D(); } } return out; }
std::string getIMG | ( | int | runNo, |
TH1F * | hist, | ||
int | size, | ||
std::string | htmlDir, | ||
const char * | xlab, | ||
const char * | ylab | ||
) |
Definition at line 181 of file HcalClientUtils.cc.
References timingPdfMaker::can, cleanString(), alignmentValidation::dest, mergeVDriftHistosByStation::name, NULL, parseString(), and indexGen::title.
Referenced by histoHTML(), and htmlErrors().
{ if(hist==NULL) { printf("getIMG: This histo is NULL, %s, %s\n",xlab,ylab); return ""; } std::string name = hist->GetTitle(); cleanString(name); char dest[512]; if(runNo>-1) sprintf(dest,"%s - Run %d",name.c_str(),runNo); else sprintf(dest,"%s",name.c_str()); hist->SetTitle(dest); std::string title = dest; int xwid = 900; int ywid =540; if(size==1){ title = title+"_tmb"; xwid = 600; ywid = 360; } TCanvas* can = new TCanvas(dest,dest, xwid, ywid); parseString(title); std::string outName = title + ".gif"; std::string saveName = htmlDir + outName; hist->SetXTitle(xlab); hist->SetYTitle(ylab); hist->Draw(); can->SaveAs(saveName.c_str()); delete can; return outName; }
std::string getIMG2 | ( | int | runNo, |
TH2F * | hist, | ||
int | size, | ||
std::string | htmlDir, | ||
const char * | xlab, | ||
const char * | ylab, | ||
bool | color = false |
||
) |
Definition at line 138 of file HcalClientUtils.cc.
References timingPdfMaker::can, cleanString(), alignmentValidation::dest, mergeVDriftHistosByStation::name, NULL, parseString(), and indexGen::title.
Referenced by histoHTML2(), and htmlErrors().
{ if(hist==NULL) { printf("getIMG2: This histo is NULL, %s, %s\n",xlab,ylab); return ""; } std::string name = hist->GetTitle(); cleanString(name); char dest[512]; if(runNo>-1) sprintf(dest,"%s - Run %d",name.c_str(),runNo); else sprintf(dest,"%s",name.c_str()); hist->SetTitle(dest); std::string title = dest; int xwid = 900; int ywid =540; if(size==1){ title = title+"_tmb"; xwid = 600; ywid = 360; } TCanvas* can = new TCanvas(dest,dest, xwid, ywid); // Put grids on all 2-D histograms can->SetGridx(); can->SetGridy(); parseString(title); std::string outName = title + ".gif"; std::string saveName = htmlDir + outName; hist->SetXTitle(xlab); hist->SetYTitle(ylab); if(color) hist->Draw(); else{ hist->SetStats(false); hist->Draw("COLZ"); } can->SaveAs(saveName.c_str()); delete can; return outName; }
std::string getIMGTProfile | ( | int | runNo, |
TProfile * | hist, | ||
int | size, | ||
std::string | htmlDir, | ||
const char * | xlab, | ||
const char * | ylab, | ||
std::string | opts = "NONE" |
||
) |
Definition at line 627 of file HcalClientUtils.cc.
References timingPdfMaker::can, cleanString(), alignmentValidation::dest, mergeVDriftHistosByStation::name, NULL, parseString(), and indexGen::title.
Referenced by histoHTMLTProfile().
{ if(hist==NULL) { printf("getIMG: This histo is NULL, %s, %s\n",xlab,ylab); return ""; } std::string name = hist->GetTitle(); cleanString(name); char dest[512]; if(runNo>-1) sprintf(dest,"%s - Run %d",name.c_str(),runNo); else sprintf(dest,"%s",name.c_str()); hist->SetTitle(dest); std::string title = dest; int xwid = 900; int ywid =540; if(size==1){ title = title+"_tmb"; xwid = 600; ywid = 360; } TCanvas* can = new TCanvas(dest,dest, xwid, ywid); parseString(title); std::string outName = title + ".gif"; std::string saveName = htmlDir + outName; hist->SetXTitle(xlab); hist->SetYTitle(ylab); if (opts!="NONE") hist->SetOption(opts.c_str()); hist->Draw(); can->SaveAs(saveName.c_str()); delete can; return outName; }
void histoHTML | ( | int | runNo, |
TH1F * | hist, | ||
const char * | xlab, | ||
const char * | ylab, | ||
int | width, | ||
ofstream & | htmlFile, | ||
std::string | htmlDir | ||
) |
Definition at line 297 of file HcalClientUtils.cc.
References getIMG(), and NULL.
{ if(hist!=NULL){ std::string imgNameTMB = ""; imgNameTMB = getIMG(runNo,hist,1,htmlDir,xlab,ylab); std::string imgName = ""; imgName = getIMG(runNo,hist,2,htmlDir,xlab,ylab); if (imgName.size() != 0 ) htmlFile << "<td><a href=\"" << imgName << "\"><img src=\"" << imgNameTMB << "\"></a></td>" << std::endl; else htmlFile << "<td><img src=\"" << " " << "\"></td>" << std::endl; } else htmlFile << "<td><img src=\"" << " " << "\"></td>" << std::endl; return; }
void histoHTML2 | ( | int | runNo, |
TH2F * | hist, | ||
const char * | xlab, | ||
const char * | ylab, | ||
int | width, | ||
ofstream & | htmlFile, | ||
std::string | htmlDir, | ||
bool | color = false |
||
) |
Definition at line 314 of file HcalClientUtils.cc.
References getIMG2(), and NULL.
{ if(hist!=NULL){ std::string imgNameTMB = ""; imgNameTMB = getIMG2(runNo,hist,1,htmlDir,xlab,ylab,color); std::string imgName = ""; imgName = getIMG2(runNo,hist,2,htmlDir,xlab,ylab,color); if (imgName.size() != 0 ) htmlFile << "<td><a href=\"" << imgName << "\"><img src=\"" << imgNameTMB << "\"></a></td>" << std::endl; else htmlFile << "<td><img src=\"" << " " << "\"></td>" << std::endl; } else htmlFile << "<td><img src=\"" << " " << "\"></td>" << std::endl; return; }
void histoHTMLTProfile | ( | int | runNo, |
TProfile * | hist, | ||
const char * | xlab, | ||
const char * | ylab, | ||
int | width, | ||
ofstream & | htmlFile, | ||
std::string | htmlDir, | ||
std::string | opts = "NONE" |
||
) |
Definition at line 664 of file HcalClientUtils.cc.
References getIMGTProfile(), and NULL.
{ if(hist!=NULL){ std::string imgNameTMB = ""; imgNameTMB = getIMGTProfile(runNo,hist,1,htmlDir,xlab,ylab,opts); std::string imgName = ""; imgName = getIMGTProfile(runNo,hist,2,htmlDir,xlab,ylab,opts); if (imgName.size() != 0 ) htmlFile << "<td><a href=\"" << imgName << "\"><img src=\"" << imgNameTMB << "\"></a></td>" << std::endl; else htmlFile << "<td><img src=\"" << " " << "\"></td>" << std::endl; } else htmlFile << "<td><img src=\"" << " " << "\"></td>" << std::endl; return; }
void htmlErrors | ( | int | runNo, |
std::string | htmlDir, | ||
std::string | client, | ||
std::string | process, | ||
DQMStore * | dbe, | ||
std::map< std::string, std::vector< QReport * > > | mapE, | ||
std::map< std::string, std::vector< QReport * > > | mapW, | ||
std::map< std::string, std::vector< QReport * > > | mapO | ||
) |
Definition at line 448 of file HcalClientUtils.cc.
References benchmark_cfg::errors, DQMStore::get(), getHisto(), getHisto2(), getIMG(), getIMG2(), MonitorElement::getMeanError(), and zeeHLT_cff::report.
{ if(!dbe) return; std::map<std::string, std::vector<QReport*> >::iterator mapIter; ofstream errorFile; errorFile.open((htmlDir + client+ "Errors.html").c_str()); errorFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> " << std::endl; errorFile << "<html> " << std::endl; errorFile << "<head> " << std::endl; errorFile << " <meta content=\"text/html; charset=ISO-8859-1\" " << std::endl; errorFile << " https-equiv=\"content-type\"> " << std::endl; errorFile << " <title>Monitor: Hcal " << client <<" Task Error Output</title> " << std::endl; errorFile << "</head> " << std::endl; errorFile << "<style type=\"text/css\"> td { font-weight: bold } </style>" << std::endl; errorFile << "<body> " << std::endl; errorFile << "<br> " << std::endl; errorFile << "<h2>" << client <<" Errors</h2> " << std::endl; for (mapIter=mapE.begin(); mapIter!=mapE.end();mapIter++){ std::string meName = mapIter->first; std::vector<QReport*> errors = mapIter->second; errorFile << "<br>" << std::endl; errorFile << "<hr>" << std::endl; errorFile << "Monitorable '" << meName << "' has the following errors: <br>" << std::endl; for(std::vector<QReport*>::iterator report=errors.begin(); report!=errors.end(); report++){ errorFile << " "<< (*report)->getQRName() << ": "<< (*report)->getMessage() << std::endl; } MonitorElement* me = dbe->get(meName); errorFile << "<br>" << std::endl; errorFile << "<br>" << std::endl; char* substr = strstr(meName.c_str(), client.c_str()); if(me->getMeanError(2)==0){ TH1F* obj1f = getHisto(substr, process.c_str(), dbe); std::string save = getIMG(runNo,obj1f,1,htmlDir,"X1a","Y1a"); errorFile << "<img src=\"" << save << "\">" << std::endl; } else{ TH2F* obj2f = getHisto2(substr, process.c_str(), dbe); std::string save = getIMG2(runNo,obj2f,1,htmlDir,"X2a","Y2a"); errorFile << "<img src=\"" << save << "\">" << std::endl; } errorFile << "<br>" << std::endl; errorFile << std::endl; } errorFile << "<hr>" << std::endl; errorFile.close(); errorFile.open((htmlDir + client+ "Warnings.html").c_str()); errorFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> " << std::endl; errorFile << "<html> " << std::endl; errorFile << "<head> " << std::endl; errorFile << " <meta content=\"text/html; charset=ISO-8859-1\" " << std::endl; errorFile << " https-equiv=\"content-type\"> " << std::endl; errorFile << " <title>Monitor: Hcal " << client <<" Task Warning Output</title> " << std::endl; errorFile << "</head> " << std::endl; errorFile << "<style type=\"text/css\"> td { font-weight: bold } </style>" << std::endl; errorFile << "<body> " << std::endl; errorFile << "<br> " << std::endl; errorFile << "<h2>" << client <<" Warnings</h2> " << std::endl; for (mapIter=mapW.begin(); mapIter!=mapW.end();mapIter++){ std::string meName = mapIter->first; std::vector<QReport*> errors = mapIter->second; errorFile << "<br>" << std::endl; errorFile << "<hr>" << std::endl; errorFile << "Monitorable '" << meName << "' has the following warnings: <BR>" << std::endl; for(std::vector<QReport*>::iterator report=errors.begin(); report!=errors.end(); report++){ errorFile << " "<< (*report)->getQRName() << ": "<< (*report)->getMessage() << std::endl; } MonitorElement* me = dbe->get(meName); errorFile << "<br>" << std::endl; errorFile << "<br>" << std::endl; char* substr = strstr(meName.c_str(), client.c_str()); if(me->getMeanError(2)==0){ TH1F* obj1f = getHisto(substr, process.c_str(), dbe); std::string save = getIMG(runNo,obj1f,1,htmlDir,"X1b","Y1b"); errorFile << "<img src=\"" << save << "\">" << std::endl; } else{ TH2F* obj2f = getHisto2(substr, process.c_str(), dbe); std::string save = getIMG2(runNo,obj2f,1,htmlDir,"X2b","Y2b"); errorFile << "<img src=\"" << save << "\">" << std::endl; } errorFile << "<br>" << std::endl; errorFile << std::endl; } errorFile << "<hr>" << std::endl; errorFile.close(); errorFile.open((htmlDir + client+ "Messages.html").c_str()); errorFile << "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"> " << std::endl; errorFile << "<html> " << std::endl; errorFile << "<head> " << std::endl; errorFile << " <meta content=\"text/html; charset=ISO-8859-1\" " << std::endl; errorFile << " https-equiv=\"content-type\"> " << std::endl; errorFile << " <title>Monitor: Hcal " << client <<" Task Message Output</title> " << std::endl; errorFile << "</head> " << std::endl; errorFile << "<style type=\"text/css\"> td { font-weight: bold } </style>" << std::endl; errorFile << "<body> " << std::endl; errorFile << "<br> " << std::endl; errorFile << "<h2>" << client <<" Messages</h2> " << std::endl; for (mapIter=mapO.begin(); mapIter!=mapO.end();mapIter++){ std::string meName = mapIter->first; std::vector<QReport*> errors = mapIter->second; errorFile << "<br>" << std::endl; errorFile << "<hr>" << std::endl; errorFile << "Monitorable '" << meName << "' has the following messages: <br>" << std::endl; for(std::vector<QReport*>::iterator report=errors.begin(); report!=errors.end(); report++){ errorFile << " "<< (*report)->getQRName() << ": "<< (*report)->getMessage() << std::endl; } errorFile << "<br>" << std::endl; errorFile << "<br>" << std::endl; MonitorElement* me = dbe->get(meName); char* substr = strstr(meName.c_str(), client.c_str()); if(me->getMeanError(2)==0){ TH1F* obj1f = getHisto(substr, process.c_str(), dbe); std::string save = getIMG(runNo,obj1f,1,htmlDir,"X1c","Y1c"); errorFile << "<img src=\"" << save << "\">" << std::endl; } else{ TH2F* obj2f = getHisto2(substr, process.c_str(), dbe); std::string save = getIMG2(runNo,obj2f,1,htmlDir,"X2c","Y2c"); errorFile << "<img src=\"" << save << "\">" << std::endl; } errorFile << "<br>" << std::endl; errorFile << std::endl; } errorFile << "<hr>" << std::endl; errorFile.close(); return; }
bool isValidGeom | ( | std::string | type, |
int | depth | ||
) |
bool isValidGeom | ( | int | subdet, |
int | iEta, | ||
int | iPhi, | ||
int | depth | ||
) |
Definition at line 27 of file HcalClientUtils.cc.
References abs, Gflash::EtaMax, and Gflash::EtaMin.
{ if(subdet<0 || subdet>3) return false; int EtaMin[4]; int EtaMax[4]; int PhiMin[4]; int PhiMax[4]; int DepMin[4]; int DepMax[4]; //HB ieta/iphi/depths EtaMin[0]=1; EtaMax[0]=16; PhiMin[0]=1; PhiMax[0]=72; DepMin[0]=1; DepMax[0]=2; //HE ieta/iPhi/Depths EtaMin[1]=16; EtaMax[1]=29; PhiMin[1]=1; PhiMax[1]=72; DepMin[1]=1; DepMax[1]=3; //HF ieta/iphi/depths EtaMin[2]=29; EtaMax[2]=41; PhiMin[2]=1; PhiMax[2]=72; DepMin[2]=1; DepMax[2]=2; //HO ieta/iphi/depths EtaMin[3]=1; EtaMax[3]=15; PhiMin[3]=1; PhiMax[3]=72; DepMin[3]=4; DepMax[3]=4; if(iEta!=0) if(abs(iEta)<EtaMin[subdet] || abs(iEta)>EtaMax[subdet]) return false; if(iPhi!=0) if(abs(iPhi)<PhiMin[subdet] || abs(iPhi)>PhiMax[subdet]) return false; if(depth!=0) if(abs(depth)<DepMin[subdet] || abs(depth)>DepMax[subdet]) return false; if(subdet==0 && abs(depth)==2 && abs(iEta)<15) return false; else if(subdet==1){ if(abs(iEta)>20 && (iPhi%2)==0) return false; if(abs(iEta)>39 && (iPhi%4)!=3) return false; if(abs(iEta)==16 && abs(depth)!=3) return false; if(abs(iEta)==17 && abs(depth)!=1) return false; if(abs(depth)==3){ if(abs(iEta)!=27 && abs(iEta)!=28 &&abs(iEta)!=16) return false; } } else if(subdet==2 && (iPhi%2)==0) return false; return true; }
void resetME | ( | const char * | name, |
DQMStore * | dbe | ||
) |
Definition at line 7 of file HcalClientUtils.cc.
References DQMStore::get(), NULL, and DQMStore::softReset().
{ if(dbe==NULL) return; MonitorElement* me= dbe->get(name); if(me) dbe->softReset(me); return; }