#include <QTest.h>
Public Member Functions | |
ContentsXRange (const std::string &name) | |
float | runTest (const MonitorElement *me) |
virtual void | setAllowedXRange (double xmin, double xmax) |
set allowed range in X-axis (default values: histogram's X-range) | |
Static Public Member Functions | |
static std::string | getAlgoName (void) |
Protected Attributes | |
bool | rangeInitialized_ |
double | xmax_ |
double | xmin_ |
ContentsXRange::ContentsXRange | ( | const std::string & | name | ) | [inline] |
Definition at line 227 of file QTest.h.
References getAlgoName(), rangeInitialized_, and QCriterion::setAlgoName().
: SimpleTest(name) { rangeInitialized_ = false; setAlgoName(getAlgoName()); }
static std::string ContentsXRange::getAlgoName | ( | void | ) | [inline, static] |
Definition at line 232 of file QTest.h.
Referenced by ContentsXRange(), createXRangeTest(), QTestConfigure::enableTests(), QTestConfigure::EnableXRangeTest(), and QTestParameterNames::QTestParameterNames().
{ return "ContentsXRange"; }
float ContentsXRange::runTest | ( | const MonitorElement * | me | ) | [virtual] |
Reimplemented from QCriterion.
Definition at line 477 of file QTest.cc.
References newFWLiteAna::bin, relmon_rootfiles_spy::contents, gather_cfg::cout, MonitorElement::DQM_KIND_TH1D, MonitorElement::DQM_KIND_TH1F, MonitorElement::DQM_KIND_TH1S, cmsPerfPublish::fail(), first, MonitorElement::getFullname(), MonitorElement::getRootObject(), MonitorElement::getTH1D(), MonitorElement::getTH1F(), MonitorElement::getTH1S(), h, MonitorElement::kind(), prof2calltree::last, and x.
{ badChannels_.clear(); if (!me) return -1; if (!me->getRootObject()) return -1; TH1* h=0; if (verbose_>1) std::cout << "QTest:" << getAlgoName() << "::runTest called on " << me-> getFullname() << "\n"; // -- TH1F if (me->kind()==MonitorElement::DQM_KIND_TH1F ) { h = me->getTH1F(); } // -- TH1S else if ( me->kind()==MonitorElement::DQM_KIND_TH1S ) { h = me->getTH1S(); } // -- TH1D else if ( me->kind()==MonitorElement::DQM_KIND_TH1D ) { h = me->getTH1D(); } else { if (verbose_>0) std::cout << "QTest:ContentsXRange" << " ME " << me->getFullname() << " does not contain TH1F/TH1S/TH1D, exiting\n"; return -1; } if (!rangeInitialized_) { if ( h->GetXaxis() ) setAllowedXRange(h->GetXaxis()->GetXmin(), h->GetXaxis()->GetXmax()); else return -1; } int ncx = h->GetXaxis()->GetNbins(); // use underflow bin int first = 0; // 1 // use overflow bin int last = ncx+1; // ncx // all entries double sum = 0; // entries outside X-range double fail = 0; int bin; for (bin = first; bin <= last; ++bin) { double contents = h->GetBinContent(bin); double x = h->GetBinCenter(bin); sum += contents; if (x < xmin_ || x > xmax_)fail += contents; } if (sum==0) return 1; // return fraction of entries within allowed X-range return (sum - fail)/sum; }
virtual void ContentsXRange::setAllowedXRange | ( | double | xmin, |
double | xmax | ||
) | [inline, virtual] |
set allowed range in X-axis (default values: histogram's X-range)
Definition at line 236 of file QTest.h.
References rangeInitialized_, SiStripMonitorClusterAlca_cfi::xmax, xmax_, SiStripMonitorClusterAlca_cfi::xmin, and xmin_.
Referenced by createXRangeTest(), and QTestConfigure::EnableXRangeTest().
{ xmin_ = xmin; xmax_ = xmax; rangeInitialized_ = true; }
bool ContentsXRange::rangeInitialized_ [protected] |
Definition at line 244 of file QTest.h.
Referenced by ContentsXRange(), and setAllowedXRange().
double ContentsXRange::xmax_ [protected] |
Definition at line 243 of file QTest.h.
Referenced by setAllowedXRange().
double ContentsXRange::xmin_ [protected] |
Definition at line 243 of file QTest.h.
Referenced by setAllowedXRange().