Skip to content

Commit a8cfaa8

Browse files
committed
QC-1293 Working prototype of late tasks
1 parent 12e77a1 commit a8cfaa8

27 files changed

+1031
-115
lines changed

Framework/CMakeLists.txt

Lines changed: 109 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -2,144 +2,146 @@
22
# variables. We don't want to pollute our source tree with it, thus putting it in
33
# binary tree.
44
configure_file("include/QualityControl/Version.h.in"
5-
"${CMAKE_CURRENT_BINARY_DIR}/include/QualityControl/Version.h"
6-
@ONLY)
5+
"${CMAKE_CURRENT_BINARY_DIR}/include/QualityControl/Version.h"
6+
@ONLY)
77

88
# ---- Library for IL ----
99
add_library(O2QualityControlInfoLogger STATIC
10-
src/QcInfoLogger.cxx
11-
)
10+
src/QcInfoLogger.cxx
11+
)
1212

1313
target_include_directories(O2QualityControlInfoLogger
14-
PUBLIC
15-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
16-
)
14+
PUBLIC
15+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
16+
)
1717

1818
target_link_libraries(O2QualityControlInfoLogger
19-
PUBLIC
20-
AliceO2::InfoLogger
21-
)
19+
PUBLIC
20+
AliceO2::InfoLogger
21+
)
2222

2323
# ---- Library for the types ----
2424
add_library(O2QualityControlTypes
25-
src/MonitorObject.cxx
26-
src/QualityObject.cxx
27-
src/Quality.cxx
28-
)
25+
src/MonitorObject.cxx
26+
src/QualityObject.cxx
27+
src/Quality.cxx
28+
)
2929

3030
target_include_directories(
31-
O2QualityControlTypes
32-
PUBLIC $<INSTALL_INTERFACE:include>
33-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
34-
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src
35-
)
31+
O2QualityControlTypes
32+
PUBLIC $<INSTALL_INTERFACE:include>
33+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
34+
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src
35+
)
3636

3737
target_link_libraries(O2QualityControlTypes
38-
PRIVATE
39-
O2QualityControlInfoLogger
40-
PUBLIC
41-
AliceO2::BookkeepingApi
42-
AliceO2::Common
43-
O2::DataFormatsQualityControl
44-
ROOT::Hist
45-
)
38+
PRIVATE
39+
O2QualityControlInfoLogger
40+
PUBLIC
41+
AliceO2::BookkeepingApi
42+
AliceO2::Common
43+
O2::DataFormatsQualityControl
44+
ROOT::Hist
45+
)
4646

4747
add_root_dictionary(O2QualityControlTypes
48-
HEADERS include/QualityControl/MonitorObject.h
49-
include/QualityControl/QualityObject.h
50-
include/QualityControl/Quality.h
51-
include/QualityControl/Activity.h
52-
LINKDEF include/QualityControl/TypesLinkDef.h)
48+
HEADERS include/QualityControl/MonitorObject.h
49+
include/QualityControl/QualityObject.h
50+
include/QualityControl/Quality.h
51+
include/QualityControl/Activity.h
52+
LINKDEF include/QualityControl/TypesLinkDef.h)
5353

5454
# ---- Kafka ----
5555

5656
add_library(O2QualityControlKafkaProtos OBJECT
57-
proto/events.proto)
57+
proto/events.proto)
5858

5959
target_link_libraries(O2QualityControlKafkaProtos PUBLIC
60-
protobuf::libprotobuf
61-
)
60+
protobuf::libprotobuf
61+
)
6262

6363
target_include_directories(O2QualityControlKafkaProtos PUBLIC
64-
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
65-
)
64+
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
65+
)
6666

6767
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/proto")
6868

