Skip to content

Commit 09dff3a

Browse files
authored
Merge branch 'master' into bk-thread
2 parents c591bbe + 9fa3d75 commit 09dff3a

File tree

7 files changed

+51
-19
lines changed

7 files changed

+51
-19
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ include(GNUInstallDirs)
1313
# ---- Project ----
1414

1515
project(QualityControl
16-
VERSION 1.184.0
16+
VERSION 1.185.0
1717
DESCRIPTION "O2 Data Quality Control Framework"
1818
LANGUAGES C CXX)
1919

Framework/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ configure_file(batch-test.json.in ${CMAKE_BINARY_DIR}/tests/batch-test.json) # s
416416
add_test(NAME batch_test COMMAND o2-qc-batch-test.sh)
417417
set_tests_properties(batch_test PROPERTIES ENVIRONMENT "JSON_DIR=${CMAKE_BINARY_DIR}/tests;UNIQUE_ID=${UNIQUE_ID}")
418418
set_property(TEST batch_test PROPERTY LABELS slow)
419-
set_property(TEST batch_test PROPERTY TIMEOUT 45)
419+
set_property(TEST batch_test PROPERTY TIMEOUT 60)
420420

421421
# ---- Install ----
422422

Framework/src/CheckRunner.cxx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,8 @@ std::string CheckRunner::createCheckRunnerFacility(std::string deviceName)
114114

115115
std::string CheckRunner::createSinkCheckRunnerName(InputSpec input)
116116
{
117-
std::string name(CheckRunner::createCheckRunnerIdString() + "-sink-");
117+
// we need a shorter name, thus we only use "qc-sink" and not "qc-check-sink"
118+
std::string name("qc-sink-");
118119
name += DataSpecUtils::label(input);
119120
return name;
120121
}

Framework/test/testInfrastructureGenerator.cxx

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,15 @@ TEST_CASE("qc_factory_remote_test")
190190
return d.name.find("qc-check") != std::string::npos &&
191191
d.inputs.size() == 1;
192192
});
193-
REQUIRE(checkRunnerCount == 6);
193+
REQUIRE(checkRunnerCount == 4);
194+
195+
auto checkSinkCount = std::count_if(
196+
workflow.begin(), workflow.end(),
197+
[](const DataProcessorSpec& d) {
198+
return d.name.find("qc-sink") != std::string::npos &&
199+
d.inputs.size() == 1;
200+
});
201+
REQUIRE(checkSinkCount == 2);
194202

195203
auto postprocessingTask = std::find_if(
196204
workflow.begin(), workflow.end(),
@@ -272,7 +280,15 @@ TEST_CASE("qc_factory_standalone_test")
272280
return d.name.find("qc-check") != std::string::npos &&
273281
d.inputs.size() == 1;
274282
});
275-
REQUIRE(checkRunnerCount == 5);
283+
REQUIRE(checkRunnerCount == 4);
284+
285+
auto checkSinkCount = std::count_if(
286+
workflow.begin(), workflow.end(),
287+
[](const DataProcessorSpec& d) {
288+
return d.name.find("qc-sink") != std::string::npos &&
289+
d.inputs.size() == 1;
290+
});
291+
REQUIRE(checkSinkCount == 1);
276292

277293
auto postprocessingTask = std::find_if(
278294
workflow.begin(), workflow.end(),
@@ -411,7 +427,15 @@ TEST_CASE("qc_infrastructure_remote_batch_test")
411427
return d.name.find("qc-check") != std::string::npos &&
412428
d.inputs.size() == 1;
413429
});
414-
REQUIRE(checkRunnerCount == 6);
430+
REQUIRE(checkRunnerCount == 4);
431+
432+
auto checkSinkCount = std::count_if(
433+
workflow.begin(), workflow.end(),
434+
[](const DataProcessorSpec& d) {
435+
return d.name.find("qc-sink") != std::string::npos &&
436+
d.inputs.size() == 1;
437+
});
438+
REQUIRE(checkSinkCount == 2);
415439

