diff --git a/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h b/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h index a6ac715091f87..23910e09e36d3 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" @@ -15,6 +16,7 @@ #include #include #include +#include // include ROOT #include "TH2F.h" @@ -36,6 +38,90 @@ namespace gainCalibHelper { enum type { t_gain = 0, t_pedestal = 1, t_correlation = 2 }; + //=========================================================================== + // helper method to fill the ratio and diff distributions + template + 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(); + 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 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, 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, 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; + } + default: + edm::LogError("gainCalibPI::fillTheHisto") << "Unrecognized type " << theType << std::endl; + break; + } + // 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; + } + //============================================================================ // helper method to fill the gain / pedestals distributions template @@ -1038,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); @@ -1093,6 +1179,172 @@ 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 %i tag(s)", TypeName[myType], ntags)) { + if constexpr (std::is_same_v) { + isForHLT_ = false; + } else { + isForHLT_ = true; + } + } + + bool fill() override { + gStyle->SetOptStat("emr"); + TGaxis::SetExponentOffset(-0.1, 0.01, "y"); // Y offset + TH1F::SetDefaultSumw2(true); + + 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 f_tagname = cond::payloadInspector::PlotBase::getTag<0>().name; + std::string l_tagname = ""; + 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; + l_tagname = 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)); + + std::string lastIOVsince = std::to_string(std::get<0>(lastiov)); + std::string firstIOVsince = std::to_string(std::get<0>(firstiov)); + + TCanvas canvas("Canv", "Canv", 1300, 800); + canvas.Divide(2, 1); + canvas.cd(); + + 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(); + + 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(); + 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(); + 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(); + + canvas.cd(1); + TLatex latex; + latex.SetTextSize(0.024); + latex.SetTextAlign(13); //align at top + latex.DrawLatexNDC( + .41, + .94, + 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]{" + f_tagname + "}}{ / #font[12]{" + l_tagname + "}}").c_str()); + } else { + latex.DrawLatexNDC(.41, .91, (firstIOVsince + " / " + lastIOVsince).c_str()); + } + + canvas.cd(2); + TLatex latex2; + latex2.SetTextSize(0.024); + latex2.SetTextAlign(13); //align at top + latex2.DrawLatexNDC( + .41, + .94, + 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]{" + f_tagname + "}}{ - #font[12]{" + l_tagname + "}}").c_str()); + } else { + latex2.DrawLatexNDC(.41, .91, (firstIOVsince + " - " + lastIOVsince).c_str()); + } + + 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*)array[1]->FindObject("stats"); + st2->SetTextSize(0.027); + st2->SetLineColor(kBlue); + st2->SetTextColor(kBlue); + SiPixelPI::adjustStats(st2, 0.13, 0.84, 0.40, 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, + 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, + 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()); +#ifdef MMDEBUG + canvas.SaveAs("out.root"); +#endif + + return true; + } + + protected: + bool isForHLT_; + std::string label_; + }; + // 2D MAPS /************************************************ diff --git a/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc b/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc index e522ae5caa42f..8fdbc690da376 100644 --- a/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc +++ b/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationForHLT_PayloadInspector.cc @@ -10,139 +10,139 @@ 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; + SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibForHLTPedestalByRegionComparisonSingleTag = - gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; + SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibForHLTGainByRegionComparisonTwoTags = - gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; + SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibForHLTPedestalByRegionComparisonTwoTags = - gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; + SiPixelGainCalibrationByRegionComparisonBase; + + using SiPixelGainCalibForHLTGainDiffRatioTwoTags = + SiPixelGainCalibDiffAndRatioBase; + + using SiPixelGainCalibForHLTPedestalDiffRatioTwoTags = + SiPixelGainCalibDiffAndRatioBase; } // namespace @@ -176,4 +176,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..8205726524447 100644 --- a/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationOffline_PayloadInspector.cc +++ b/CondCore/SiPixelPlugins/plugins/SiPixelGainCalibrationOffline_PayloadInspector.cc @@ -10,141 +10,142 @@ 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; + SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibOfflinePedestalByRegionComparisonSingleTag = - gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; + SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibOfflineGainByRegionComparisonTwoTags = - gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; + SiPixelGainCalibrationByRegionComparisonBase; using SiPixelGainCalibOfflinePedestalByRegionComparisonTwoTags = - gainCalibHelper::SiPixelGainCalibrationByRegionComparisonBase; + SiPixelGainCalibrationByRegionComparisonBase; + + using SiPixelGainCalibOfflineGainDiffRatioTwoTags = + SiPixelGainCalibDiffAndRatioBase; + + using SiPixelGainCalibOfflinePedestalDiffRatioTwoTags = + SiPixelGainCalibDiffAndRatioBase; + } // namespace PAYLOAD_INSPECTOR_MODULE(SiPixelGainCalibrationOffline) { @@ -177,4 +178,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..ba4c38f79a80a --- /dev/null +++ b/CondCore/SiPixelPlugins/test/SiPixelGainCalibrationComparator_DB.sh @@ -0,0 +1,146 @@ +#!/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 +if [ -f *.png ]; then + rm *.png +fi + +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=("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\n dealing with IOV: "$i"\n" + + getPayloadData.py \ + --plugin pluginSiPixelGainCalibrationForHLT_PayloadInspector \ + --plot plot_SiPixelGainCalibForHLTGainDiffRatioTwoTags \ + --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/GainsDiffRatio_${i}.png + + getPayloadData.py \ + --plugin pluginSiPixelGainCalibrationForHLT_PayloadInspector \ + --plot plot_SiPixelGainCalibForHLTPedestalDiffRatioTwoTags \ + --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/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\n dealing with IOV: "$i"\n" + + getPayloadData.py \ + --plugin pluginSiPixelGainCalibrationOffline_PayloadInspector \ + --plot plot_SiPixelGainCalibOfflineGainDiffRatioTwoTags \ + --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/GainsDiffRatio_${i}.png + + getPayloadData.py \ + --plugin pluginSiPixelGainCalibrationOffline_PayloadInspector \ + --plot plot_SiPixelGainCalibOfflinePedestalDiffRatioTwoTags \ + --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/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 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