6969
protobuf_generate(
70-
TARGET O2QualityControlKafkaProtos
71-
IMPORT_DIRS "${CMAKE_CURRENT_LIST_DIR}/proto"
72-
PROTOC_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/proto")
70+
TARGET O2QualityControlKafkaProtos
71+
IMPORT_DIRS "${CMAKE_CURRENT_LIST_DIR}/proto"
72+
PROTOC_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/proto")
7373

7474
# ---- Library ----
7575

7676
add_library(O2QualityControl
77-
src/Activity.cxx
78-
src/ActivityHelpers.cxx
79-
src/ObjectsManager.cxx
80-
src/CheckRunner.cxx
81-
src/BookkeepingQualitySink.cxx
82-
src/AggregatorRunner.cxx
83-
src/CheckRunnerFactory.cxx
84-
src/AggregatorRunnerFactory.cxx
85-
src/CheckInterface.cxx
86-
src/AggregatorInterface.cxx
87-
src/DatabaseFactory.cxx
88-
src/CcdbDatabase.cxx
89-
src/TaskFactory.cxx
90-
src/TaskRunner.cxx
91-
src/TaskRunnerFactory.cxx
92-
src/TaskInterface.cxx
93-
src/UserCodeInterface.cxx
94-
src/RepositoryBenchmark.cxx
95-
src/RepoPathUtils.cxx
96-
src/stringUtils.cxx
97-
src/InfrastructureGenerator.cxx
98-
src/InfrastructureSpecReader.cxx
99-
src/Check.cxx
100-
src/Aggregator.cxx
101-
src/HashDataDescription.cxx
102-
src/Triggers.cxx
103-
src/TriggerHelpers.cxx
104-
src/PostProcessingRunner.cxx
105-
src/PostProcessingFactory.cxx
106-
src/PostProcessingConfig.cxx
107-
src/PostProcessingInterface.cxx
108-
src/PostProcessingDevice.cxx
109-
src/TrendingTask.cxx
110-
src/TrendingTaskConfig.cxx
111-
src/DummyDatabase.cxx
112-
src/DataProducer.cxx
113-
src/HistoProducer.cxx
114-
src/DataProducerExample.cxx
115-
src/MonitorObjectCollection.cxx
116-
src/UpdatePolicyManager.cxx
117-
src/AdvancedWorkflow.cxx
118-
src/QualitiesToFlagCollectionConverter.cxx
119-
src/DataSourceSpec.cxx
120-
src/RootFileSink.cxx
121-
src/RootFileSource.cxx
122-
src/UpdatePolicyType.cxx
123-
src/RootClassFactory.cxx
124-
src/ConfigParamGlo.cxx
125-
src/SliceTrendingTask.cxx
126-
src/SliceTrendingTaskConfig.cxx
127-
src/Bookkeeping.cxx
128-
src/CustomParameters.cxx
129-
src/runnerUtils.cxx
130-
src/Timekeeper.cxx
131-
src/TimekeeperSynchronous.cxx
132-
src/TimekeeperAsynchronous.cxx
133-
src/WorkflowType.cxx
134-
src/TimekeeperFactory.cxx
135-
src/RootFileStorage.cxx
136-
src/ReductorHelpers.cxx
137-
src/KafkaPoller.cxx
138-
src/FlagHelpers.cxx
139-
src/ObjectMetadataHelpers.cxx
140-
src/QCInputsAdapters.cxx
141-
src/QCInputsFactory.cxx
142-
)
77+
src/Activity.cxx
78+
src/ActivityHelpers.cxx
79+
src/ObjectsManager.cxx
80+
src/CheckRunner.cxx
81+
src/BookkeepingQualitySink.cxx
82+
src/AggregatorRunner.cxx
83+
src/CheckRunnerFactory.cxx
84+
src/AggregatorRunnerFactory.cxx
85+
src/CheckInterface.cxx
86+
src/AggregatorInterface.cxx
87+
src/DatabaseFactory.cxx
88+
src/CcdbDatabase.cxx
89+
src/TaskFactory.cxx
90+
src/TaskRunner.cxx
91+
src/TaskRunnerFactory.cxx
92+
src/TaskInterface.cxx
93+
src/UserCodeInterface.cxx
94+
src/RepositoryBenchmark.cxx
95+
src/RepoPathUtils.cxx
96+
src/stringUtils.cxx
97+
src/InfrastructureGenerator.cxx
98+
src/InfrastructureSpecReader.cxx
99+
src/Check.cxx
100+
src/Aggregator.cxx
101+
src/HashDataDescription.cxx
102+
src/Triggers.cxx
103+
src/TriggerHelpers.cxx
104+
src/PostProcessingRunner.cxx
105+
src/PostProcessingFactory.cxx
106+
src/PostProcessingConfig.cxx
107+
src/PostProcessingInterface.cxx
108+
src/PostProcessingDevice.cxx
109+
src/TrendingTask.cxx
110+
src/TrendingTaskConfig.cxx
111+
src/DummyDatabase.cxx
112+
src/DataProducer.cxx
113+
src/HistoProducer.cxx
114+
src/DataProducerExample.cxx
115+
src/MonitorObjectCollection.cxx
116+
src/UpdatePolicyManager.cxx
117+
src/AdvancedWorkflow.cxx
118+
src/QualitiesToFlagCollectionConverter.cxx
119+
src/DataSourceSpec.cxx
120+
src/RootFileSink.cxx
121+
src/RootFileSource.cxx
122+
src/UpdatePolicyType.cxx
123+
src/RootClassFactory.cxx
124+
src/ConfigParamGlo.cxx
125+
src/SliceTrendingTask.cxx
126+
src/SliceTrendingTaskConfig.cxx
127+
src/Bookkeeping.cxx
128+
src/CustomParameters.cxx
129+
src/runnerUtils.cxx
130+
src/Timekeeper.cxx
131+
src/TimekeeperSynchronous.cxx
132+
src/TimekeeperAsynchronous.cxx
133+
src/WorkflowType.cxx
134+
src/TimekeeperFactory.cxx
135+
src/RootFileStorage.cxx
136+
src/ReductorHelpers.cxx
137+
src/KafkaPoller.cxx
138+
src/FlagHelpers.cxx
139+
src/ObjectMetadataHelpers.cxx
140+
src/QCInputsAdapters.cxx
141+
src/QCInputsFactory.cxx
142+
src/LateTaskRunner.cxx
143+
src/LateTaskRunnerFactory.cxx
144+
src/LateTaskInterface.cxx)
143145