416440
auto postprocessingTask = std::find_if(
417441
workflow.begin(), workflow.end(),

Modules/ITS/include/ITS/ITSClusterTask.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ class ITSClusterTask : public TaskInterface
112112
// General
113113
TH2D* hClusterVsBunchCrossing = nullptr;
114114
std::unique_ptr<TH2DRatio> mGeneralOccupancy = nullptr;
115+
TH2D* hClusterCenterMap[3] = { nullptr }; // only IB
115116

116117
// Fine checks
117118

Modules/ITS/src/ITSClusterTask.cxx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ ITSClusterTask::~ITSClusterTask()
5050
continue;
5151

5252
if (iLayer < NLayerIB) {
53+
delete hClusterCenterMap[iLayer];
5354
delete hLongClustersPerChip[iLayer];
5455
delete hMultPerChipWhenLongClusters[iLayer];
5556
}
@@ -92,7 +93,7 @@ void ITSClusterTask::initialize(o2::framework::InitContext& /*ctx*/)
9293

9394
getJsonParameters();
9495

95-
// create binning for fine checks
96+
// Create binning for fine checks
9697
setRphiBinningIB();
9798
setZBinningIB();
9899
setRphiBinningOB();
@@ -246,6 +247,7 @@ void ITSClusterTask::monitorData(o2::framework::ProcessingContext& ctx)
246247
hAverageClusterOccupancySummaryIB[lay]->getNum()->Fill(chip, sta);
247248
hAverageClusterSizeSummaryIB[lay]->getNum()->Fill(chip, sta, (double)npix);
248249
hAverageClusterSizeSummaryIB[lay]->getDen()->Fill(chip, sta, 1.);
250+
hClusterCenterMap[lay]->Fill(cluster.getCol(), cluster.getRow());
249251
if (mDoPublish1DSummary == 1) {
250252
hClusterTopologySummaryIB[lay][sta][chip]->Fill(ClusterID);
251253
}
@@ -446,6 +448,7 @@ void ITSClusterTask::reset()
446448
hClusterTopologyLayerSummary[iLayer]->Reset();
447449

448450
if (iLayer < NLayerIB) {
451+
hClusterCenterMap[iLayer]->Reset();
449452
hLongClustersPerChip[iLayer]->Reset();
450453
hMultPerChipWhenLongClusters[iLayer]->Reset();
451454
hAverageClusterOccupancySummaryIB[iLayer]->Reset();
@@ -511,6 +514,11 @@ void ITSClusterTask::createAllHistos()
511514
continue;
512515

513516
if (iLayer < NLayerIB) {
517+
hClusterCenterMap[iLayer] = new TH2D(Form("ClusterCenterMapL%d", iLayer), Form("Stacked map of cluster centers for all L%d chips;Column;Row", iLayer), 1024, -0.5, 1023.5, 512, -0.5, 511.5);
518+
addObject(hClusterCenterMap[iLayer]);
519+
formatAxes(hClusterCenterMap[iLayer], "Column", "Row", 1, 1.10);
520+
hClusterCenterMap[iLayer]->SetStats(0);
521+
514522
hLongClustersPerChip[iLayer] = new TH2D(Form("Anomalies/Layer%d/LongClusters", iLayer), Form("Layer%d/LongClusters", iLayer), ChipBoundary[iLayer + 1] - ChipBoundary[iLayer], ChipBoundary[iLayer], ChipBoundary[iLayer + 1], 41, 0, 41);
515523
hMultPerChipWhenLongClusters[iLayer] = new TH2D(Form("Anomalies/Layer%d/HitsWhenLongClusters", iLayer), Form("Layer%d/HitsWhenLongClusters", iLayer), ChipBoundary[iLayer + 1] - ChipBoundary[iLayer], ChipBoundary[iLayer], ChipBoundary[iLayer + 1], 250, 0, 40000);
516524
addObject(hLongClustersPerChip[iLayer]);

Modules/MFT/src/QcMFTDigitCheck.cxx

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
/// \author Diana Maria Krupova
1818
/// \author David Grund
1919
/// \author Sara Haidlova
20+
/// \author Jakub Juracka
2021
///
2122

2223
// C++
@@ -407,18 +408,15 @@ void QcMFTDigitCheck::beautify(std::shared_ptr<MonitorObject> mo, Quality checkR
407408
}
408409
}
409410
// quality of a noise scan
410-
bool isTotalNoiseGood = (mTotalNoisy < mNoiseTotalMediumMax) && (mTotalNoisy > mNoiseTotalMediumMin);
411-
bool isNewNoiseGood = (mNewNoisy < mNoiseNewMediumMax) && (mNewNoisy > mNoiseNewMediumMin);
412-
bool isDisNoiseGood = (mDisNoisy < mNoiseDisMediumMax) && (mDisNoisy > mNoiseDisMediumMin);
413-
bool isTotalNoiseMedium = (mTotalNoisy > mNoiseTotalMediumMax && mTotalNoisy < mNoiseTotalBadMax) ||
414-
(mTotalNoisy > mNoiseTotalBadMin && mTotalNoisy < mNoiseTotalMediumMin);
415-
bool isNewNoiseMedium = (mNewNoisy < mNoiseNewMediumMin) ||
416-
(mNewNoisy > mNoiseNewMediumMax && mNewNoisy < mNoiseNewBadMax);
417-
bool isDisNoiseMedium = (mDisNoisy < mNoiseDisMediumMin) ||
418-
(mDisNoisy > mNoiseDisMediumMax && mDisNoisy < mNoiseDisBadMax);
419-
bool isTotalNoiseBad = (mTotalNoisy > mNoiseTotalBadMax) || (mTotalNoisy < mNoiseTotalBadMin);
420-
bool isNewNoiseBad = mNewNoisy > mNoiseNewBadMax;
421-
bool isDisNoiseBad = mDisNoisy > mNoiseDisBadMax;
411+
bool isTotalNoiseGood = (mNoiseTotalMediumMin <= mTotalNoisy) && (mTotalNoisy <= mNoiseTotalMediumMax);
412+
bool isNewNoiseGood = (mNoiseNewMediumMin <= mNewNoisy) && (mNewNoisy <= mNoiseNewMediumMax);
413+
bool isDisNoiseGood = (mNoiseDisMediumMin <= mDisNoisy) && (mDisNoisy <= mNoiseDisMediumMax);
414+
bool isTotalNoiseMedium = (mNoiseTotalBadMin <= mTotalNoisy && mTotalNoisy < mNoiseTotalMediumMin) || (mNoiseTotalMediumMax < mTotalNoisy && mTotalNoisy <= mNoiseTotalBadMax);
415+
bool isNewNoiseMedium = (mNewNoisy < mNoiseNewMediumMin) || (mNoiseNewMediumMax < mNewNoisy && mNewNoisy <= mNoiseNewBadMax);
416+
bool isDisNoiseMedium = (mDisNoisy < mNoiseDisMediumMin) || (mNoiseDisMediumMax < mDisNoisy && mDisNoisy <= mNoiseDisBadMax);
417+
bool isTotalNoiseBad = (mTotalNoisy < mNoiseTotalBadMin) || (mNoiseTotalBadMax < mTotalNoisy);
418+
bool isNewNoiseBad = mNoiseNewBadMax < mNewNoisy;
419+
bool isDisNoiseBad = mNoiseDisBadMax < mDisNoisy;
422420

423421
if (isTotalNoiseGood && isNewNoiseGood && isDisNoiseGood) {
424422
mQualityGood = true;

0 commit comments

Comments
 (0)