16 #include <boost/algorithm/string.hpp> 19 egHLTSumHistName_(
"egHLTTrigSum"),isSetup_(
false)
24 edm::LogError(
"EgHLTOfflineSummaryClient") <<
"unable to get DQMStore service, no summary histograms will be produced";
86 std::vector<std::string> activeFilters;
87 std::vector<std::string> activeEleFilters;
88 std::vector<std::string> activeEle2LegFilters;
89 std::vector<std::string> activePhoFilters;
90 std::vector<std::string> activePho2LegFilters;
141 if(hltEleSumBit==
nullptr) hltEleSumBit =
dbe_->
bookFloat(
"HLT_Electron");
142 if(hltPhoSumBit==
nullptr) hltPhoSumBit =
dbe_->
bookFloat(
"HLT_Photon");
152 hltEleSumBit->
Fill(eleSumBit);
160 hltPhoSumBit->
Fill(phoSumBit);
167 splitStrings.clear();
168 splitStrings.reserve(stringsToSplit.size());
169 for(
auto const & stringNr : stringsToSplit){
170 std::vector<std::string> tempSplitStrings;
172 if(tempSplitStrings.size()==2){
173 splitStrings.push_back(std::make_pair(tempSplitStrings[0],tempSplitStrings[1]));
175 edm::LogWarning(
"EgHLTOfflineSummaryClient") <<
" Error : entry "<<stringNr<<
" is not of form A:B, ignoring (ie this quailty test isnt being included in the sumamry hist) ";
185 if(egHLTSumHist==
nullptr){
200 hist->SetBinContent(xBinNr+1,yBinNr+1,-2);
222 std::set<std::string> filterNameSet;
223 for(
auto const & eleHLTFilterName :
eleHLTFilterNames_) filterNameSet.insert(eleHLTFilterName);
224 for(
auto const & phoHLTFilterName :
phoHLTFilterNames_) filterNameSet.insert(phoHLTFilterName);
228 std::vector<std::string>(filterNameSet.begin(),filterNameSet.end()).
swap(filterNames);
237 for(
auto const &
pattern : patterns){
240 for(
auto & monElem : monElems){
242 std::vector<QReport*> qTests = monElem->getQReports();
243 nrQTests+=qTests.size();
245 if(monElem->hasError()) nrFail++;
248 if(nrQTests==0)
return -1;
249 else if(nrFail==0)
return 1;
256 std::vector<edm::ParameterSet> qTestPara = iConfig.
getParameter<std::vector<edm::ParameterSet> >(
label);
257 qTests.resize(qTestPara.size());
258 for(
size_t testNr=0;testNr<qTestPara.size();testNr++){
259 qTests[testNr].name = qTestPara[testNr].getParameter<
std::string>(
"name");
260 qTests[testNr].qTestPatterns = qTestPara[testNr].getParameter<std::vector<std::string> >(
"qTestsToCheck");
MonitorElement * getEgHLTSumHist_()
T getParameter(std::string const &) const
std::vector< std::string > phoHLTFilterNamesForSumBit_
T getUntrackedParameter(std::string const &, T const &) const
void setBinContent(int binx, double content)
set content of bin (1-D)
void splitStringsToPairs_(const std::vector< std::string > &stringsToSplit, std::vector< std::pair< std::string, std::string > > &splitStrings)
std::vector< std::string > egHLTFiltersToMonPaths_
void getEgHLTFiltersToMon_(std::vector< std::string > &filterNames) const
std::vector< std::string > eleHLTFilterNamesForSumBit_
std::string egHLTSumHistName_
std::vector< MonitorElement * > getMatchingContents(const std::string &pattern, lat::Regexp::Syntax syntaxType=lat::Regexp::Wildcard) const
std::vector< SumHistBinData > egHLTSumHistXBins_
std::vector< std::string > eleHLTFilterNames_
std::vector< SumHistBinData > eleQTestsForSumBit_
std::vector< std::string > egHLTFiltersToMon_
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c) override
void swap(Association< C > &lhs, Association< C > &rhs)
void endRun(const edm::Run &run, const edm::EventSetup &c) override
MonitorElement * bookFloat(const char *name)
Book float.
const PhiMemoryImage patterns[9]
void beginRun(const edm::Run &run, const edm::EventSetup &c) override
void analyze(const edm::Event &, const edm::EventSetup &) override
~EgHLTOfflineSummaryClient() override
bool filterInactiveTriggers_
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
std::vector< SumHistBinData > phoQTestsForSumBit_
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
std::vector< std::string > phoHLTFilterNames_
int getQTestResults_(const std::string &filterName, const std::vector< std::string > &pattern) const
EgHLTOfflineSummaryClient(const EgHLTOfflineSummaryClient &rhs)
bool runClientEndLumiBlock_
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
void setCurrentFolder(const std::string &fullpath)
static void fillQTestData_(const edm::ParameterSet &iConfig, std::vector< SumHistBinData > &qTests, const std::string &label)