573 std::cout <<
"[HLTObjectsMonitor::bookHistograms]" << std::endl;
582 std::unordered_map<std::string, int> uniqueNames;
597 std::cout <<
p.pathNAME <<
" --> bin: " <<
i << std::endl;
604 std::cout <<
"booking plots for " <<
plot.label << std::endl;
606 if (
plot.pathIDX <= 0) {
608 <<
" is not available in the HLT menu ! no plots are going to be booked for it " 609 "(update DQM/HLTEvF/python/HLTObjectsMonitor_cfi.py)";
613 std::cout <<
"booking histograms for " <<
plot.pathNAME << std::endl;
623 plot.nME.first = ibooker.book1D(
name,
title, 20, -0.5, 19.5);
624 plot.nME.first->setAxisTitle(
plot.xTITLE +
" # objects");
627 if (
plot.ptME.second)
635 std::vector<float> fbinning((
plot.ptBINNING).begin(), (
plot.ptBINNING).
end());
636 float* arr = &fbinning[0];
638 plot.ptME.first->setAxisTitle(
plot.xTITLE +
" p_{T} [GeV]");
641 if (
plot.phiME.second)
649 std::vector<float> fbinning((
plot.phiBINNING).begin(), (
plot.phiBINNING).
end());
650 float* arr = &fbinning[0];
652 plot.phiME.first->setAxisTitle(
plot.xTITLE +
" #phi [rad]");
655 if (
plot.doPlotETA) {
656 if (
plot.etaME.second)
664 std::vector<float> fbinning((
plot.etaBINNING).begin(), (
plot.etaBINNING).
end());
665 float* arr = &fbinning[0];
668 plot.etaME.first->setAxisTitle(
plot.xTITLE +
" #eta");
671 if (
plot.doPlotMASS) {
672 if (
plot.massME.second)
680 std::vector<float> fbinning((
plot.massBINNING).begin(), (
plot.massBINNING).
end());
681 float* arr = &fbinning[0];
684 plot.massME.first->setAxisTitle(
plot.xTITLE +
" mass [GeV]");
687 if (
plot.doPlotENERGY) {
688 if (
plot.energyME.second)
696 std::vector<float> fbinning((
plot.ptBINNING).begin(), (
plot.ptBINNING).
end());
697 float* arr = &fbinning[0];
700 plot.energyME.first->setAxisTitle(
plot.xTITLE +
" energy [GeV]");
703 if (
plot.doPlotCSV) {
704 if (
plot.csvME.second)
713 plot.csvME.first->setAxisTitle(
plot.xTITLE +
" CSV discriminator");
717 if (
plot.etaVSphiME.second)
725 std::vector<float> fbinningX((
plot.etaBINNING).begin(), (
plot.etaBINNING).
end());
726 float* arrX = &fbinningX[0];
729 std::vector<float> fbinningY((
plot.phiBINNING).begin(), (
plot.phiBINNING).
end());
730 float* arrY = &fbinningY[0];
732 plot.etaVSphiME.first->setAxisTitle(
plot.xTITLE +
" #eta", 1);
733 plot.etaVSphiME.first->setAxisTitle(
plot.xTITLE +
" #phi", 2);
736 if (
plot.doPlotHEP17) {
737 if (
plot.ptMEhep17.second)
743 std::vector<float> fbinning((
plot.ptBINNING).begin(), (
plot.ptBINNING).
end());
744 float* arr = &fbinning[0];
749 plot.ptMEhep17.first->setAxisTitle(
plot.xTITLE +
" p_{T} [GeV]", 1);
751 if (
plot.ptMEhem17.second)
759 plot.ptMEhem17.first->setAxisTitle(
plot.xTITLE +
" p_{T} [GeV]", 1);
762 if (
plot.doPlotRazor) {
763 if (
plot.mrME.second)
770 plot.mrME.first = ibooker.book1D(
name,
title, 100, 0., 100.);
771 plot.mrME.first->setAxisTitle(
plot.xTITLE +
" M_{R} [GeV]", 1);
773 if (
plot.rsqME.second)
780 plot.rsqME.first = ibooker.book1D(
name,
title, 100, 0., 100.);
781 plot.rsqME.first->setAxisTitle(
plot.xTITLE +
" RSQ [GeV]", 1);
784 if (
plot.doPlotDXY) {
785 if (
plot.dxyME.second)
793 std::vector<float> fbinning((
plot.dxyBINNING).begin(), (
plot.dxyBINNING).
end());
794 float* arr = &fbinning[0];
796 plot.dxyME.first->setAxisTitle(
plot.xTITLE +
" d_{xy} [cm]");
800 if (
plot.dzME.second)
808 std::vector<float> fbinning((
plot.dzBINNING).begin(), (
plot.dzBINNING).
end());
809 float* arr = &fbinning[0];
811 plot.dzME.first->setAxisTitle(
plot.xTITLE +
" d_{z} [cm]");
814 if (
plot.dRME.second)
822 plot.dRME.first->setAxisTitle(
plot.xTITLE +
" dR_{obj,obj}");
824 if (
plot.dRetaVSphiME.second)
830 title =
plot.pathNAME +
" di-object dR in the #eta-#phi plane (of 1st obj)";
831 plot.dRetaVSphiME.first = ibooker.bookProfile2D(
name,
title, 60, -3., 3., 64, -3.2, 3.2, 0., 5.);
832 plot.dRetaVSphiME.first->setAxisTitle(
plot.xTITLE +
" #eta", 1);
833 plot.dRetaVSphiME.first->setAxisTitle(
plot.xTITLE +
" #phi", 2);
834 plot.dRetaVSphiME.first->setAxisTitle(
plot.xTITLE +
" dR_{obj,obj}", 3);
836 if (
plot.q1q2ME.second)
842 title =
plot.pathNAME +
" di-object q1xq2";
844 plot.q1q2ME.first->setAxisTitle(
plot.xTITLE +
" q_{obj1} x q_{obj2}");
846 if (
plot.doPlotDiMass) {
847 if (
plot.dimassME.second)
853 title =
plot.pathNAME +
" di-object mass";
855 std::vector<float> fbinning((
plot.dimassBINNING).begin(), (
plot.dimassBINNING).
end());
856 float* arr = &fbinning[0];
858 plot.dimassME.first->setAxisTitle(
plot.xTITLE +
" m_{obj,obj} [GeV]");
863 std::cout <<
"[HLTObjectsMonitor::bookHistograms] DONE" << std::endl;
std::vector< hltPlot > hltPlots_
std::string backupFolder_
std::unordered_map< std::string, int > plotNamesToBins_
const MEbinning csv_binning_
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)
MonitorElement * eventsPlot_
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)