|
|
Go to the documentation of this file.
19 #include <TDirectoryFile.h>
41 std::vector<std::string> &listLayers);
50 Bool_t bVarXBin =
false);
60 fReportSummary_ = -1.0;
62 strDirSummary_ =
"GEM/EventInfo";
63 strDirStatus_ =
"GEM/DAQStatus";
69 descriptions.
add(
"GEMDQMHarvester",
desc);
77 drawSummaryHistogram(store);
81 std::string strSrcDigiOcc =
"GEM/digi/summaryOccDigi";
82 std::string strSrcDigiMal =
"GEM/digi/summaryMalfuncDigi";
83 std::string strSrcCStatus =
"GEM/DAQStatus/summaryStatus";
86 std::string strSrcVFATStatus =
"GEM/DAQStatus/vfat_statusSum";
94 if (h2SrcDigiOcc !=
nullptr && h2SrcDigiMal !=
nullptr && h2SrcCStatus !=
nullptr) {
96 std::vector<std::string> listLayer;
97 createSummaryHist(store, h2SrcCStatus, h2Sum, listLayer);
98 refineSummaryHistogram(h2Sum, h2SrcDigiOcc, h2SrcCStatus, h2SrcDigiMal,
true);
100 for (
const auto &strSuffix : listLayer) {
103 if (h2SrcVFATOcc ==
nullptr || h2SrcVFATStatus ==
nullptr)
106 createSummaryVFAT(store, h2SrcVFATStatus, strSuffix, h2SumVFAT);
107 refineSummaryHistogram(h2SumVFAT, h2SrcVFATOcc, h2SrcVFATStatus);
120 std::vector<std::string> &listLayers) {
129 for (Int_t
i = 1;
i <=
nBinY;
i++) {
131 auto nPos = strLabelFull.find(
';');
132 auto strLabel = strLabelFull.substr(0, nPos);
133 listLayers.push_back(strLabelFull.substr(nPos + 1));
160 for (Int_t
j = 1;
j <=
nBinY;
j++) {
166 for (Int_t
i = 1;
i <=
nBinX;
i++) {
169 Float_t fMal = (h2SrcMal !=
nullptr ? h2SrcMal->
getBinContent(
i,
j) : 0.0);
172 if (fStatus > 0 || fMal > 0)
void drawSummaryHistogram(edm::Service< DQMStore > &store)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
MonitorElement * bookFloat(TString const &name, FUNC onbooking=NOOP())
virtual void setTitle(const std::string &title)
set (ie. change) histogram/profile title
void dqmEndLuminosityBlock(DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) override
virtual std::string getAxisTitle(int axis=1) const
get x-, y- or z-axis title (axis=1, 2, 3 respectively)
std::string strDirSummary_
#define DEFINE_FWK_MODULE(type)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
~GEMDQMHarvester() override
std::string strDirStatus_
void setCurrentFolder(std::string const &fullpath) override
virtual void setXTitle(std::string const &title)
void createSummaryVFAT(edm::Service< DQMStore > &store, MonitorElement *h2Src, std::string strSuffix, MonitorElement *&h2Sum)
GEMDQMHarvester(const edm::ParameterSet &)
virtual int getNbinsY() const
get # of bins in Y-axis
virtual void setYTitle(std::string const &title)
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
void createSummaryHist(edm::Service< DQMStore > &store, MonitorElement *h2Src, MonitorElement *&h2Sum, std::vector< std::string > &listLayers)
virtual std::string getTitle() const
get MonitorElement title
void refineSummaryHistogram(MonitorElement *h2Sum, MonitorElement *h2SrcOcc, MonitorElement *h2SrcCStatus, MonitorElement *h2SrcMal=nullptr, Bool_t bVarXBin=false)
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
virtual int getNbinsX() const
get # of bins in X-axis
virtual MonitorElement * get(std::string const &fullpath) const
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
virtual double getBinContent(int binx) const
get content of bin (1-D)
virtual TH2F * getTH2F() const