144146
target_include_directories(
145147
O2QualityControl
@@ -182,6 +184,7 @@ add_root_dictionary(O2QualityControl
182184
HEADERS
183185
include/QualityControl/CheckInterface.h
184186
include/QualityControl/TaskInterface.h
187+
include/QualityControl/LateTaskInterface.h
185188
include/QualityControl/UserCodeInterface.h
186189
include/QualityControl/AggregatorInterface.h
187190
include/QualityControl/PostProcessingInterface.h

Framework/basic.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,40 @@
8989
}
9090
}
9191
}
92+
},
93+
"latecheck": {
94+
"active": "true",
95+
"className": "o2::quality_control_modules::skeleton::SkeletonCheck",
96+
"moduleName": "QcSkeleton",
97+
"policy": "OnAny",
98+
"detectorName": "TST",
99+
"dataSource": [{
100+
"type": "LateTask",
101+
"name": "late",
102+
"MOs": ["graph_example"]
103+
}],
104+
"extendedCheckParameters": {
105+
"physics": {
106+
"pp": {
107+
"myOwnKey1": "myOwnValue1c"
108+
}
109+
}
110+
}
111+
}
112+
},
113+
"lateTasks": {
114+
"late": {
115+
"active": "true",
116+
"className": "o2::quality_control_modules::skeleton::SkeletonLateTask",
117+
"moduleName": "QcSkeleton",
118+
"policy": "OnAny",
119+
"detectorName": "TST",
120+
"dataSources": [{
121+
"type": "Task",
122+
"name": "QcTask",
123+
"MOs": ["example"]
124+
}]
125+
92126
}
93127
}
94128
},
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
//
2+
// Created by pkonopka on 23/06/25.
3+
//
4+
5+
#ifndef ACTOR_H
6+
#define ACTOR_H
7+
8+
#endif //ACTOR_H

Framework/include/QualityControl/DataSourceSpec.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ enum class DataSourceType {
3232
Check,
3333
Aggregator,
3434
PostProcessingTask,
35+
LateTask,
3536
ExternalTask,
3637
Invalid
3738
};

Framework/include/QualityControl/InfrastructureGenerator.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,7 @@ class InfrastructureGenerator
230230
static void generateAggregator(framework::WorkflowSpec& workflow, const InfrastructureSpec& infrastructureSpec);
231231
static void generatePostProcessing(framework::WorkflowSpec& workflow, const InfrastructureSpec& infrastructureSpec);
232232
static void generateBookkeepingQualitySink(framework::WorkflowSpec& workflow, const InfrastructureSpec& infrastructureSpec);
233+
static void generateLateTasks(framework::WorkflowSpec& workflow, const InfrastructureSpec& infrastructureSpec);
233234
};
234235

235236
} // namespace core

Framework/include/QualityControl/InfrastructureSpec.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "QualityControl/AggregatorSpec.h"
2424
#include "QualityControl/PostProcessingTaskSpec.h"
2525
#include "QualityControl/ExternalTaskSpec.h"
26+
#include "QualityControl/LateTaskSpec.h"
2627

2728
#include <vector>
2829

@@ -37,6 +38,7 @@ struct InfrastructureSpec {
3738
std::vector<checker::AggregatorSpec> aggregators;
3839
std::vector<postprocessing::PostProcessingTaskSpec> postProcessingTasks;
3940
std::vector<ExternalTaskSpec> externalTasks;
41+
std::vector<LateTaskSpec> lateTasks;
4042
};
4143

4244
} // namespace o2::quality_control::core

Framework/include/QualityControl/InfrastructureSpecReader.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include "QualityControl/DataSourceSpec.h"
2323
#include "QualityControl/CheckSpec.h"
2424
#include "QualityControl/PostProcessingTaskSpec.h"
25+
#include "QualityControl/LateTaskSpec.h"
2526
#include "QualityControl/RecoRequestSpecs.h"
2627
#include <boost/property_tree/ptree_fwd.hpp>
2728

@@ -52,6 +53,8 @@ checker::AggregatorSpec readSpecEntry<checker::AggregatorSpec>(const std::string
5253
template <>
5354
postprocessing::PostProcessingTaskSpec readSpecEntry<postprocessing::PostProcessingTaskSpec>(const std::string& entryID, const boost::property_tree::ptree& entryTree, const boost::property_tree::ptree& wholeTree);
5455
template <>
56+
LateTaskSpec readSpecEntry<LateTaskSpec>(const std::string& entryID, const boost::property_tree::ptree& entryTree, const boost::property_tree::ptree& wholeTree);
57+
template <>
5558
ExternalTaskSpec readSpecEntry<ExternalTaskSpec>(const std::string& entryID, const boost::property_tree::ptree& entryTree, const boost::property_tree::ptree& wholeTree);
5659
template <>
5760
GRPGeomRequestSpec readSpecEntry<GRPGeomRequestSpec>(const std::string& entryID, const boost::property_tree::ptree& entryTree, const boost::property_tree::ptree& wholeTree);

0 commit comments

Comments
 (0)