From 244a4ae7f81b1cd07a98904babcdba1d7fb10994 Mon Sep 17 00:00:00 2001 From: Nicolo Valle Date: Fri, 3 Apr 2026 09:49:41 +0200 Subject: [PATCH 1/2] ITS - masking staves in chipstatus checker --- Modules/ITS/itsChipStatus.json | 3 ++- Modules/ITS/src/ITSChipStatusCheck.cxx | 6 ++++++ Modules/ITS/src/ITSFeeCheck.cxx | 8 ++++---- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Modules/ITS/itsChipStatus.json b/Modules/ITS/itsChipStatus.json index 819ef27dcb..9f36829352 100644 --- a/Modules/ITS/itsChipStatus.json +++ b/Modules/ITS/itsChipStatus.json @@ -49,6 +49,7 @@ "policy": "OnEachSeparately", "detectorName": "ITS", "checkParameters": { + "skipbinsStaveOverview": "", "feeidlimitsIB": "1,1", "feeidlimitsML": "1,0.87", "feeidlimitsOL": "1,0.92", @@ -57,7 +58,7 @@ "dataSource": [{ "type": "Task", "name": "ITSChipStatus", - "MOs": ["StaveStatusOverview"] + "MOs": ["StaveStatusOverview","FEEIDOverview"] }] } } diff --git a/Modules/ITS/src/ITSChipStatusCheck.cxx b/Modules/ITS/src/ITSChipStatusCheck.cxx index 869e4d733b..2e00b5b707 100644 --- a/Modules/ITS/src/ITSChipStatusCheck.cxx +++ b/Modules/ITS/src/ITSChipStatusCheck.cxx @@ -30,6 +30,9 @@ namespace o2::quality_control_modules::its Quality ITSChipStatusCheck::check(std::map>* moMap) { + // "bin1,bin2,bin3,..." not to be checked on the TH2Poly stave overview + std::vector skipbinsStaveOverview = convertToArray(o2::quality_control_modules::common::getFromConfig(mCustomParameters, "skipbinsStaveOverview", "")); + // limits to be used as "X,Y" --> BAD if at least X FFEIDs have at least Y chips each into error std::vector feeidlimitsIB = convertToArray(o2::quality_control_modules::common::getFromConfig(mCustomParameters, "feeidlimitsIB", "")); std::vector feeidlimitsML = convertToArray(o2::quality_control_modules::common::getFromConfig(mCustomParameters, "feeidlimitsML", "")); @@ -64,6 +67,9 @@ Quality ITSChipStatusCheck::check(std::mapGetBinContent(ibin) - 1) < 0.01) { result = Quality::Bad; TString text = Form("BAD: At least one stave is without data"); diff --git a/Modules/ITS/src/ITSFeeCheck.cxx b/Modules/ITS/src/ITSFeeCheck.cxx index 7b48d56627..538f1a6f89 100644 --- a/Modules/ITS/src/ITSFeeCheck.cxx +++ b/Modules/ITS/src/ITSFeeCheck.cxx @@ -174,12 +174,12 @@ Quality ITSFeeCheck::check(std::map> TString trgname = (TString)(h->GetYaxis()->GetBinLabel(itrg + 1)); - for (int ifee = 1; ifee <= h->GetNbinsX(); ifee++) { + for (int ifeebin = 1; ifeebin <= h->GetNbinsX(); ifeebin++) { - if (std::find(skipfeeid.begin(), skipfeeid.end(), ifee) != skipfeeid.end()) + if (std::find(skipfeeid.begin(), skipfeeid.end(), ifeebin - 1) != skipfeeid.end()) continue; - int bincontent = (int)(h->GetBinContent(ifee, itrg + 1)); + int bincontent = (int)(h->GetBinContent(ifeebin, itrg + 1)); // checking trigger flags supposed to have at least one entry if (TrgAtLeastOne.Contains(trgname)) { @@ -379,7 +379,7 @@ void ITSFeeCheck::beautify(std::shared_ptr mo, Quality checkResul tInfoLayers[ilayer]->SetNDC(); hp->GetListOfFunctions()->Add(tInfoLayers[ilayer]->Clone()); } // end check result over layer - } // end of loop over layers + } // end of loop over layers } tInfo = std::make_shared(0.05, 0.95, Form("#bf{%s}", status.Data())); tInfo->SetTextColor(textColor); From e2e8370feb2443d90a3edbe21c62190342adecf9 Mon Sep 17 00:00:00 2001 From: Nicolo Valle Date: Fri, 3 Apr 2026 13:19:41 +0200 Subject: [PATCH 2/2] Better info text --- Modules/ITS/src/ITSChipStatusCheck.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/ITS/src/ITSChipStatusCheck.cxx b/Modules/ITS/src/ITSChipStatusCheck.cxx index 2e00b5b707..d0a969b033 100644 --- a/Modules/ITS/src/ITSChipStatusCheck.cxx +++ b/Modules/ITS/src/ITSChipStatusCheck.cxx @@ -33,7 +33,7 @@ Quality ITSChipStatusCheck::check(std::map skipbinsStaveOverview = convertToArray(o2::quality_control_modules::common::getFromConfig(mCustomParameters, "skipbinsStaveOverview", "")); - // limits to be used as "X,Y" --> BAD if at least X FFEIDs have at least Y chips each into error + // limits to be used as "X,Y" --> BAD if at least X FFEIDs have at least a fraction Y of chips each into error std::vector feeidlimitsIB = convertToArray(o2::quality_control_modules::common::getFromConfig(mCustomParameters, "feeidlimitsIB", "")); std::vector feeidlimitsML = convertToArray(o2::quality_control_modules::common::getFromConfig(mCustomParameters, "feeidlimitsML", "")); std::vector feeidlimitsOL = convertToArray(o2::quality_control_modules::common::getFromConfig(mCustomParameters, "feeidlimitsOL", ""));