25void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
28 std::vector<o2::framework::ConfigParamSpec> options;
29 options.push_back(
ConfigParamSpec{
"input-conf", VariantType::String,
"", {
"configuration file with input (obligatory)"}});
30 options.push_back(
ConfigParamSpec{
"onlyDet", VariantType::String,
"all", {
"list of dectors"}});
31 options.push_back(
ConfigParamSpec{
"min-tf", VariantType::Int64, 0L, {
"min TF ID to process"}});
32 options.push_back(
ConfigParamSpec{
"max-tf", VariantType::Int64, 0xffffffffL, {
"max TF ID to process"}});
33 options.push_back(
ConfigParamSpec{
"run-number", VariantType::Int, 0, {
"impose run number"}});
34 options.push_back(
ConfigParamSpec{
"loop", VariantType::Int, 1, {
"loop N times (infinite for N<0)"}});
35 options.push_back(
ConfigParamSpec{
"delay", VariantType::Float, 0.f, {
"delay in seconds between consecutive TFs sending"}});
36 options.push_back(
ConfigParamSpec{
"buffer-size", VariantType::Int64, 5 * 1024L, {
"buffer size for files preprocessing"}});
37 options.push_back(
ConfigParamSpec{
"super-page-size", VariantType::Int64, 1024L * 1024L, {
"super-page size for FMQ parts definition"}});
38 options.push_back(
ConfigParamSpec{
"part-per-sp", VariantType::Bool,
false, {
"FMQ parts per superpage instead of per HBF"}});
39 options.push_back(
ConfigParamSpec{
"raw-channel-config", VariantType::String,
"", {
"optional raw FMQ channel for non-DPL output"}});
40 options.push_back(
ConfigParamSpec{
"cache-data", VariantType::Bool,
false, {
"cache data at 1st reading, may require excessive memory!!!"}});
41 options.push_back(
ConfigParamSpec{
"detect-tf0", VariantType::Bool,
false, {
"autodetect HBFUtils start Orbit/BC from 1st TF seen"}});
42 options.push_back(
ConfigParamSpec{
"calculate-tf-start", VariantType::Bool,
false, {
"calculate TF start instead of using TType"}});
43 options.push_back(
ConfigParamSpec{
"drop-tf", VariantType::String,
"none", {
"Drop each TFid%(1)==(2) of detector, e.g. ITS,2,4;TPC,4[,0];..."}});
44 options.push_back(
ConfigParamSpec{
"configKeyValues", VariantType::String,
"", {
"semicolon separated key=value strings"}});
45 options.push_back(
ConfigParamSpec{
"send-diststf-0xccdb", VariantType::Bool,
false, {
"send explicit FLP/DISTSUBTIMEFRAME/0xccdb output"}});
47 options.push_back(
ConfigParamSpec{
"timeframes-shm-limit", VariantType::String,
"0", {
"Minimum amount of SHM required in order to publish data"}});
48 options.push_back(
ConfigParamSpec{
"metric-feedback-channel-format", VariantType::String,
"name=metric-feedback,type=pull,method=connect,address=ipc://{}metric-feedback-{},transport=shmem,rateLogging=0", {
"format for the metric-feedback channel for TF rate limiting"}});
55 std::swap(workflowOptions, options);
72 rinp.
spSize = uint64_t(configcontext.
options().
get<int64_t>(
"super-page-size"));
89 rinp.
minSHM = std::stoul(configcontext.
options().
get<std::string>(
"timeframes-shm-limit"));
90 int rateLimitingIPCID = std::stoi(configcontext.
options().
get<std::string>(
"timeframes-rate-limit-ipcid"));
91 std::string chanFmt = configcontext.
options().
get<std::string>(
"metric-feedback-channel-format");
92 if (rateLimitingIPCID > -1 && !chanFmt.empty()) {
96 auto hbfini = configcontext.
options().
get<std::string>(
"hbfutils-config");
ConfigParamRegistry & options() const