File indexing completed on 2023-03-17 10:46:20
0001
0002
0003
0004
0005
0006
0007
0008
0009 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0010
0011 #include "CondCore/Utilities/interface/PayloadInspectorModule.h"
0012 #include "CondCore/Utilities/interface/PayloadInspector.h"
0013 #include "CondCore/CondDB/interface/Time.h"
0014 #include "CondCore/SiPixelPlugins/interface/SiPixelPayloadInspectorHelper.h"
0015 #include "FWCore/ParameterSet/interface/FileInPath.h"
0016 #include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h"
0017
0018
0019 #include "CondFormats/SiPixelObjects/interface/SiPixelQualityProbabilities.h"
0020 #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h"
0021 #include "DataFormats/DetId/interface/DetId.h"
0022 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0023
0024 #include <memory>
0025 #include <sstream>
0026 #include <iostream>
0027
0028
0029 #include "TH2F.h"
0030 #include "TLegend.h"
0031 #include "TCanvas.h"
0032 #include "TLine.h"
0033 #include "TGraph.h"
0034 #include "TGaxis.h"
0035 #include "TStyle.h"
0036 #include "TLatex.h"
0037 #include "TPave.h"
0038 #include "TPaveStats.h"
0039
0040 namespace {
0041
0042 using namespace cond::payloadInspector;
0043
0044
0045
0046
0047
0048 class SiPixelQualityProbabilitiesScenariosCount : public PlotImage<SiPixelQualityProbabilities, SINGLE_IOV> {
0049 public:
0050 SiPixelQualityProbabilitiesScenariosCount()
0051 : PlotImage<SiPixelQualityProbabilities, SINGLE_IOV>("SiPixelQualityProbabilities scenarios count") {}
0052
0053 bool fill() override {
0054 auto tag = PlotBase::getTag<0>();
0055 auto iov = tag.iovs.front();
0056 std::shared_ptr<SiPixelQualityProbabilities> payload = fetchPayload(std::get<1>(iov));
0057 auto PUbins = payload->getPileUpBins();
0058 auto span = PUbins.back() - PUbins.front();
0059
0060 TGaxis::SetMaxDigits(3);
0061
0062 TCanvas canvas("Canv", "Canv", 1200, 1000);
0063 canvas.cd();
0064 auto h1 = std::make_unique<TH1F>("Count",
0065 "SiPixelQualityProbablities Scenarios count;PU bin;n. of scenarios",
0066 span,
0067 PUbins.front(),
0068 PUbins.back());
0069 h1->SetStats(false);
0070
0071 canvas.SetTopMargin(0.06);
0072 canvas.SetBottomMargin(0.12);
0073 canvas.SetLeftMargin(0.12);
0074 canvas.SetRightMargin(0.05);
0075 canvas.Modified();
0076
0077 for (const auto &bin : PUbins) {
0078 h1->SetBinContent(bin + 1, payload->nelements(bin));
0079 }
0080
0081 h1->SetTitle("");
0082 h1->GetYaxis()->SetRangeUser(0., h1->GetMaximum() * 1.30);
0083 h1->SetFillColor(kRed);
0084 h1->SetMarkerStyle(20);
0085 h1->SetMarkerSize(1);
0086 h1->Draw("bar2");
0087
0088 SiPixelPI::makeNicePlotStyle(h1.get());
0089
0090 canvas.Update();
0091
0092 TLegend legend = TLegend(0.40, 0.88, 0.95, 0.94);
0093 legend.SetHeader(("Payload hash: #bf{" + (std::get<1>(iov)) + "}").c_str(),
0094 "C");
0095
0096 legend.SetTextSize(0.025);
0097 legend.Draw("same");
0098
0099 auto ltx = TLatex();
0100 ltx.SetTextFont(62);
0101
0102 ltx.SetTextSize(0.05);
0103 ltx.SetTextAlign(11);
0104 ltx.DrawLatexNDC(gPad->GetLeftMargin() + 0.1,
0105 1 - gPad->GetTopMargin() + 0.01,
0106 ("SiPixelQualityProbabilities IOV:" + std::to_string(std::get<0>(iov))).c_str());
0107
0108 std::string fileName(m_imageFileName);
0109 canvas.SaveAs(fileName.c_str());
0110
0111 return true;
0112 }
0113 };
0114
0115 }
0116
0117
0118 PAYLOAD_INSPECTOR_MODULE(SiPixelQualityProbabilities) {
0119 PAYLOAD_INSPECTOR_CLASS(SiPixelQualityProbabilitiesScenariosCount);
0120 }