41 if (getQualityTestsFromFile) {
43 qtHandler->configureTests(
FileInPath(qtlist).fullPath(), bei);
54 if (!getQualityTestsFromFile) {
57 throw cms::Exception (
"Record not found") <<
"Record \"DQMXMLFileRcd" 58 <<
"\" does not exist!" << std::endl;
63 std::unique_ptr<std::vector<unsigned char> > vc( (*xmlfile).getUncompressedBlob() );
65 for(std::vector<unsigned char>::iterator it=vc->begin();it!=vc->end();it++){
69 qtHandler->configureTests(xmlstr,bei,1);
81 if (testInEventloop) {
83 if (getQualityTestsFromFile
85 &&
nEvents % prescaleFactor == 0) {
93 if (!testInEventloop&&qtestOnEndLumi) {
94 if (getQualityTestsFromFile
103 if (qtestOnEndRun) performTests();
107 if (qtestOnEndJob) performTests();
119 if (reportThreshold.size() != 0)
121 std::map< std::string, std::vector<std::string> > theAlarms
122 = qtHandler->checkDetailedQTStatus(bei);
125 itr != theAlarms.end(); ++itr)
128 const std::vector<std::string> &msgs = itr->second;
129 if ((reportThreshold ==
"black")
130 || (reportThreshold ==
"orange" && (alarmType ==
"orange" || alarmType ==
"red"))
131 || (reportThreshold ==
"red" && alarmType ==
"red"))
134 std::cout <<
"Error Type: " << alarmType << std::endl;
135 for (std::vector<std::string>::const_iterator
msg = msgs.begin();
LuminosityBlockID id() const
T getUntrackedParameter(std::string const &, T const &) const
void endLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &c)
perform the actual quality tests
static HCTypeTag findType(char const *iTypeName)
find a type based on the types name, if not found will return default HCTypeTag
void endRun(const edm::Run &r, const edm::EventSetup &c)
xmlfile
Make an XML representation of the misalignment.
LuminosityBlockNumber_t luminosityBlock() const
virtual ~QualityTester()
Destructor.
heterocontainer::HCTypeTag TypeTag
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
const TypeTag & type() const
QualityTester(const edm::ParameterSet &ps)
Constructor.
void beginRun(const edm::Run &, const edm::EventSetup &)