73 std::map<std::string, MonitorElement*>
DRnR_;
84 topFolderName_(iConfig.getParameter<
std::
string>(
"TopFolderName")),
85 inputFolderName_(iConfig.getParameter<
std::
string>(
"InputFolderName")),
86 minHits_(iConfig.getParameter<
int>(
"MinHits")) {
87 LogInfo(
"PixelDQM") <<
"SiPixelPhase1ResidualsExtra::SiPixelPhase1ResidualsExtra: Got DQM BackEnd interface" << endl;
91 LogInfo(
"PixelDQM") <<
"SiPixelPhase1ResidualsExtra::~SiPixelPhase1ResidualsExtra: Destructor" << endl;
111 float mean_range = 20.;
112 float rms_range = 200.;
118 iBooker.
book1D(
"residual_mean_x_Inner_PXLayer_" +
layer,
119 "Mean of Track Residuals X Inner Modules for Layer " +
layer +
";mean(x_rec-x_pred)[#mum]",
124 iBooker.
book1D(
"residual_mean_x_Outer_PXLayer_" +
layer,
125 "Mean of Track Residuals X Outer Modules for Layer " +
layer +
";mean(x_rec-x_pred)[#mum]",
130 iBooker.
book1D(
"residual_mean_y_Inner_PXLayer_" +
layer,
131 "Mean of Track Residuals Y Inner Modules for Layer " +
layer +
";mean(y_rec-y_pred)[#mum]",
136 iBooker.
book1D(
"residual_mean_y_Outer_PXLayer_" +
layer,
137 "Mean of Track Residuals Y Outer Modules for Layer " +
layer +
";mean(y_rec-y_pred)[#mum]",
143 iBooker.
book1D(
"residual_rms_x_Inner_PXLayer_" +
layer,
144 "RMS of Track Residuals X Inner Modules for Layer " +
layer +
";rms(x_rec-x_pred)[#mum]",
149 iBooker.
book1D(
"residual_rms_x_Outer_PXLayer_" +
layer,
150 "RMS of Track Residuals X Outer Modules for Layer " +
layer +
";rms(x_rec-x_pred)[#mum]",
155 iBooker.
book1D(
"residual_rms_y_Inner_PXLayer_" +
layer,
156 "RMS of Track Residuals Y Inner Modules for Layer " +
layer +
";rms(y_rec-y_pred)[#mum]",
161 iBooker.
book1D(
"residual_rms_y_Outer_PXLayer_" +
layer,
162 "RMS of Track Residuals Y Outer Modules for Layer " +
layer +
";rms(y_rec-y_pred)[#mum]",
168 "NormRes_mean_x_Inner_PXLayer_" +
layer,
169 "Mean of Normalized Track Residuals X Inner Modules for Layer " +
layer +
";mean((x_rec-x_pred)/x_err)",
174 "NormRes_mean_x_Outer_PXLayer_" +
layer,
175 "Mean of Normalized Track Residuals X Outer Modules for Layer " +
layer +
";mean((x_rec-x_pred)/x_err)",
180 "NormRes_mean_y_Inner_PXLayer_" +
layer,
181 "Mean of Normalized Track Residuals Y Inner Modules for Layer " +
layer +
";mean((y_rec-y_pred)/y_err)",
186 "NormRes_mean_y_Outer_PXLayer_" +
layer,
187 "Mean of Normalized Track Residuals Y Outer Modules for Layer " +
layer +
";mean((y_rec-y_pred)/y_err)",
193 "DRnR_x_Inner_PXLayer_" +
layer,
194 "RMS of Normalized Track Residuals X Inner Modules for Layer " +
layer +
";rms((x_rec-x_pred)/x_err)",
199 "DRnR_x_Outer_PXLayer_" +
layer,
200 "RMS of Normalized Track Residuals X Outer Modules for Layer " +
layer +
";rms((x_rec-x_pred)/x_err)",
205 "DRnR_y_Inner_PXLayer_" +
layer,
206 "RMS of Normalized Track Residuals Y Inner Modules for Layer " +
layer +
";rms((y_rec-y_pred)/y_err)",
211 "DRnR_y_Outer_PXLayer_" +
layer,
212 "RMS of Normalized Track Residuals Y Outer Modules for Layer " +
layer +
";rms((y_rec-y_pred)/y_err)",
222 "residual_mean_x_Inner",
"Mean of Track Residuals X Inner Modules;mean(x_rec-x_pred)[#mum]", 100, -20., 20.);
224 "residual_mean_x_Outer",
"Mean of Track Residuals X Outer Modules;mean(x_rec-x_pred)[#mum]", 100, -20., 20.);
226 "residual_mean_y_Inner",
"Mean of Track Residuals Y Inner Modules;mean(y_rec-y_pred)[#mum]", 100, -20., 20.);
228 "residual_mean_y_Outer",
"Mean of Track Residuals Y Outer Modules;mean(y_rec-y_pred)[#mum]", 100, -20., 20.);
231 "residual_rms_x_Inner",
"RMS of Track Residuals X Inner Modules;rms(x_rec-x_pred)[#mum]", 100, 0., 200.);
233 "residual_rms_x_Outer",
"RMS of Track Residuals X Outer Modules;rms(x_rec-x_pred)[#mum]", 100, 0., 200.);
235 "residual_rms_y_Inner",
"RMS of Track Residuals Y Inner Modules;rms(y_rec-y_pred)[#mum]", 100, 0., 200.);
237 "residual_rms_y_Outer",
"RMS of Track Residuals Y Outer Modules;rms(y_rec-y_pred)[#mum]", 100, 0., 200.);
239 DRnR_[
"NormRes_mean_x_Inner"] =
240 iBooker.
book1D(
"NormRes_mean_x_Inner",
241 "Mean of Normalized Track Residuals X Inner Modules;mean((x_rec-x_pred)/x_err)",
245 DRnR_[
"NormRes_mean_x_Outer"] =
246 iBooker.
book1D(
"NormRes_mean_x_Outer",
247 "Mean of Normalized Track Residuals X Outer Modules;mean((x_rec-x_pred)/x_err)",
251 DRnR_[
"NormRes_mean_y_Inner"] =
252 iBooker.
book1D(
"NormRes_mean_y_Inner",
253 "Mean of Normalized Track Residuals Y Inner Modules;mean((y_rec-y_pred)/y_err)",
257 DRnR_[
"NormRes_mean_y_Outer"] =
258 iBooker.
book1D(
"NormRes_mean_y_Outer",
259 "Mean of Normalized Track Residuals Y Outer Modules;mean((y_rec-y_pred)/y_err)",
265 "DRnR_x_Inner",
"RMS of Normalized Track Residuals X Inner Modules;rms((x_rec-x_pred)/x_err)", 100, 0., 2.);
267 "DRnR_x_Outer",
"RMS of Normalized Track Residuals X Outer Modules;rms((x_rec-x_pred)/x_err)", 100, 0., 2.);
269 "DRnR_y_Inner",
"RMS of Normalized Track Residuals Y Inner Modules;rms((y_rec-y_pred)/y_err)", 100, 0., 2.);
271 "DRnR_y_Outer",
"RMS of Normalized Track Residuals Y Outer Modules;rms((y_rec-y_pred)/y_err)", 100, 0., 2.);
277 "residual_mean_x_pos",
"Mean of Track Residuals X pos. Side;mean(x_rec-x_pred)[#mum]", 100, -20., 20.);
279 "residual_mean_x_neg",
"Mean of Track Residuals X neg. Side;mean(x_rec-x_pred)[#mum]", 100, -20., 20.);
281 "residual_mean_y_pos",
"Mean of Track Residuals Y pos. Side;mean(y_rec-y_pred)[#mum]", 100, -20., 20.);
283 "residual_mean_y_neg",
"Mean of Track Residuals Y neg. Side;mean(y_rec-y_pred)[#mum]", 100, -20., 20.);
286 iBooker.
book1D(
"residual_rms_x_pos",
"RMS of Track Residuals X pos. Side;rms(x_rec-x_pred)[#mum]", 100, 0., 200.);
288 iBooker.
book1D(
"residual_rms_x_neg",
"RMS of Track Residuals X neg. Side;rms(x_rec-x_pred)[#mum]", 100, 0., 200.);
290 iBooker.
book1D(
"residual_rms_y_pos",
"RMS of Track Residuals Y pos. Side;rms(y_rec-y_pred)[#mum]", 100, 0., 200.);
292 iBooker.
book1D(
"residual_rms_y_neg",
"RMS of Track Residuals Y neg. Side;rms(y_rec-y_pred)[#mum]", 100, 0., 200.);
295 "NormRes_mean_x_pos",
"Mean of Normalized Track Residuals X pos. Side;mean((x_rec-x_pred)/x_err)", 100, -1., 1.);
297 "NormRes_mean_x_neg",
"Mean of Normalized Track Residuals X neg. Side;mean((x_rec-x_pred)/x_err)", 100, -1., 1.);
299 "NormRes_mean_y_pos",
"Mean of Normalized Track Residuals Y pos. Side;mean((y_rec-y_pred)/y_err)", 100, -1., 1.);
301 "NormRes_mean_y_neg",
"Mean of Normalized Track Residuals Y neg. Side;mean((y_rec-y_pred)/y_err)", 100, -1., 1.);
304 "DRnR_x_pos",
"RMS of Normalized Track Residuals X pos. Side;rms((x_rec-x_pred)/x_err)", 100, 0., 2.);
306 "DRnR_x_neg",
"RMS of Normalized Track Residuals X neg. Side;rms((x_rec-x_pred)/x_err)", 100, 0., 2.);
308 "DRnR_y_pos",
"RMS of Normalized Track Residuals Y pos. Side;rms((y_rec-y_pred)/y_err)", 100, 0., 2.);
310 "DRnR_y_neg",
"RMS of Normalized Track Residuals Y neg. Side;rms((y_rec-y_pred)/y_err)", 100, 0., 2.);
331 inputFolderName_ +
"/ResidualsExtra/PXBarrel/DRnR_x_per_SignedModule_per_SignedLadder_PXLayer_" +
layer);
333 inputFolderName_ +
"/ResidualsExtra/PXBarrel/DRnR_y_per_SignedModule_per_SignedLadder_PXLayer_" +
layer);
335 if (me_x ==
nullptr || me_y ==
nullptr || me2_x ==
nullptr || me2_y ==
nullptr) {
337 <<
"Residuals plots for Pixel BPIX Layer" <<
layer <<
" not found. Skipping ResidualsExtra plots generation.";
345 if (i <= me_x->getNbinsY() / 2) {
346 bool iAmInner = (
i % 2 == 0);
348 for (
int j : {1, 2, 3, 4, 6, 7, 8, 9}) {
361 for (
int j : {1, 2, 3, 4, 6, 7, 8, 9}) {
375 bool iAmInner = (
i % 2 == 1);
377 for (
int j : {1, 2, 3, 4, 6, 7, 8, 9}) {
390 for (
int j : {1, 2, 3, 4, 6, 7, 8, 9}) {
404 for (
int j : {1, 2, 3, 4, 6, 7, 8, 9}) {
427 inputFolderName_ +
"/ResidualsExtra/PXForward/DRnR_x_per_PXDisk_per_SignedBladePanel_PXRing_" +
ring);
429 inputFolderName_ +
"/ResidualsExtra/PXForward/DRnR_y_per_PXDisk_per_SignedBladePanel_PXRing_" +
ring);
431 if (me_x ==
nullptr || me_y ==
nullptr || me2_x ==
nullptr || me2_y ==
nullptr) {
433 <<
"Residuals plots for Pixel FPIX Ring" <<
ring <<
" not found. Skipping ResidualsExtra plots generation.";
437 bool posSide =
false;
452 bool iAmInner = (
i % 2 == 0);
509 desc.add<
std::string>(
"TopFolderName",
"PixelPhase1/Tracks/ResidualsExtra")
510 ->setComment(
"Folder in which to write output histograms");
511 desc.add<
std::string>(
"InputFolderName",
"")->setComment(
"Folder from which to fetch in the input MEs");
512 desc.add<
int>(
"MinHits", 30)->setComment(
"minimum number of hits per module to fill the DRnR plots");
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
virtual double getBinEntries(int bin) const
get # of bin entries (for profiles)
virtual void setCurrentFolder(std::string const &fullpath)
#define DEFINE_FWK_MODULE(type)
virtual int getNbinsY() const
get # of bins in Y-axis
Log< level::Info, false > LogInfo
virtual void setBinEntries(int bin, double nentries)
set # of bin entries (to be used for profiles)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
virtual MonitorElement * get(std::string const &fullpath) const
virtual int getBin(int binx, int biny) const
get global bin number (for 2-D profiles)
virtual int getNbinsX() const
get # of bins in X-axis
virtual double getBinError(int binx) const
get uncertainty on content of bin (1-D) - See TH1::GetBinError for details
Log< level::Warning, false > LogWarning
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
virtual double getBinContent(int binx) const
get content of bin (1-D)