76 std::vector<double> pTEntries(
PtBins_.size() - 1, 0);
80 std::vector<TString> pTRange(
PtBins_.size() - 1);
90 TH2 *th =
me->getTH2F();
92 size_t nbinx =
PtBins_.size() - 1;
93 size_t nbiny =
me->getNbinsY();
95 float ymin = th->GetYaxis()->GetXmin();
96 float ymax = th->GetYaxis()->GetXmax();
101 float *
xbins =
new float[nbinx + 1];
102 for (
size_t ix = 1; ix < nbinx + 1; ++ix) {
107 pTRange[ix - 1] = TString::Format(
"Pt%d_%d",
PtBins_[ix - 1],
PtBins_[ix]);
108 if (
name ==
"BRdelta_et_Over_et_VS_et_")
109 pTRange[ix - 1] = TString::Format(
"BRPt%d_%d",
PtBins_[ix - 1],
PtBins_[ix]);
110 else if (
name ==
"ERdelta_et_Over_et_VS_et_")
111 pTRange[ix - 1] = TString::Format(
"ERPt%d_%d",
PtBins_[ix - 1],
PtBins_[ix]);
125 tit_new =
"Average " + ytit +
";" + xtit +
";Average_" + ytit;
128 tit_new =
"RMS " + ytit +
";" + xtit +
";RMS_" + ytit;
131 tit_new =
";" + xtit +
";Mean_" + ytit;
134 tit_new =
";" + xtit +
";Sigma_" + ytit;
139 for (
size_t ix = 1; ix < nbinx + 1; ++ix) {
141 if (
name ==
"delta_et_Over_et_VS_et_")
143 pTRange[ix - 1], TString::Format(
"Total %s;%s;Events", ytit.data(), ytit.data()), nbiny,
ymin,
ymax);
144 if (
name ==
"BRdelta_et_Over_et_VS_et_")
146 pTRange[ix - 1], TString::Format(
"Barrel %s;%s;Events", ytit.data(), ytit.data()), nbiny,
ymin,
ymax);
147 else if (
name ==
"ERdelta_et_Over_et_VS_et_")
149 pTRange[ix - 1], TString::Format(
"Endcap %s;%s;Events", ytit.data(), ytit.data()), nbiny,
ymin,
ymax);
151 for (
size_t iy = 0; iy <= nbiny + 1; ++iy)
152 if (th->GetBinContent(ix, iy)) {
154 pT[ix - 1]->setBinContent(iy, th->GetBinContent(ix, iy));
155 pT[ix - 1]->setBinError(iy, th->GetBinError(ix, iy));
156 pTEntries[ix - 1] += th->GetBinContent(ix, iy);
159 pT[ix - 1]->setEntries(pTEntries[ix - 1]);
163 me_average->setBinContent(ix,
average);
187 TH1F *th_slice = me_slice->
getTH1F();
188 if (th_slice && th_slice->GetEntries() > 0) {
190 TF1 gaus(
"mygaus",
"gaus");
191 th_slice->Fit(&gaus,
"Q0 SERIAL");
192 sigma = gaus.GetParameter(2);
193 mean = gaus.GetParameter(1);
211 TH1 *th1 =
me1->getTH1F();
212 size_t nbinx =
me1->getNbinsX();
214 float xmin = th1->GetXaxis()->GetXmin();
215 float xmax = th1->GetXaxis()->GetXmax();
218 tit_new =
";" + xtit +
";Efficiency";
226 for (
size_t ix = 1; ix < nbinx + 1; ++ix) {
227 float val1 =
me1->getBinContent(ix);
228 float val2 =
me2->getBinContent(ix);
T getParameter(std::string const &) const
void doSummaries(DQMStore::IBooker &, DQMStore::IGetter &)
virtual void setCurrentFolder(std::string const &fullpath)
#define DEFINE_FWK_MODULE(type)
Kind kind() const
Get the type of the monitor element.
ParameterSet const & parameterSet(StableProvenance const &provenance, ProcessHistory const &history)
void createResolutionPlots(DQMStore::IBooker &, DQMStore::IGetter &, std::string &folder, std::string &name)
void createEfficiencyPlots(DQMStore::IBooker &, DQMStore::IGetter &, std::string &folder, std::string &name)
PFClient_JetRes(const edm::ParameterSet ¶meterSet)
virtual void Reset()
Remove all data from the ME, keept the empty histogram with all its settings.
virtual double getRMS(int axis=1) const
get RMS of histogram along x, y or z axis (axis=1, 2, 3 respectively)
void getHistogramParameters(MonitorElement *me_slice, double &avarage, double &rms, double &mean, double &sigma)
void doEfficiency(DQMStore::IBooker &, DQMStore::IGetter &)
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
std::vector< std::string > effHistogramNames_
virtual TH1F * getTH1F() const
virtual MonitorElement * get(std::string const &fullpath) const
std::vector< int > PtBins_
virtual double getMean(int axis=1) const
get mean value of histogram along x, y or z axis (axis=1, 2, 3 respectively)
std::vector< std::string > folderNames_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
std::vector< std::string > histogramNames_