16 #include <TProfile2D.h>
37 monitorName_ = parameters_.getUntrackedParameter<
string>(
"monitorName",
"");
39 prescaleLS_ = parameters_.getUntrackedParameter<
int>(
"prescaleLS", -1);
41 prescaleEvt_ = parameters_.getUntrackedParameter<
int>(
"prescaleEvt", -1);
43 output_dir_ = parameters_.getUntrackedParameter<
string>(
"output_dir",
"");
45 input_dir_ = parameters_.getUntrackedParameter<
string>(
"input_dir",
"");
57 dttpgphmapcorrf = ibooker.
book2D(
58 "DT_TPG_phi_map_corr_frac",
"Fraction of correlated best triggers per station", 20, 1, 21, 12, 0, 12);
60 ibooker.
book2D(
"DT_TPG_phi_map_2nd_frac",
"Fraction of second tracks per station", 20, 1, 21, 12, 0, 12);
62 ibooker.
book2D(
"DT_TPG_phi_map_bx-1_frac",
"Fraction of triggers per station (BX=-1)", 20, 1, 21, 12, 0, 12);
64 ibooker.
book2D(
"DT_TPG_phi_map_bx0_frac",
"Fraction of triggers per station (BX=0)", 20, 1, 21, 12, 0, 12);
66 ibooker.
book2D(
"DT_TPG_phi_map_bx+1_frac",
"Fraction of triggers per station (BX=1)", 20, 1, 21, 12, 0, 12);
67 setMapPhLabel(dttpgphmapcorrf);
68 setMapPhLabel(dttpgphmap2ndf);
69 setMapPhLabel(dttpgphmapbxf[0]);
70 setMapPhLabel(dttpgphmapbxf[1]);
71 setMapPhLabel(dttpgphmapbxf[2]);
73 dttpgthmaphf = ibooker.
book2D(
74 "DT_TPG_theta_map_corr_frac",
"Fraction of H quality best triggers per station", 15, 1, 16, 12, 0, 12);
76 ibooker.
book2D(
"DT_TPG_theta_map_bx-1_frac",
"Fraction of triggers per station (BX=-1)", 15, 1, 16, 12, 0, 12);
78 ibooker.
book2D(
"DT_TPG_theta_map_bx0_frac",
"Fraction of triggers per station (BX=0)", 15, 1, 16, 12, 0, 12);
80 ibooker.
book2D(
"DT_TPG_theta_map_bx+1_frac",
"Fraction of triggers per station (BX=1)", 15, 1, 16, 12, 0, 12);
81 setMapThLabel(dttpgthmaphf);
82 setMapThLabel(dttpgthmapbxf[0]);
83 setMapThLabel(dttpgthmapbxf[1]);
84 setMapThLabel(dttpgthmapbxf[2]);
90 if (prescaleEvt_ > 0 && counterEvt_ % prescaleEvt_ != 0)
93 string nName =
"DT_TPG_phi_best_map_corr";
94 string dName =
"DT_TPG_phi_best_map";
95 makeRatioHisto(igetter, dttpgphmapcorrf, nName, dName);
96 dName =
"DT_TPG_phi_map";
97 nName =
"DT_TPG_phi_map_2nd";
98 makeRatioHisto(igetter, dttpgphmap2ndf, nName, dName);
99 nName =
"DT_TPG_phi_map_bx-1";
100 makeRatioHisto(igetter, dttpgphmapbxf[0], nName, dName);
101 nName =
"DT_TPG_phi_map_bx0";
102 makeRatioHisto(igetter, dttpgphmapbxf[1], nName, dName);
103 nName =
"DT_TPG_phi_map_bx+1";
104 makeRatioHisto(igetter, dttpgphmapbxf[2], nName, dName);
106 nName =
"DT_TPG_theta_best_map_h";
107 dName =
"DT_TPG_theta_best_map";
108 makeRatioHisto(igetter, dttpgthmaphf, nName, dName);
109 dName =
"DT_TPG_theta_map";
110 nName =
"DT_TPG_theta_map_bx-1";
111 makeRatioHisto(igetter, dttpgthmapbxf[0], nName, dName);
112 nName =
"DT_TPG_theta_map_bx0";
113 makeRatioHisto(igetter, dttpgthmapbxf[1], nName, dName);
114 nName =
"DT_TPG_theta_map_bx+1";
115 makeRatioHisto(igetter, dttpgthmapbxf[2], nName, dName);
122 denominator = this->get2DHisto(input_dir_ +
"/" + dName, igetter);
123 numerator = this->get2DHisto(input_dir_ +
"/" + nName, igetter);
125 if (numerator && denominator) {
126 TH2F *ratio = ratioME->
getTH2F();
128 ratio->Divide(numerator, denominator);
130 LogInfo(
"TriggerDQM") <<
"[TriggerDQM]: ratio histo named \"" << ratioME->
getName() <<
"\" not found!" << endl;
134 LogInfo(
"TriggerDQM") <<
"[TriggerDQM]: numerator histo \"" << nName <<
"\" not found!" << endl;
136 LogInfo(
"TriggerDQM") <<
"[TriggerDQM]: denominator histo \"" << dName <<
"\" not found!" << endl;
144 LogInfo(
"TriggerDQM") <<
"ME NOT FOUND.";
155 LogInfo(
"TriggerDQM") <<
"ME NOT FOUND.";
166 LogInfo(
"TriggerDQM") <<
"ME NOT FOUND.";
177 LogInfo(
"TriggerDQM") <<
"ME NOT FOUND.";
186 for (
int i = 0;
i < 5;
i++) {
189 me->
setBinLabel(1 + i * 4,
"Wheel " + wheel.str(), 1);
195 for (
int i = 0;
i < 5;
i++) {
198 me->
setBinLabel(1 + i * 3,
"Wheel " + wheel.str(), 1);
static AlgebraicMatrix initialize()
virtual TH2F * getTH2F() const
void setMapThLabel(MonitorElement *me)
virtual void setCurrentFolder(std::string const &fullpath)
TProfile * get1DProfile(std::string meName, DQMStore::IGetter &igetter)
virtual TH1F * getTH1F() const
const std::string & getName() const
get name of ME
TH1F * get1DHisto(std::string meName, DQMStore::IGetter &igetter)
TProfile2D * get2DProfile(std::string meName, DQMStore::IGetter &igetter)
TH2F * get2DHisto(std::string meName, DQMStore::IGetter &igetter)
void dqmEndJob(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter) override
~L1TDTTPGClient() override
Destructor.
virtual MonitorElement * get(std::string const &fullpath) const
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)
virtual TProfile2D * getTProfile2D() const
Log< level::Info, false > LogInfo
virtual TProfile * getTProfile() const
L1TDTTPGClient(const edm::ParameterSet &ps)
Constructor.
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
void makeRatioHisto(DQMStore::IGetter &igetter, MonitorElement *ratioME, std::string &nName, std::string &dName)
void setMapPhLabel(MonitorElement *me)
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)