From 4fc94163d539af5087b417550af1380d2049f9f6 Mon Sep 17 00:00:00 2001 From: mmusich Date: Sat, 22 Aug 2020 15:32:44 +0200 Subject: [PATCH 1/5] gains diff and ratio WIP --- .../interface/SiPixelGainCalibHelper.h | 249 ++++++++++++++++++ ...lGainCalibrationForHLT_PayloadInspector.cc | 9 + ...GainCalibrationOffline_PayloadInspector.cc | 10 + .../SiPixelGainCalibrationComparator_DB.sh | 83 ++++++ .../test/testSiPixelGainCalibrationForHLT.sh | 29 ++ 5 files changed, 380 insertions(+) create mode 100755 CondCore/SiPixelPlugins/test/SiPixelGainCalibrationComparator_DB.sh diff --git a/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h b/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h index a6ac715091f87..8958ab899184e 100644 --- a/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h +++ b/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h @@ -36,6 +36,73 @@ namespace gainCalibHelper { enum type { t_gain = 0, t_pedestal = 1, t_correlation = 2 }; + //=========================================================================== + // helper method to fill the ratio and diff distributions + template + static void fillDiffAndRatio(const std::shared_ptr& payload_A, + const std::shared_ptr& payload_B, + std::array, 2> arr, + gainCalibPI::type theType) { + std::vector detids_A; + payload_A->getDetIds(detids_A); + std::vector detids_B; + payload_B->getDetIds(detids_B); + + if (detids_A != detids_B) { + edm::LogError("fillDiffAndRatio") << "the list of DetIds for the two payloads are not equal" + << " cannot make any comparison!" << std::endl; + } + + assert(detids_A == detids_B); + + for (const auto& d : detids_A) { + auto range = payload_A->getRange(d); + int numberOfRowsToAverageOver = payload_A->getNumberOfRowsToAverageOver(); + int ncols = payload_A->getNCols(d); + int nRocsInRow = (range.second - range.first) / ncols / numberOfRowsToAverageOver; + unsigned int nRowsForHLT = 1; + int nrows = std::max((payload_A->getNumberOfRowsToAverageOver() * nRocsInRow), + nRowsForHLT); // dirty trick to make it work for the HLT payload + + auto rangeAndCol_A = payload_A->getRangeAndNCols(d); + auto rangeAndCol_B = payload_B->getRangeAndNCols(d); + bool isDeadColumn; + bool isNoisyColumn; + + float ratio(-.1), diff(-1.); + + for (int col = 0; col < ncols; col++) { + for (int row = 0; row < nrows; row++) { + switch (theType) { + case gainCalibPI::t_gain: { + auto gainA = payload_A->getGain( + col, row, rangeAndCol_A.first, rangeAndCol_A.second, isDeadColumn, isNoisyColumn); + auto gainB = payload_B->getGain( + col, row, rangeAndCol_B.first, rangeAndCol_B.second, isDeadColumn, isNoisyColumn); + ratio = gainA / gainB; + diff = gainA - gainB; + break; + } + case gainCalibPI::t_pedestal: { + auto pedA = + payload_A->getPed(col, row, rangeAndCol_A.first, rangeAndCol_A.second, isDeadColumn, isNoisyColumn); + auto pedB = + payload_B->getPed(col, row, rangeAndCol_B.first, rangeAndCol_B.second, isDeadColumn, isNoisyColumn); + ratio = pedA / pedB; + diff = pedA - pedB; + break; + } + default: + edm::LogError("gainCalibPI::fillTheHisto") << "Unrecognized type " << theType << std::endl; + break; + } + arr[0]->Fill(ratio); + arr[1]->Fill(diff); + } // loop on rows + } // loop on cols + } // loop on detids + } + //============================================================================ // helper method to fill the gain / pedestals distributions template @@ -1093,6 +1160,188 @@ namespace gainCalibHelper { } }; + /************************************************ + Diff and Ratio histograms of 2 IOVs + *************************************************/ + template + class SiPixelGainCalibDiffAndRatioBase : public cond::payloadInspector::PlotImage { + public: + SiPixelGainCalibDiffAndRatioBase() + : cond::payloadInspector::PlotImage( + Form("SiPixelGainCalibration %s Diff and Ratio", TypeName[myType])) { + if constexpr (std::is_same_v) { + isForHLT_ = false; + } else { + isForHLT_ = true; + } + } + bool fill(const std::vector>& iovs) override { + gStyle->SetOptStat("emr"); + TGaxis::SetExponentOffset(-0.1, 0.01, "y"); // Y offset + TH1F::SetDefaultSumw2(true); + + std::vector> sorted_iovs = iovs; + // make absolute sure the IOVs are sortd by since + std::sort(begin(sorted_iovs), end(sorted_iovs), [](auto const& t1, auto const& t2) { + return std::get<0>(t1) < std::get<0>(t2); + }); + auto firstiov = sorted_iovs.front(); + auto lastiov = sorted_iovs.back(); + + std::shared_ptr last_payload = this->fetchPayload(std::get<1>(lastiov)); + std::shared_ptr first_payload = this->fetchPayload(std::get<1>(firstiov)); + + std::string lastIOVsince = std::to_string(std::get<0>(lastiov)); + std::string firstIOVsince = std::to_string(std::get<0>(firstiov)); + + float diffHigh(-9999.); + float diffLow(-9999.); + float maxRatio(-9999.); + float minRatio(-9999.); + + switch (myType) { + case gainCalibPI::t_gain: + diffHigh = first_payload->getGainHigh() - last_payload->getGainHigh(); + diffLow = first_payload->getGainLow() - last_payload->getGainLow(); + maxRatio = first_payload->getGainHigh() / last_payload->getGainHigh(); + minRatio = first_payload->getGainLow() / last_payload->getGainLow(); + break; + case gainCalibPI::t_pedestal: + diffHigh = first_payload->getPedHigh() - last_payload->getPedHigh(); + diffLow = first_payload->getPedLow() - last_payload->getPedLow(); + maxRatio = first_payload->getPedHigh() / last_payload->getPedHigh(); + minRatio = first_payload->getPedLow() / last_payload->getPedLow(); + break; + default: + edm::LogError(label_) << "Unrecognized type " << myType << std::endl; + break; + } + + auto span = std::abs(minRatio - maxRatio); + + TCanvas canvas("Canv", "Canv", 1200, 800); + canvas.Divide(2, 1); + canvas.cd(); + auto hratio = std::make_shared("h_Ratio", + Form("SiPixel Gain Calibration %s - %s;per %s %s ratio;# %ss", + (isForHLT_ ? "ForHLT" : "Offline"), + TypeName[myType], + (isForHLT_ ? "Column" : "Pixel"), + TypeName[myType], + (isForHLT_ ? "column" : "pixel")), + 200, + minRatio - span / 5., + maxRatio + span / 5.); + + auto hdiff = std::make_shared("h_Diff", + Form("SiPixel Gain Calibration %s - %s;per %s %s difference;# %ss", + (isForHLT_ ? "ForHLT" : "Offline"), + TypeName[myType], + (isForHLT_ ? "Column" : "Pixel"), + TypeName[myType], + (isForHLT_ ? "column" : "pixel")), + 200, + (diffHigh < diffLow) ? diffHigh : diffLow, + (diffHigh < diffLow) ? diffLow : diffHigh); + + SiPixelPI::adjustCanvasMargins(canvas.cd(1), 0.05, 0.12, 0.12, 0.04); + SiPixelPI::adjustCanvasMargins(canvas.cd(2), 0.05, 0.12, 0.12, 0.04); + canvas.Modified(); + + std::array, 2> array = {{hratio, hdiff}}; + gainCalibPI::fillDiffAndRatio(first_payload, last_payload, array, myType); + + canvas.cd(1)->SetLogy(); + hratio->SetTitle(""); + hratio->SetLineColor(kRed); + hratio->SetBarWidth(0.95); + hratio->Draw("hist"); + SiPixelPI::makeNicePlotStyle(hratio.get()); + hratio->SetStats(true); + + canvas.cd(2)->SetLogy(); + hdiff->SetTitle(""); + hdiff->SetFillColor(kBlue); + hdiff->SetBarWidth(0.95); + hdiff->Draw("hist"); + SiPixelPI::makeNicePlotStyle(hdiff.get()); + hdiff->SetStats(true); + + canvas.Update(); + + /* + TLegend legend = TLegend(0.45, 0.86, 0.74, 0.94); + //legend.SetHeader("#font[22]{SiPixel Offline Gain Calibration Comparison}", "C"); // option "C" allows to center the header + //legend.AddEntry(hfirst.get(), ("IOV: " + std::to_string(std::get<0>(firstiov))).c_str(), "FL"); + //legend.AddEntry(hlast.get(), ("IOV: " + std::to_string(std::get<0>(lastiov))).c_str(), "FL"); + legend.AddEntry(hfirst.get(), ("payload: #color[2]{" + std::get<1>(firstiov) + "}").c_str(), "F"); + legend.AddEntry(hlast.get(), ("payload: #color[4]{" + std::get<1>(lastiov) + "}").c_str(), "F"); + legend.SetTextSize(0.022); + legend.SetLineColor(10); + legend.Draw("same"); + */ + + TPaveStats* st1 = (TPaveStats*)hratio->FindObject("stats"); + st1->SetTextSize(0.022); + st1->SetLineColor(kRed); + st1->SetTextColor(kRed); + SiPixelPI::adjustStats(st1, 0.13, 0.84, 0.31, 0.94); + + TPaveStats* st2 = (TPaveStats*)hdiff->FindObject("stats"); + st2->SetTextSize(0.022); + st2->SetLineColor(kBlue); + st2->SetTextColor(kBlue); + SiPixelPI::adjustStats(st2, 0.13, 0.84, 0.31, 0.94); + + auto ltx = TLatex(); + ltx.SetTextFont(62); + //ltx.SetTextColor(kBlue); + ltx.SetTextSize(0.040); + ltx.SetTextAlign(11); + canvas.cd(1); + ltx.DrawLatexNDC(gPad->GetLeftMargin(), + 1 - gPad->GetTopMargin() + 0.01, + ("SiPixel Gain Calib. Ratio IOV " + std::to_string(std::get<0>(firstiov)) + " / IOV " + + std::to_string(std::get<0>(lastiov))) + .c_str()); + + canvas.cd(2); + ltx.DrawLatexNDC(gPad->GetLeftMargin(), + 1 - gPad->GetTopMargin() + 0.01, + ("SiPixel Gain Calib. Diff IOV " + std::to_string(std::get<0>(firstiov)) + " - IOV " + + std::to_string(std::get<0>(lastiov))) + .c_str()); + + std::string fileName(this->m_imageFileName); + canvas.SaveAs(fileName.c_str()); +#ifdef MMDEBUG + canvas.SaveAs("out.root"); +#endif + + return true; + } + + protected: + bool isForHLT_; + std::string label_; + }; + + template + class SiPixelGainCalibDiffAndRatioSingleTag : public SiPixelGainCalibDiffAndRatioBase { + public: + SiPixelGainCalibDiffAndRatioSingleTag() : SiPixelGainCalibDiffAndRatioBase() { + this->setSingleIov(false); + } + }; + + template + class SiPixelGainCalibDiffAndRatioTwoTags : public SiPixelGainCalibDiffAndRatioBase { + public: + SiPixelGainCalibDiffAndRatioTwoTags() : SiPixelGainCalibDiffAndRatioBase() { + this->setTwoTags(true); + } + }; + // 2D MAPS /************************************************ diff --git a/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc b/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc index e522ae5caa42f..3b1667d05f2d0 100644 --- a/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc +++ b/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc @@ -144,6 +144,13 @@ namespace { cond::payloadInspector::SINGLE_IOV, 2>; + using SiPixelGainCalibForHLTGainDiffRatioTwoTags = + gainCalibHelper::SiPixelGainCalibDiffAndRatioTwoTags; + using SiPixelGainCalibForHLTPedestalDiffRatioTwoTags = + gainCalibHelper::SiPixelGainCalibDiffAndRatioTwoTags; + } // namespace PAYLOAD_INSPECTOR_MODULE(SiPixelGainCalibrationForHLT) { @@ -176,4 +183,6 @@ PAYLOAD_INSPECTOR_MODULE(SiPixelGainCalibrationForHLT) { PAYLOAD_INSPECTOR_CLASS(SiPixelGainCalibForHLTPedestalByRegionComparisonSingleTag); PAYLOAD_INSPECTOR_CLASS(SiPixelGainCalibForHLTGainByRegionComparisonTwoTags); PAYLOAD_INSPECTOR_CLASS(SiPixelGainCalibForHLTPedestalByRegionComparisonTwoTags); + PAYLOAD_INSPECTOR_CLASS(SiPixelGainCalibForHLTGainDiffRatioTwoTags); + PAYLOAD_INSPECTOR_CLASS(SiPixelGainCalibForHLTPedestalDiffRatioTwoTags); } diff --git a/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationOffline_PayloadInspector.cc b/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationOffline_PayloadInspector.cc index 97737baa4b63a..982c93dad140f 100644 --- a/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationOffline_PayloadInspector.cc +++ b/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationOffline_PayloadInspector.cc @@ -145,6 +145,14 @@ namespace { SiPixelGainCalibrationOffline, cond::payloadInspector::SINGLE_IOV, 2>; + + using SiPixelGainCalibOfflineGainDiffRatioTwoTags = + gainCalibHelper::SiPixelGainCalibDiffAndRatioTwoTags; + using SiPixelGainCalibOfflinePedestalDiffRatioTwoTags = + gainCalibHelper::SiPixelGainCalibDiffAndRatioTwoTags; + } // namespace PAYLOAD_INSPECTOR_MODULE(SiPixelGainCalibrationOffline) { @@ -177,4 +185,6 @@ PAYLOAD_INSPECTOR_MODULE(SiPixelGainCalibrationOffline) { PAYLOAD_INSPECTOR_CLASS(SiPixelGainCalibOfflinePedestalByRegionComparisonSingleTag); PAYLOAD_INSPECTOR_CLASS(SiPixelGainCalibOfflineGainByRegionComparisonTwoTags); PAYLOAD_INSPECTOR_CLASS(SiPixelGainCalibOfflinePedestalByRegionComparisonTwoTags); + PAYLOAD_INSPECTOR_CLASS(SiPixelGainCalibOfflineGainDiffRatioTwoTags); + PAYLOAD_INSPECTOR_CLASS(SiPixelGainCalibOfflinePedestalDiffRatioTwoTags); } diff --git a/CondCore/SiPixelPlugins/test/SiPixelGainCalibrationComparator_DB.sh b/CondCore/SiPixelPlugins/test/SiPixelGainCalibrationComparator_DB.sh new file mode 100755 index 0000000000000..10ea2d76b2faa --- /dev/null +++ b/CondCore/SiPixelPlugins/test/SiPixelGainCalibrationComparator_DB.sh @@ -0,0 +1,83 @@ +#!/bin/bash +# Save current working dir so img can be outputted there later +W_DIR=$(pwd); +# Set SCRAM architecture var +SCRAM_ARCH=slc6_amd64_gcc630; +export SCRAM_ARCH; +source /afs/cern.ch/cms/cmsset_default.sh; +eval `scram run -sh`; +# Go back to original working directory +cd $W_DIR; +# Run get payload data script + +rm *.png +mkdir $W_DIR/results_HLT +mkdir $W_DIR/results_Offline + +declare -a arr=("2" "112110" "112245" "117680" "129282" "188059" "189210" "199755" "205566" "233749" "237545" "256491" "268129" "278869" "290543" "294582" "295077" "298756" "303659" "312203" "313800" "320377" "322634" "323893" "326851") + +for i in "${arr[@]}" +do + echo -e "\n dealing with IOV: "$i"\n" + + getPayloadData.py \ + --plugin pluginSiPixelGainCalibrationForHLT_PayloadInspector \ + --plot plot_SiPixelGainCalibForHLTGainDiffRatioTwoTags \ + --tag SiPixelGainCalibrationHLT_2009runs_hlt \ + --tagtwo SiPixelGainCalibrationHLT_2009runs_ScaledForVCal_hlt \ + --time_type Run \ + --iovs '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --iovstwo '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --db Prod \ + --test; + + mv *.png $W_DIR/results_HLT/GainsDiffRatio_${i}.png + + getPayloadData.py \ + --plugin pluginSiPixelGainCalibrationForHLT_PayloadInspector \ + --plot plot_SiPixelGainCalibForHLTPedestalDiffRatioTwoTags \ + --tag SiPixelGainCalibrationHLT_2009runs_hlt \ + --tagtwo SiPixelGainCalibrationHLT_2009runs_ScaledForVCal_hlt \ + --time_type Run \ + --iovs '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --iovstwo '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --db Prod \ + --test; + + mv *.png $W_DIR/results_HLT/PedestalsDiffRatio_${i}.png + +done + +declare -a arr2=("1" "112110" "112245" "117680" "129282" "188059" "189210" "199755" "205566" "233749" "237545" "256491" "268129" "278869" "290550" "294582" "295077" "298647" "303659" "312203" "313800" "320377" "322634" "323893" "326851") + +for i in "${arr2[@]}" +do + echo -e "\n dealing with IOV: "$i"\n" + + getPayloadData.py \ + --plugin pluginSiPixelGainCalibrationOffline_PayloadInspector \ + --plot plot_SiPixelGainCalibOfflineGainDiffRatioTwoTags \ + --tag SiPixelGainCalibration_2009runs_hlt \ + --tagtwo SiPixelGainCalibration_2009runs_ScaledForVCal_hlt \ + --time_type Run \ + --iovs '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --iovstwo '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --db Prod \ + --test; + + mv *.png $W_DIR/results_Offline/GainsDiffRatio_${i}.png + + getPayloadData.py \ + --plugin pluginSiPixelGainCalibrationOffline_PayloadInspector \ + --plot plot_SiPixelGainCalibOfflinePedestalDiffRatioTwoTags \ + --tag SiPixelGainCalibration_2009runs_hlt \ + --tagtwo SiPixelGainCalibration_2009runs_ScaledForVCal_hlt \ + --time_type Run \ + --iovs '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --iovstwo '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --db Prod \ + --test; + + mv *.png $W_DIR/results_Offline/PedestalsDiffRatio_${i}.png + +done diff --git a/CondCore/SiPixelPlugins/test/testSiPixelGainCalibrationForHLT.sh b/CondCore/SiPixelPlugins/test/testSiPixelGainCalibrationForHLT.sh index fe6761067ca7e..9add35686d19b 100755 --- a/CondCore/SiPixelPlugins/test/testSiPixelGainCalibrationForHLT.sh +++ b/CondCore/SiPixelPlugins/test/testSiPixelGainCalibrationForHLT.sh @@ -225,3 +225,32 @@ getPayloadData.py \ --test ; mv *.png $W_DIR/plots_GainCalibForHLT/SingleTagGainsPedestalsCorrelations.png + +## diff and ratio + +getPayloadData.py \ + --plugin pluginSiPixelGainCalibrationForHLT_PayloadInspector \ + --plot plot_SiPixelGainCalibForHLTGainDiffRatioTwoTags \ + --tagtwo SiPixelGainCalibrationHLT_2009runs_hlt \ + --tag SiPixelGainCalibrationHLT_2009runs_ScaledForVCal_hlt \ + --time_type Run \ + --iovs '{"start_iov": "310000", "end_iov": "310000"}' \ + --iovstwo '{"start_iov": "310000", "end_iov": "310000"}' \ + --db Prod \ + --test ; + +mv *.png $W_DIR/plots_GainCalibForHLT/DiffAndRatio.png + +## diff and ratio reverse +getPayloadData.py \ + --plugin pluginSiPixelGainCalibrationForHLT_PayloadInspector \ + --plot plot_SiPixelGainCalibForHLTGainDiffRatioTwoTags \ + --tagtwo SiPixelGainCalibrationHLT_2009runs_ScaledForVCal_hlt \ + --tag SiPixelGainCalibrationHLT_2009runs_hlt \ + --time_type Run \ + --iovs '{"start_iov": "310000", "end_iov": "310000"}' \ + --iovstwo '{"start_iov": "310000", "end_iov": "310000"}' \ + --db Prod \ + --test ; + +mv *.png $W_DIR/plots_GainCalibForHLT/DiffAndRatio_reverse.png From e6e3565821e4e79aa01c29632afef2396efb504d Mon Sep 17 00:00:00 2001 From: mmusich Date: Tue, 25 Aug 2020 17:14:49 +0200 Subject: [PATCH 2/5] gains diff and ratio WIP --- .../interface/SiPixelGainCalibHelper.h | 112 +++++++------ ...lGainCalibrationForHLT_PayloadInspector.cc | 147 ++++++++--------- ...GainCalibrationOffline_PayloadInspector.cc | 151 +++++++++--------- .../SiPixelGainCalibrationComparator_DB.sh | 87 ++++++++-- 4 files changed, 280 insertions(+), 217 deletions(-) diff --git a/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h b/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h index 8958ab899184e..d2b1706d3b875 100644 --- a/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h +++ b/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h @@ -15,6 +15,7 @@ #include #include #include +#include // include ROOT #include "TH2F.h" @@ -1163,30 +1164,43 @@ namespace gainCalibHelper { /************************************************ Diff and Ratio histograms of 2 IOVs *************************************************/ - template - class SiPixelGainCalibDiffAndRatioBase : public cond::payloadInspector::PlotImage { + template + class SiPixelGainCalibDiffAndRatioBase : public cond::payloadInspector::PlotImage { public: SiPixelGainCalibDiffAndRatioBase() - : cond::payloadInspector::PlotImage( - Form("SiPixelGainCalibration %s Diff and Ratio", TypeName[myType])) { + : cond::payloadInspector::PlotImage( + Form("SiPixelGainCalibration %s Diff and Ratio %i tag(s)", TypeName[myType], ntags)) { if constexpr (std::is_same_v) { isForHLT_ = false; } else { isForHLT_ = true; } } - bool fill(const std::vector>& iovs) override { + + bool fill() override { gStyle->SetOptStat("emr"); TGaxis::SetExponentOffset(-0.1, 0.01, "y"); // Y offset TH1F::SetDefaultSumw2(true); - std::vector> sorted_iovs = iovs; - // make absolute sure the IOVs are sortd by since - std::sort(begin(sorted_iovs), end(sorted_iovs), [](auto const& t1, auto const& t2) { - return std::get<0>(t1) < std::get<0>(t2); - }); - auto firstiov = sorted_iovs.front(); - auto lastiov = sorted_iovs.back(); + COUT << "ntags: " << ntags << " this->m_plotAnnotations.ntags: " << this->m_plotAnnotations.ntags << std::endl; + + // trick to deal with the multi-ioved tag and two tag case at the same time + auto theIOVs = cond::payloadInspector::PlotBase::getTag<0>().iovs; + auto tagname1 = cond::payloadInspector::PlotBase::getTag<0>().name; + std::string tagname2 = ""; + auto firstiov = theIOVs.front(); + std::tuple lastiov; + + // we don't support (yet) comparison with more than 2 tags + assert(this->m_plotAnnotations.ntags < 3); + + if (this->m_plotAnnotations.ntags == 2) { + auto tag2iovs = cond::payloadInspector::PlotBase::getTag<1>().iovs; + tagname2 = cond::payloadInspector::PlotBase::getTag<1>().name; + lastiov = tag2iovs.front(); + } else { + lastiov = theIOVs.back(); + } std::shared_ptr last_payload = this->fetchPayload(std::get<1>(lastiov)); std::shared_ptr first_payload = this->fetchPayload(std::get<1>(firstiov)); @@ -1217,9 +1231,9 @@ namespace gainCalibHelper { break; } - auto span = std::abs(minRatio - maxRatio); + auto span = std::abs(maxRatio - minRatio); - TCanvas canvas("Canv", "Canv", 1200, 800); + TCanvas canvas("Canv", "Canv", 1300, 800); canvas.Divide(2, 1); canvas.cd(); auto hratio = std::make_shared("h_Ratio", @@ -1229,9 +1243,9 @@ namespace gainCalibHelper { (isForHLT_ ? "Column" : "Pixel"), TypeName[myType], (isForHLT_ ? "column" : "pixel")), - 200, - minRatio - span / 5., - maxRatio + span / 5.); + 50, + minRatio - span / 4., + maxRatio + span / 4.); auto hdiff = std::make_shared("h_Diff", Form("SiPixel Gain Calibration %s - %s;per %s %s difference;# %ss", @@ -1240,7 +1254,7 @@ namespace gainCalibHelper { (isForHLT_ ? "Column" : "Pixel"), TypeName[myType], (isForHLT_ ? "column" : "pixel")), - 200, + 50, (diffHigh < diffLow) ? diffHigh : diffLow, (diffHigh < diffLow) ? diffLow : diffHigh); @@ -1253,45 +1267,61 @@ namespace gainCalibHelper { canvas.cd(1)->SetLogy(); hratio->SetTitle(""); - hratio->SetLineColor(kRed); + hratio->SetLineColor(kBlack); + hratio->SetFillColor(kRed); hratio->SetBarWidth(0.95); - hratio->Draw("hist"); + hratio->SetMaximum(hratio->GetMaximum() * 10); + hratio->Draw("bar"); SiPixelPI::makeNicePlotStyle(hratio.get()); hratio->SetStats(true); canvas.cd(2)->SetLogy(); hdiff->SetTitle(""); + hdiff->SetLineColor(kBlack); hdiff->SetFillColor(kBlue); hdiff->SetBarWidth(0.95); - hdiff->Draw("hist"); + hdiff->SetMaximum(hdiff->GetMaximum() * 10); + hdiff->Draw("bar"); SiPixelPI::makeNicePlotStyle(hdiff.get()); hdiff->SetStats(true); canvas.Update(); - /* + canvas.cd(1); TLegend legend = TLegend(0.45, 0.86, 0.74, 0.94); - //legend.SetHeader("#font[22]{SiPixel Offline Gain Calibration Comparison}", "C"); // option "C" allows to center the header - //legend.AddEntry(hfirst.get(), ("IOV: " + std::to_string(std::get<0>(firstiov))).c_str(), "FL"); - //legend.AddEntry(hlast.get(), ("IOV: " + std::to_string(std::get<0>(lastiov))).c_str(), "FL"); - legend.AddEntry(hfirst.get(), ("payload: #color[2]{" + std::get<1>(firstiov) + "}").c_str(), "F"); - legend.AddEntry(hlast.get(), ("payload: #color[4]{" + std::get<1>(lastiov) + "}").c_str(), "F"); - legend.SetTextSize(0.022); + legend.SetHeader(fmt::sprintf("#font[22]{SiPixel %s Gain Calibration Ratio}",(isForHLT_ ? "ForHLT" : "Offline")).c_str(),"C"); + if (this->m_plotAnnotations.ntags == 2) { + legend.AddEntry(hratio.get(), ("#splitline{" + tagname1 + "}{ /" + tagname2 +"}").c_str(), "F"); + } else { + legend.AddEntry(hratio.get(), ( firstIOVsince + " / " + lastIOVsince).c_str(), "F"); + } + legend.SetTextSize(0.025); legend.SetLineColor(10); legend.Draw("same"); - */ + + canvas.cd(2); + TLegend legend2 = TLegend(0.45, 0.86, 0.74, 0.94); + legend2.SetHeader(fmt::sprintf("#font[22]{SiPixel %s Gain Calibration #Delta}",(isForHLT_ ? "ForHLT" : "Offline")).c_str(),"C"); + if (this->m_plotAnnotations.ntags == 2) { + legend2.AddEntry(hdiff.get(), ("#splitline{" + tagname1 + "}{-" + tagname2 +"}").c_str(), "F"); + } else { + legend2.AddEntry(hdiff.get(), (firstIOVsince + " - " + lastIOVsince).c_str(), "F"); + } + legend2.SetTextSize(0.025); + legend2.SetLineColor(10); + legend2.Draw("same"); TPaveStats* st1 = (TPaveStats*)hratio->FindObject("stats"); - st1->SetTextSize(0.022); + st1->SetTextSize(0.03); st1->SetLineColor(kRed); st1->SetTextColor(kRed); - SiPixelPI::adjustStats(st1, 0.13, 0.84, 0.31, 0.94); + SiPixelPI::adjustStats(st1, 0.13, 0.84, 0.41, 0.94); TPaveStats* st2 = (TPaveStats*)hdiff->FindObject("stats"); - st2->SetTextSize(0.022); + st2->SetTextSize(0.03); st2->SetLineColor(kBlue); st2->SetTextColor(kBlue); - SiPixelPI::adjustStats(st2, 0.13, 0.84, 0.31, 0.94); + SiPixelPI::adjustStats(st2, 0.13, 0.84, 0.41, 0.94); auto ltx = TLatex(); ltx.SetTextFont(62); @@ -1326,22 +1356,6 @@ namespace gainCalibHelper { std::string label_; }; - template - class SiPixelGainCalibDiffAndRatioSingleTag : public SiPixelGainCalibDiffAndRatioBase { - public: - SiPixelGainCalibDiffAndRatioSingleTag() : SiPixelGainCalibDiffAndRatioBase() { - this->setSingleIov(false); - } - }; - - template - class SiPixelGainCalibDiffAndRatioTwoTags : public SiPixelGainCalibDiffAndRatioBase { - public: - SiPixelGainCalibDiffAndRatioTwoTags() : SiPixelGainCalibDiffAndRatioBase() { - this->setTwoTags(true); - } - }; - // 2D MAPS /************************************************ diff --git a/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc b/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc index 3b1667d05f2d0..3cf5da93205f7 100644 --- a/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc +++ b/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc @@ -10,117 +10,105 @@ namespace { + using namespace gainCalibHelper; + using SiPixelGainCalibrationForHLTGainsValues = - gainCalibHelper::SiPixelGainCalibrationValues; + SiPixelGainCalibrationValues; using SiPixelGainCalibrationForHLTPedestalsValues = - gainCalibHelper::SiPixelGainCalibrationValues; + SiPixelGainCalibrationValues; - using SiPixelGainCalibrationForHLTGainsValuesBarrel = gainCalibHelper:: - SiPixelGainCalibrationValuesPerRegion; - using SiPixelGainCalibrationForHLTGainsValuesEndcap = gainCalibHelper:: - SiPixelGainCalibrationValuesPerRegion; + using SiPixelGainCalibrationForHLTGainsValuesBarrel = + SiPixelGainCalibrationValuesPerRegion; + using SiPixelGainCalibrationForHLTGainsValuesEndcap = + SiPixelGainCalibrationValuesPerRegion; using SiPixelGainCalibrationForHLTPedestalsValuesBarrel = - gainCalibHelper::SiPixelGainCalibrationValuesPerRegion; + SiPixelGainCalibrationValuesPerRegion; using SiPixelGainCalibrationForHLTPedestalsValuesEndcap = - gainCalibHelper::SiPixelGainCalibrationValuesPerRegion; + SiPixelGainCalibrationValuesPerRegion; - using SiPixelGainCalibrationForHLTCorrelations = - gainCalibHelper::SiPixelGainCalibrationCorrelations; + using SiPixelGainCalibrationForHLTCorrelations = SiPixelGainCalibrationCorrelations; using SiPixelGainCalibrationForHLTGainsByPart = - gainCalibHelper::SiPixelGainCalibrationValuesByPart; + SiPixelGainCalibrationValuesByPart; using SiPixelGainCalibrationForHLTPedestalsByPart = - gainCalibHelper::SiPixelGainCalibrationValuesByPart; + SiPixelGainCalibrationValuesByPart; using SiPixelGainCalibForHLTGainComparisonSingleTag = - gainCalibHelper::SiPixelGainCalibrationValueComparisonSingleTag; + SiPixelGainCalibrationValueComparisonSingleTag; using SiPixelGainCalibForHLTPedestalComparisonSingleTag = - gainCalibHelper::SiPixelGainCalibrationValueComparisonSingleTag; + SiPixelGainCalibrationValueComparisonSingleTag; using SiPixelGainCalibForHLTGainComparisonTwoTags = - gainCalibHelper::SiPixelGainCalibrationValueComparisonTwoTags; + SiPixelGainCalibrationValueComparisonTwoTags; using SiPixelGainCalibForHLTPedestalComparisonTwoTags = - gainCalibHelper::SiPixelGainCalibrationValueComparisonTwoTags; + SiPixelGainCalibrationValueComparisonTwoTags; using SiPixelGainCalibForHLTGainComparisonBarrelSingleTag = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibForHLTPedestalComparisonBarrelSingleTag = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibForHLTGainComparisonBarrelTwoTags = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibForHLTPedestalComparisonBarrelTwoTags = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibForHLTGainComparisonEndcapSingleTag = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibForHLTPedestalComparisonEndcapSingleTag = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibForHLTGainComparisonEndcapTwoTags = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibForHLTPedestalComparisonEndcapTwoTags = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibForHLTGainsBPIXMap = - gainCalibHelper::SiPixelGainCalibrationBPIXMap; + SiPixelGainCalibrationBPIXMap; using SiPixelGainCalibForHLTPedestalsBPIXMap = - gainCalibHelper::SiPixelGainCalibrationBPIXMap; + SiPixelGainCalibrationBPIXMap; using SiPixelGainCalibForHLTGainsFPIXMap = - gainCalibHelper::SiPixelGainCalibrationFPIXMap; + SiPixelGainCalibrationFPIXMap; using SiPixelGainCalibForHLTPedestalsFPIXMap = - gainCalibHelper::SiPixelGainCalibrationFPIXMap; + SiPixelGainCalibrationFPIXMap; using SiPixelGainCalibForHLTGainByRegionComparisonSingleTag = gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibForHLTGainDiffRatioTwoTags = - gainCalibHelper::SiPixelGainCalibDiffAndRatioTwoTags; + SiPixelGainCalibDiffAndRatioBase; + using SiPixelGainCalibForHLTPedestalDiffRatioTwoTags = - gainCalibHelper::SiPixelGainCalibDiffAndRatioTwoTags; + SiPixelGainCalibDiffAndRatioBase; } // namespace diff --git a/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationOffline_PayloadInspector.cc b/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationOffline_PayloadInspector.cc index 982c93dad140f..162a77934bfdd 100644 --- a/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationOffline_PayloadInspector.cc +++ b/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationOffline_PayloadInspector.cc @@ -10,119 +10,107 @@ namespace { + using namespace gainCalibHelper; + using SiPixelGainCalibrationOfflineGainsValues = - gainCalibHelper::SiPixelGainCalibrationValues; + SiPixelGainCalibrationValues; using SiPixelGainCalibrationOfflinePedestalsValues = - gainCalibHelper::SiPixelGainCalibrationValues; + SiPixelGainCalibrationValues; - using SiPixelGainCalibrationOfflineGainsValuesBarrel = gainCalibHelper:: - SiPixelGainCalibrationValuesPerRegion; - using SiPixelGainCalibrationOfflineGainsValuesEndcap = gainCalibHelper:: - SiPixelGainCalibrationValuesPerRegion; + using SiPixelGainCalibrationOfflineGainsValuesBarrel = + SiPixelGainCalibrationValuesPerRegion; + using SiPixelGainCalibrationOfflineGainsValuesEndcap = + SiPixelGainCalibrationValuesPerRegion; using SiPixelGainCalibrationOfflinePedestalsValuesBarrel = - gainCalibHelper::SiPixelGainCalibrationValuesPerRegion; + SiPixelGainCalibrationValuesPerRegion; using SiPixelGainCalibrationOfflinePedestalsValuesEndcap = - gainCalibHelper::SiPixelGainCalibrationValuesPerRegion; + SiPixelGainCalibrationValuesPerRegion; - using SiPixelGainCalibrationOfflineCorrelations = - gainCalibHelper::SiPixelGainCalibrationCorrelations; + using SiPixelGainCalibrationOfflineCorrelations = SiPixelGainCalibrationCorrelations; using SiPixelGainCalibrationOfflineGainsByPart = - gainCalibHelper::SiPixelGainCalibrationValuesByPart; + SiPixelGainCalibrationValuesByPart; using SiPixelGainCalibrationOfflinePedestalsByPart = - gainCalibHelper::SiPixelGainCalibrationValuesByPart; + SiPixelGainCalibrationValuesByPart; using SiPixelGainCalibOfflineGainComparisonSingleTag = - gainCalibHelper::SiPixelGainCalibrationValueComparisonSingleTag; + SiPixelGainCalibrationValueComparisonSingleTag; using SiPixelGainCalibOfflinePedestalComparisonSingleTag = - gainCalibHelper::SiPixelGainCalibrationValueComparisonSingleTag; + SiPixelGainCalibrationValueComparisonSingleTag; using SiPixelGainCalibOfflineGainComparisonTwoTags = - gainCalibHelper::SiPixelGainCalibrationValueComparisonTwoTags; + SiPixelGainCalibrationValueComparisonTwoTags; using SiPixelGainCalibOfflinePedestalComparisonTwoTags = - gainCalibHelper::SiPixelGainCalibrationValueComparisonTwoTags; + SiPixelGainCalibrationValueComparisonTwoTags; using SiPixelGainCalibOfflineGainComparisonBarrelSingleTag = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibOfflinePedestalComparisonBarrelSingleTag = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibOfflineGainComparisonBarrelTwoTags = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibOfflinePedestalComparisonBarrelTwoTags = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibOfflineGainComparisonEndcapSingleTag = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibOfflinePedestalComparisonEndcapSingleTag = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibOfflineGainComparisonEndcapTwoTags = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibOfflinePedestalComparisonEndcapTwoTags = - gainCalibHelper::SiPixelGainCalibrationValuesComparisonPerRegion; + SiPixelGainCalibrationValuesComparisonPerRegion; using SiPixelGainCalibOfflineGainsBPIXMap = - gainCalibHelper::SiPixelGainCalibrationBPIXMap; + SiPixelGainCalibrationBPIXMap; + using SiPixelGainCalibOfflinePedestalsBPIXMap = - gainCalibHelper::SiPixelGainCalibrationBPIXMap; + SiPixelGainCalibrationBPIXMap; using SiPixelGainCalibOfflineGainsFPIXMap = - gainCalibHelper::SiPixelGainCalibrationFPIXMap; + SiPixelGainCalibrationFPIXMap; + using SiPixelGainCalibOfflinePedestalsFPIXMap = - gainCalibHelper::SiPixelGainCalibrationFPIXMap; + SiPixelGainCalibrationFPIXMap; using SiPixelGainCalibOfflineGainByRegionComparisonSingleTag = gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibOfflineGainDiffRatioTwoTags = - gainCalibHelper::SiPixelGainCalibDiffAndRatioTwoTags; + SiPixelGainCalibDiffAndRatioBase; + using SiPixelGainCalibOfflinePedestalDiffRatioTwoTags = - gainCalibHelper::SiPixelGainCalibDiffAndRatioTwoTags; + SiPixelGainCalibDiffAndRatioBase; } // namespace diff --git a/CondCore/SiPixelPlugins/test/SiPixelGainCalibrationComparator_DB.sh b/CondCore/SiPixelPlugins/test/SiPixelGainCalibrationComparator_DB.sh index 10ea2d76b2faa..ba4c38f79a80a 100755 --- a/CondCore/SiPixelPlugins/test/SiPixelGainCalibrationComparator_DB.sh +++ b/CondCore/SiPixelPlugins/test/SiPixelGainCalibrationComparator_DB.sh @@ -9,22 +9,32 @@ eval `scram run -sh`; # Go back to original working directory cd $W_DIR; # Run get payload data script +if [ -f *.png ]; then + rm *.png +fi -rm *.png +if [ -d $W_DIR/results_HLT ]; then + rm -fr $W_DIR/results_HLT +fi mkdir $W_DIR/results_HLT + +if [ -d $W_DIR/results_Offline ]; then + rm -fr $W_DIR/results_Offline +fi + mkdir $W_DIR/results_Offline -declare -a arr=("2" "112110" "112245" "117680" "129282" "188059" "189210" "199755" "205566" "233749" "237545" "256491" "268129" "278869" "290543" "294582" "295077" "298756" "303659" "312203" "313800" "320377" "322634" "323893" "326851") +declare -a arr=("1" "112110" "112245" "117680" "129282" "188059" "189210" "199755" "205566" "233749" "237545" "256491" "268129" "278869" "290543" "294582" "295077" "298756" "303659" "312203" "313800" "320377" "322634" "323893" "326851") for i in "${arr[@]}" do - echo -e "\n dealing with IOV: "$i"\n" + echo -e "\n\n dealing with IOV: "$i"\n" getPayloadData.py \ --plugin pluginSiPixelGainCalibrationForHLT_PayloadInspector \ --plot plot_SiPixelGainCalibForHLTGainDiffRatioTwoTags \ - --tag SiPixelGainCalibrationHLT_2009runs_hlt \ - --tagtwo SiPixelGainCalibrationHLT_2009runs_ScaledForVCal_hlt \ + --tagtwo SiPixelGainCalibrationHLT_2009runs_hlt \ + --tag SiPixelGainCalibrationHLT_2009runs_ScaledForVCal_hlt \ --time_type Run \ --iovs '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ --iovstwo '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ @@ -36,8 +46,8 @@ do getPayloadData.py \ --plugin pluginSiPixelGainCalibrationForHLT_PayloadInspector \ --plot plot_SiPixelGainCalibForHLTPedestalDiffRatioTwoTags \ - --tag SiPixelGainCalibrationHLT_2009runs_hlt \ - --tagtwo SiPixelGainCalibrationHLT_2009runs_ScaledForVCal_hlt \ + --tagtwo SiPixelGainCalibrationHLT_2009runs_hlt \ + --tag SiPixelGainCalibrationHLT_2009runs_ScaledForVCal_hlt \ --time_type Run \ --iovs '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ --iovstwo '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ @@ -46,19 +56,45 @@ do mv *.png $W_DIR/results_HLT/PedestalsDiffRatio_${i}.png + getPayloadData.py \ + --plugin pluginSiPixelGainCalibrationForHLT_PayloadInspector \ + --plot plot_SiPixelGainCalibForHLTGainComparisonTwoTags \ + --tagtwo SiPixelGainCalibrationHLT_2009runs_hlt \ + --tag SiPixelGainCalibrationHLT_2009runs_ScaledForVCal_hlt \ + --time_type Run \ + --iovs '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --iovstwo '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --db Prod \ + --test; + + mv *.png $W_DIR/results_HLT/GainsComparison_${i}.png + + getPayloadData.py \ + --plugin pluginSiPixelGainCalibrationForHLT_PayloadInspector \ + --plot plot_SiPixelGainCalibForHLTPedestalComparisonTwoTags \ + --tagtwo SiPixelGainCalibrationHLT_2009runs_hlt \ + --tag SiPixelGainCalibrationHLT_2009runs_ScaledForVCal_hlt \ + --time_type Run \ + --iovs '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --iovstwo '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --db Prod \ + --test; + + mv *.png $W_DIR/results_HLT/PedestalsComparison_${i}.png + done declare -a arr2=("1" "112110" "112245" "117680" "129282" "188059" "189210" "199755" "205566" "233749" "237545" "256491" "268129" "278869" "290550" "294582" "295077" "298647" "303659" "312203" "313800" "320377" "322634" "323893" "326851") for i in "${arr2[@]}" do - echo -e "\n dealing with IOV: "$i"\n" + echo -e "\n\n dealing with IOV: "$i"\n" getPayloadData.py \ --plugin pluginSiPixelGainCalibrationOffline_PayloadInspector \ --plot plot_SiPixelGainCalibOfflineGainDiffRatioTwoTags \ - --tag SiPixelGainCalibration_2009runs_hlt \ - --tagtwo SiPixelGainCalibration_2009runs_ScaledForVCal_hlt \ + --tagtwo SiPixelGainCalibration_2009runs_hlt \ + --tag SiPixelGainCalibration_2009runs_ScaledForVCal_hlt \ --time_type Run \ --iovs '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ --iovstwo '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ @@ -70,8 +106,8 @@ do getPayloadData.py \ --plugin pluginSiPixelGainCalibrationOffline_PayloadInspector \ --plot plot_SiPixelGainCalibOfflinePedestalDiffRatioTwoTags \ - --tag SiPixelGainCalibration_2009runs_hlt \ - --tagtwo SiPixelGainCalibration_2009runs_ScaledForVCal_hlt \ + --tagtwo SiPixelGainCalibration_2009runs_hlt \ + --tag SiPixelGainCalibration_2009runs_ScaledForVCal_hlt \ --time_type Run \ --iovs '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ --iovstwo '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ @@ -80,4 +116,31 @@ do mv *.png $W_DIR/results_Offline/PedestalsDiffRatio_${i}.png + + getPayloadData.py \ + --plugin pluginSiPixelGainCalibrationOffline_PayloadInspector \ + --plot plot_SiPixelGainCalibOfflineGainComparisonTwoTags \ + --tagtwo SiPixelGainCalibration_2009runs_hlt \ + --tag SiPixelGainCalibration_2009runs_ScaledForVCal_hlt \ + --time_type Run \ + --iovs '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --iovstwo '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --db Prod \ + --test; + + mv *.png $W_DIR/results_Offline/GainsComparison_${i}.png + + getPayloadData.py \ + --plugin pluginSiPixelGainCalibrationOffline_PayloadInspector \ + --plot plot_SiPixelGainCalibOfflinePedestalComparisonTwoTags \ + --tagtwo SiPixelGainCalibration_2009runs_hlt \ + --tag SiPixelGainCalibration_2009runs_ScaledForVCal_hlt \ + --time_type Run \ + --iovs '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --iovstwo '{"start_iov": "'$i'", "end_iov": "'$i'"}' \ + --db Prod \ + --test; + + mv *.png $W_DIR/results_Offline/PedestalsComparison_${i}.png + done From 17f2144a9c81549d26b508dd0197bc5d4d3f874e Mon Sep 17 00:00:00 2001 From: mmusich Date: Wed, 26 Aug 2020 16:47:21 +0200 Subject: [PATCH 3/5] gains diff and ratio WIP --- .../interface/SiPixelGainCalibHelper.h | 74 +++++++++++-------- 1 file changed, 45 insertions(+), 29 deletions(-) diff --git a/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h b/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h index d2b1706d3b875..e33dfeb5c8e1d 100644 --- a/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h +++ b/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h @@ -43,7 +43,7 @@ namespace gainCalibHelper { static void fillDiffAndRatio(const std::shared_ptr& payload_A, const std::shared_ptr& payload_B, std::array, 2> arr, - gainCalibPI::type theType) { + const gainCalibPI::type& theType) { std::vector detids_A; payload_A->getDetIds(detids_A); std::vector detids_B; @@ -1213,18 +1213,28 @@ namespace gainCalibHelper { float maxRatio(-9999.); float minRatio(-9999.); + float f_gHi = first_payload->getGainHigh(); + float f_gLo = first_payload->getGainLow(); + float f_pHi = first_payload->getPedHigh(); + float f_pLo = first_payload->getPedLow(); + + float l_gHi = last_payload->getGainHigh(); + float l_gLo = last_payload->getGainLow(); + float l_pHi = last_payload->getPedHigh(); + float l_pLo = last_payload->getPedLow(); + switch (myType) { case gainCalibPI::t_gain: - diffHigh = first_payload->getGainHigh() - last_payload->getGainHigh(); - diffLow = first_payload->getGainLow() - last_payload->getGainLow(); - maxRatio = first_payload->getGainHigh() / last_payload->getGainHigh(); - minRatio = first_payload->getGainLow() / last_payload->getGainLow(); + diffHigh = f_gHi - l_gHi; + diffLow = f_gLo - l_gLo; + maxRatio = l_gHi != 0 ? f_gHi / l_gHi : 0.; + minRatio = l_gLo != 0 ? f_gLo / l_gLo : 0.; break; case gainCalibPI::t_pedestal: - diffHigh = first_payload->getPedHigh() - last_payload->getPedHigh(); - diffLow = first_payload->getPedLow() - last_payload->getPedLow(); - maxRatio = first_payload->getPedHigh() / last_payload->getPedHigh(); - minRatio = first_payload->getPedLow() / last_payload->getPedLow(); + diffHigh = f_pHi - l_pHi; + diffLow = f_pLo - l_pLo; + maxRatio = l_pHi != 0 ? f_pHi / l_pHi : 0.; + minRatio = l_pLo != 0 ? f_pLo / l_pLo : 0.; break; default: edm::LogError(label_) << "Unrecognized type " << myType << std::endl; @@ -1269,7 +1279,7 @@ namespace gainCalibHelper { hratio->SetTitle(""); hratio->SetLineColor(kBlack); hratio->SetFillColor(kRed); - hratio->SetBarWidth(0.95); + hratio->SetBarWidth(0.90); hratio->SetMaximum(hratio->GetMaximum() * 10); hratio->Draw("bar"); SiPixelPI::makeNicePlotStyle(hratio.get()); @@ -1279,7 +1289,7 @@ namespace gainCalibHelper { hdiff->SetTitle(""); hdiff->SetLineColor(kBlack); hdiff->SetFillColor(kBlue); - hdiff->SetBarWidth(0.95); + hdiff->SetBarWidth(0.90); hdiff->SetMaximum(hdiff->GetMaximum() * 10); hdiff->Draw("bar"); SiPixelPI::makeNicePlotStyle(hdiff.get()); @@ -1288,40 +1298,46 @@ namespace gainCalibHelper { canvas.Update(); canvas.cd(1); - TLegend legend = TLegend(0.45, 0.86, 0.74, 0.94); - legend.SetHeader(fmt::sprintf("#font[22]{SiPixel %s Gain Calibration Ratio}",(isForHLT_ ? "ForHLT" : "Offline")).c_str(),"C"); + TLatex latex; + latex.SetTextSize(0.024); + latex.SetTextAlign(13); //align at top + latex.DrawLatexNDC( + .41, + .94, + fmt::sprintf("#scale[1.2]{SiPixel %s Gain Calibration Ratio}", (isForHLT_ ? "ForHLT" : "Offline")).c_str()); if (this->m_plotAnnotations.ntags == 2) { - legend.AddEntry(hratio.get(), ("#splitline{" + tagname1 + "}{ /" + tagname2 +"}").c_str(), "F"); + latex.DrawLatexNDC( + .41, .91, ("#splitline{#font[12]{" + tagname1 + "}}{ / #font[12]{" + tagname2 + "}}").c_str()); } else { - legend.AddEntry(hratio.get(), ( firstIOVsince + " / " + lastIOVsince).c_str(), "F"); + latex.DrawLatexNDC(.41, .91, (firstIOVsince + " / " + lastIOVsince).c_str()); } - legend.SetTextSize(0.025); - legend.SetLineColor(10); - legend.Draw("same"); canvas.cd(2); - TLegend legend2 = TLegend(0.45, 0.86, 0.74, 0.94); - legend2.SetHeader(fmt::sprintf("#font[22]{SiPixel %s Gain Calibration #Delta}",(isForHLT_ ? "ForHLT" : "Offline")).c_str(),"C"); + TLatex latex2; + latex2.SetTextSize(0.024); + latex2.SetTextAlign(13); //align at top + latex2.DrawLatexNDC( + .41, + .94, + fmt::sprintf("#scale[1.2]{SiPixel %s Gain Calibration Diff}", (isForHLT_ ? "ForHLT" : "Offline")).c_str()); if (this->m_plotAnnotations.ntags == 2) { - legend2.AddEntry(hdiff.get(), ("#splitline{" + tagname1 + "}{-" + tagname2 +"}").c_str(), "F"); + latex2.DrawLatexNDC( + .41, .91, ("#splitline{#font[12]{" + tagname1 + "}}{ - #font[12]{" + tagname2 + "}}").c_str()); } else { - legend2.AddEntry(hdiff.get(), (firstIOVsince + " - " + lastIOVsince).c_str(), "F"); + latex2.DrawLatexNDC(.41, .91, (firstIOVsince + " - " + lastIOVsince).c_str()); } - legend2.SetTextSize(0.025); - legend2.SetLineColor(10); - legend2.Draw("same"); TPaveStats* st1 = (TPaveStats*)hratio->FindObject("stats"); - st1->SetTextSize(0.03); + st1->SetTextSize(0.027); st1->SetLineColor(kRed); st1->SetTextColor(kRed); - SiPixelPI::adjustStats(st1, 0.13, 0.84, 0.41, 0.94); + SiPixelPI::adjustStats(st1, 0.13, 0.84, 0.40, 0.94); TPaveStats* st2 = (TPaveStats*)hdiff->FindObject("stats"); - st2->SetTextSize(0.03); + st2->SetTextSize(0.027); st2->SetLineColor(kBlue); st2->SetTextColor(kBlue); - SiPixelPI::adjustStats(st2, 0.13, 0.84, 0.41, 0.94); + SiPixelPI::adjustStats(st2, 0.13, 0.84, 0.40, 0.94); auto ltx = TLatex(); ltx.SetTextFont(62); From e622563225b0de4a864c8852bbade336999cb548 Mon Sep 17 00:00:00 2001 From: mmusich Date: Sat, 29 Aug 2020 13:39:20 +0200 Subject: [PATCH 4/5] improved implementation making sure axis limits are correct --- .../interface/SiPixelGainCalibHelper.h | 201 ++++++++---------- 1 file changed, 87 insertions(+), 114 deletions(-) diff --git a/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h b/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h index e33dfeb5c8e1d..80c640ee0c115 100644 --- a/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h +++ b/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h @@ -5,6 +5,7 @@ #include "CondCore/Utilities/interface/PayloadInspector.h" #include "CondCore/CondDB/interface/Time.h" #include "FWCore/ParameterSet/interface/FileInPath.h" +#include "FWCore/Utilities/interface/isFinite.h" #include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" #include "CondCore/SiPixelPlugins/interface/SiPixelPayloadInspectorHelper.h" #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" @@ -40,22 +41,25 @@ namespace gainCalibHelper { //=========================================================================== // helper method to fill the ratio and diff distributions template - static void fillDiffAndRatio(const std::shared_ptr& payload_A, - const std::shared_ptr& payload_B, - std::array, 2> arr, - const gainCalibPI::type& theType) { + static std::array, 2> fillDiffAndRatio(const std::shared_ptr& payload_A, + const std::shared_ptr& payload_B, + const gainCalibPI::type& theType) { + std::array, 2> arr; + std::vector detids_A; payload_A->getDetIds(detids_A); std::vector detids_B; payload_B->getDetIds(detids_B); + std::vector v_ratios; + std::vector v_diffs; + if (detids_A != detids_B) { edm::LogError("fillDiffAndRatio") << "the list of DetIds for the two payloads are not equal" << " cannot make any comparison!" << std::endl; } assert(detids_A == detids_B); - for (const auto& d : detids_A) { auto range = payload_A->getRange(d); int numberOfRowsToAverageOver = payload_A->getNumberOfRowsToAverageOver(); @@ -65,31 +69,25 @@ namespace gainCalibHelper { int nrows = std::max((payload_A->getNumberOfRowsToAverageOver() * nRocsInRow), nRowsForHLT); // dirty trick to make it work for the HLT payload - auto rangeAndCol_A = payload_A->getRangeAndNCols(d); - auto rangeAndCol_B = payload_B->getRangeAndNCols(d); - bool isDeadColumn; - bool isNoisyColumn; + auto rAndCol_A = payload_A->getRangeAndNCols(d); + auto rAndCol_B = payload_B->getRangeAndNCols(d); + bool isDeadCol, isNoisyCol; float ratio(-.1), diff(-1.); - for (int col = 0; col < ncols; col++) { for (int row = 0; row < nrows; row++) { switch (theType) { case gainCalibPI::t_gain: { - auto gainA = payload_A->getGain( - col, row, rangeAndCol_A.first, rangeAndCol_A.second, isDeadColumn, isNoisyColumn); - auto gainB = payload_B->getGain( - col, row, rangeAndCol_B.first, rangeAndCol_B.second, isDeadColumn, isNoisyColumn); - ratio = gainA / gainB; + auto gainA = payload_A->getGain(col, row, rAndCol_A.first, rAndCol_A.second, isDeadCol, isNoisyCol); + auto gainB = payload_B->getGain(col, row, rAndCol_B.first, rAndCol_B.second, isDeadCol, isNoisyCol); + ratio = gainB != 0 ? (gainA / gainB) : -1.; // if the ratio does not make sense the default is -1 diff = gainA - gainB; break; } case gainCalibPI::t_pedestal: { - auto pedA = - payload_A->getPed(col, row, rangeAndCol_A.first, rangeAndCol_A.second, isDeadColumn, isNoisyColumn); - auto pedB = - payload_B->getPed(col, row, rangeAndCol_B.first, rangeAndCol_B.second, isDeadColumn, isNoisyColumn); - ratio = pedA / pedB; + auto pedA = payload_A->getPed(col, row, rAndCol_A.first, rAndCol_A.second, isDeadCol, isNoisyCol); + auto pedB = payload_B->getPed(col, row, rAndCol_B.first, rAndCol_B.second, isDeadCol, isNoisyCol); + ratio = pedB != 0 ? (pedA / pedB) : -1.; // if the ratio does not make sense the default is -1 diff = pedA - pedB; break; } @@ -97,11 +95,31 @@ namespace gainCalibHelper { edm::LogError("gainCalibPI::fillTheHisto") << "Unrecognized type " << theType << std::endl; break; } - arr[0]->Fill(ratio); - arr[1]->Fill(diff); + // fill the containers + v_diffs.push_back(diff); + v_ratios.push_back(ratio); } // loop on rows } // loop on cols } // loop on detids + + std::sort(v_diffs.begin(), v_diffs.end()); + std::sort(v_ratios.begin(), v_ratios.end()); + + double minDiff = v_diffs.front(); + double maxDiff = v_diffs.back(); + double minRatio = v_ratios.front(); + double maxRatio = v_ratios.back(); + + arr[0] = std::make_shared("h_Ratio", "", 50, minRatio - 1., maxRatio + 1.); + arr[1] = std::make_shared("h_Diff", "", 50, minDiff - 1., maxDiff + 1.); + + for (const auto& r : v_ratios) { + arr[0]->Fill(r); + } + for (const auto& d : v_diffs) { + arr[1]->Fill(d); + } + return arr; } //============================================================================ @@ -1106,16 +1124,16 @@ namespace gainCalibHelper { legend.Draw("same"); TPaveStats* st1 = (TPaveStats*)hfirst->FindObject("stats"); - st1->SetTextSize(0.022); + st1->SetTextSize(0.021); st1->SetLineColor(kRed); st1->SetTextColor(kRed); - SiPixelPI::adjustStats(st1, 0.13, 0.84, 0.31, 0.94); + SiPixelPI::adjustStats(st1, 0.13, 0.86, 0.31, 0.94); TPaveStats* st2 = (TPaveStats*)hlast->FindObject("stats"); - st2->SetTextSize(0.022); + st2->SetTextSize(0.021); st2->SetLineColor(kBlue); st2->SetTextColor(kBlue); - SiPixelPI::adjustStats(st2, 0.13, 0.73, 0.31, 0.83); + SiPixelPI::adjustStats(st2, 0.13, 0.77, 0.31, 0.85); auto ltx = TLatex(); ltx.SetTextFont(62); @@ -1208,92 +1226,49 @@ namespace gainCalibHelper { std::string lastIOVsince = std::to_string(std::get<0>(lastiov)); std::string firstIOVsince = std::to_string(std::get<0>(firstiov)); - float diffHigh(-9999.); - float diffLow(-9999.); - float maxRatio(-9999.); - float minRatio(-9999.); - - float f_gHi = first_payload->getGainHigh(); - float f_gLo = first_payload->getGainLow(); - float f_pHi = first_payload->getPedHigh(); - float f_pLo = first_payload->getPedLow(); - - float l_gHi = last_payload->getGainHigh(); - float l_gLo = last_payload->getGainLow(); - float l_pHi = last_payload->getPedHigh(); - float l_pLo = last_payload->getPedLow(); - - switch (myType) { - case gainCalibPI::t_gain: - diffHigh = f_gHi - l_gHi; - diffLow = f_gLo - l_gLo; - maxRatio = l_gHi != 0 ? f_gHi / l_gHi : 0.; - minRatio = l_gLo != 0 ? f_gLo / l_gLo : 0.; - break; - case gainCalibPI::t_pedestal: - diffHigh = f_pHi - l_pHi; - diffLow = f_pLo - l_pLo; - maxRatio = l_pHi != 0 ? f_pHi / l_pHi : 0.; - minRatio = l_pLo != 0 ? f_pLo / l_pLo : 0.; - break; - default: - edm::LogError(label_) << "Unrecognized type " << myType << std::endl; - break; - } - - auto span = std::abs(maxRatio - minRatio); - TCanvas canvas("Canv", "Canv", 1300, 800); canvas.Divide(2, 1); canvas.cd(); - auto hratio = std::make_shared("h_Ratio", - Form("SiPixel Gain Calibration %s - %s;per %s %s ratio;# %ss", - (isForHLT_ ? "ForHLT" : "Offline"), - TypeName[myType], - (isForHLT_ ? "Column" : "Pixel"), - TypeName[myType], - (isForHLT_ ? "column" : "pixel")), - 50, - minRatio - span / 4., - maxRatio + span / 4.); - - auto hdiff = std::make_shared("h_Diff", - Form("SiPixel Gain Calibration %s - %s;per %s %s difference;# %ss", - (isForHLT_ ? "ForHLT" : "Offline"), - TypeName[myType], - (isForHLT_ ? "Column" : "Pixel"), - TypeName[myType], - (isForHLT_ ? "column" : "pixel")), - 50, - (diffHigh < diffLow) ? diffHigh : diffLow, - (diffHigh < diffLow) ? diffLow : diffHigh); SiPixelPI::adjustCanvasMargins(canvas.cd(1), 0.05, 0.12, 0.12, 0.04); SiPixelPI::adjustCanvasMargins(canvas.cd(2), 0.05, 0.12, 0.12, 0.04); canvas.Modified(); - std::array, 2> array = {{hratio, hdiff}}; - gainCalibPI::fillDiffAndRatio(first_payload, last_payload, array, myType); + auto array = gainCalibPI::fillDiffAndRatio(first_payload, last_payload, myType); + + array[0]->SetTitle(Form("SiPixel Gain Calibration %s - %s;per %s %s ratio;# %ss", + (isForHLT_ ? "ForHLT" : "Offline"), + TypeName[myType], + (isForHLT_ ? "Column" : "Pixel"), + TypeName[myType], + (isForHLT_ ? "column" : "pixel"))); + + array[1]->SetTitle(Form("SiPixel Gain Calibration %s - %s;per %s %s difference;# %ss", + (isForHLT_ ? "ForHLT" : "Offline"), + TypeName[myType], + (isForHLT_ ? "Column" : "Pixel"), + TypeName[myType], + (isForHLT_ ? "column" : "pixel"))); canvas.cd(1)->SetLogy(); - hratio->SetTitle(""); - hratio->SetLineColor(kBlack); - hratio->SetFillColor(kRed); - hratio->SetBarWidth(0.90); - hratio->SetMaximum(hratio->GetMaximum() * 10); - hratio->Draw("bar"); - SiPixelPI::makeNicePlotStyle(hratio.get()); - hratio->SetStats(true); + array[0]->SetTitle(""); + array[0]->SetLineColor(kBlack); + array[0]->SetFillColor(kRed); + array[0]->SetBarWidth(0.90); + array[0]->SetMaximum(array[0]->GetMaximum() * 10); + array[0]->Draw("bar"); + SiPixelPI::makeNicePlotStyle(array[0].get()); + array[0]->SetStats(true); canvas.cd(2)->SetLogy(); - hdiff->SetTitle(""); - hdiff->SetLineColor(kBlack); - hdiff->SetFillColor(kBlue); - hdiff->SetBarWidth(0.90); - hdiff->SetMaximum(hdiff->GetMaximum() * 10); - hdiff->Draw("bar"); - SiPixelPI::makeNicePlotStyle(hdiff.get()); - hdiff->SetStats(true); + array[1]->SetTitle(""); + array[1]->SetLineColor(kBlack); + array[1]->SetFillColor(kBlue); + array[1]->SetBarWidth(0.90); + array[1]->SetMaximum(array[1]->GetMaximum() * 10); + array[1]->Draw("bar"); + SiPixelPI::makeNicePlotStyle(array[1].get()); + array[1]->SetStats(true); canvas.Update(); @@ -1304,7 +1279,7 @@ namespace gainCalibHelper { latex.DrawLatexNDC( .41, .94, - fmt::sprintf("#scale[1.2]{SiPixel %s Gain Calibration Ratio}", (isForHLT_ ? "ForHLT" : "Offline")).c_str()); + fmt::sprintf("#scale[1.2]{SiPixelGainCalibration%s Ratio}", (isForHLT_ ? "ForHLT" : "Offline")).c_str()); if (this->m_plotAnnotations.ntags == 2) { latex.DrawLatexNDC( .41, .91, ("#splitline{#font[12]{" + tagname1 + "}}{ / #font[12]{" + tagname2 + "}}").c_str()); @@ -1319,7 +1294,7 @@ namespace gainCalibHelper { latex2.DrawLatexNDC( .41, .94, - fmt::sprintf("#scale[1.2]{SiPixel %s Gain Calibration Diff}", (isForHLT_ ? "ForHLT" : "Offline")).c_str()); + fmt::sprintf("#scale[1.2]{SiPixelGainCalibration%s Diff}", (isForHLT_ ? "ForHLT" : "Offline")).c_str()); if (this->m_plotAnnotations.ntags == 2) { latex2.DrawLatexNDC( .41, .91, ("#splitline{#font[12]{" + tagname1 + "}}{ - #font[12]{" + tagname2 + "}}").c_str()); @@ -1327,13 +1302,13 @@ namespace gainCalibHelper { latex2.DrawLatexNDC(.41, .91, (firstIOVsince + " - " + lastIOVsince).c_str()); } - TPaveStats* st1 = (TPaveStats*)hratio->FindObject("stats"); + TPaveStats* st1 = (TPaveStats*)array[0]->FindObject("stats"); st1->SetTextSize(0.027); st1->SetLineColor(kRed); st1->SetTextColor(kRed); SiPixelPI::adjustStats(st1, 0.13, 0.84, 0.40, 0.94); - TPaveStats* st2 = (TPaveStats*)hdiff->FindObject("stats"); + TPaveStats* st2 = (TPaveStats*)array[1]->FindObject("stats"); st2->SetTextSize(0.027); st2->SetLineColor(kBlue); st2->SetTextColor(kBlue); @@ -1345,18 +1320,16 @@ namespace gainCalibHelper { ltx.SetTextSize(0.040); ltx.SetTextAlign(11); canvas.cd(1); - ltx.DrawLatexNDC(gPad->GetLeftMargin(), - 1 - gPad->GetTopMargin() + 0.01, - ("SiPixel Gain Calib. Ratio IOV " + std::to_string(std::get<0>(firstiov)) + " / IOV " + - std::to_string(std::get<0>(lastiov))) - .c_str()); + ltx.DrawLatexNDC( + gPad->GetLeftMargin(), + 1 - gPad->GetTopMargin() + 0.01, + fmt::sprintf("SiPixel %s Ratio, IOV %s / %s", TypeName[myType], firstIOVsince, lastIOVsince).c_str()); canvas.cd(2); - ltx.DrawLatexNDC(gPad->GetLeftMargin(), - 1 - gPad->GetTopMargin() + 0.01, - ("SiPixel Gain Calib. Diff IOV " + std::to_string(std::get<0>(firstiov)) + " - IOV " + - std::to_string(std::get<0>(lastiov))) - .c_str()); + ltx.DrawLatexNDC( + gPad->GetLeftMargin(), + 1 - gPad->GetTopMargin() + 0.01, + fmt::sprintf("SiPixel %s Diff, IOV %s - %s", TypeName[myType], firstIOVsince, lastIOVsince).c_str()); std::string fileName(this->m_imageFileName); canvas.SaveAs(fileName.c_str()); From a7e323b91d743a42c6cebe55fe49f1175a8154b7 Mon Sep 17 00:00:00 2001 From: mmusich Date: Wed, 2 Sep 2020 19:19:42 +0200 Subject: [PATCH 5/5] further simplification --- .../interface/SiPixelGainCalibHelper.h | 10 +++--- ...lGainCalibrationForHLT_PayloadInspector.cc | 32 +++++++++---------- ...GainCalibrationOffline_PayloadInspector.cc | 32 +++++++++---------- 3 files changed, 37 insertions(+), 37 deletions(-) diff --git a/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h b/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h index 80c640ee0c115..23910e09e36d3 100644 --- a/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h +++ b/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h @@ -1204,8 +1204,8 @@ namespace gainCalibHelper { // trick to deal with the multi-ioved tag and two tag case at the same time auto theIOVs = cond::payloadInspector::PlotBase::getTag<0>().iovs; - auto tagname1 = cond::payloadInspector::PlotBase::getTag<0>().name; - std::string tagname2 = ""; + auto f_tagname = cond::payloadInspector::PlotBase::getTag<0>().name; + std::string l_tagname = ""; auto firstiov = theIOVs.front(); std::tuple lastiov; @@ -1214,7 +1214,7 @@ namespace gainCalibHelper { if (this->m_plotAnnotations.ntags == 2) { auto tag2iovs = cond::payloadInspector::PlotBase::getTag<1>().iovs; - tagname2 = cond::payloadInspector::PlotBase::getTag<1>().name; + l_tagname = cond::payloadInspector::PlotBase::getTag<1>().name; lastiov = tag2iovs.front(); } else { lastiov = theIOVs.back(); @@ -1282,7 +1282,7 @@ namespace gainCalibHelper { fmt::sprintf("#scale[1.2]{SiPixelGainCalibration%s Ratio}", (isForHLT_ ? "ForHLT" : "Offline")).c_str()); if (this->m_plotAnnotations.ntags == 2) { latex.DrawLatexNDC( - .41, .91, ("#splitline{#font[12]{" + tagname1 + "}}{ / #font[12]{" + tagname2 + "}}").c_str()); + .41, .91, ("#splitline{#font[12]{" + f_tagname + "}}{ / #font[12]{" + l_tagname + "}}").c_str()); } else { latex.DrawLatexNDC(.41, .91, (firstIOVsince + " / " + lastIOVsince).c_str()); } @@ -1297,7 +1297,7 @@ namespace gainCalibHelper { fmt::sprintf("#scale[1.2]{SiPixelGainCalibration%s Diff}", (isForHLT_ ? "ForHLT" : "Offline")).c_str()); if (this->m_plotAnnotations.ntags == 2) { latex2.DrawLatexNDC( - .41, .91, ("#splitline{#font[12]{" + tagname1 + "}}{ - #font[12]{" + tagname2 + "}}").c_str()); + .41, .91, ("#splitline{#font[12]{" + f_tagname + "}}{ - #font[12]{" + l_tagname + "}}").c_str()); } else { latex2.DrawLatexNDC(.41, .91, (firstIOVsince + " - " + lastIOVsince).c_str()); } diff --git a/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc b/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc index 3cf5da93205f7..8fdbc690da376 100644 --- a/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc +++ b/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc @@ -111,26 +111,26 @@ namespace { SiPixelGainCalibrationFPIXMap; using SiPixelGainCalibForHLTGainByRegionComparisonSingleTag = - gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; + SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibForHLTPedestalByRegionComparisonSingleTag = - gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; + SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibForHLTGainByRegionComparisonTwoTags = - gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; + SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibForHLTPedestalByRegionComparisonTwoTags = - gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; + SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibForHLTGainDiffRatioTwoTags = SiPixelGainCalibDiffAndRatioBase; using SiPixelGainCalibOfflineGainByRegionComparisonSingleTag = - gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; + SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibOfflinePedestalByRegionComparisonSingleTag = - gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; + SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibOfflineGainByRegionComparisonTwoTags = - gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; + SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibOfflinePedestalByRegionComparisonTwoTags = - gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; + SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibOfflineGainDiffRatioTwoTags = SiPixelGainCalibDiffAndRatioBase