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(
unsigned char & it : *vc){
69 qtHandler->configureTests(xmlstr,bei,
true);
83 if (getQualityTestsFromFile
94 if (getQualityTestsFromFile
103 if (qtestOnEndRun) performTests();
107 if (qtestOnEndJob) performTests();
119 if (!reportThreshold.empty())
121 std::map< std::string, std::vector<std::string> > theAlarms
122 = qtHandler->checkDetailedQTStatus(bei);
124 for (
auto & theAlarm : theAlarms)
127 const std::vector<std::string> &msgs = theAlarm.second;
128 if ((reportThreshold ==
"black")
129 || (reportThreshold ==
"orange" && (alarmType ==
"orange" || alarmType ==
"red"))
130 || (reportThreshold ==
"red" && alarmType ==
"red"))
133 std::cout <<
"Error Type: " << alarmType << std::endl;
134 for (
auto const &
msg : msgs)
LuminosityBlockID id() const
T getUntrackedParameter(std::string const &, T const &) const
void endLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &c) override
perform the actual quality tests
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Analyze.
~QualityTester() override
Destructor.
static HCTypeTag findType(char const *iTypeName)
find a type based on the types name, if not found will return default HCTypeTag
xmlfile
Make an XML representation of the misalignment.
void endRun(const edm::Run &r, const edm::EventSetup &c) override
LuminosityBlockNumber_t luminosityBlock() const
heterocontainer::HCTypeTag TypeTag
const TypeTag & type() const
QualityTester(const edm::ParameterSet &ps)
Constructor.
void beginRun(const edm::Run &, const edm::EventSetup &) override