30void customize(std::vector<ConfigParamSpec>& workflowOptions)
32 auto config =
ConfigParamSpec{
"tof-compressor-config", VariantType::String,
"x:TOF/RAWDATA", {
"TOF compressor workflow configuration"}};
33 auto outputDesc =
ConfigParamSpec{
"tof-compressor-output-desc", VariantType::String,
"CRAWDATA", {
"Output specs description string"}};
34 auto rdhVersion =
ConfigParamSpec{
"tof-compressor-rdh-version", VariantType::Int, o2::raw::RDHUtils::getVersion<o2::header::RAWDataHeader>(), {
"Raw Data Header version"}};
35 auto verbose =
ConfigParamSpec{
"tof-compressor-verbose", VariantType::Bool,
false, {
"Enable verbose compressor"}};
36 auto paranoid =
ConfigParamSpec{
"tof-compressor-paranoid", VariantType::Bool,
false, {
"Enable paranoid compressor"}};
37 auto ignoreStf =
ConfigParamSpec{
"ignore-dist-stf", VariantType::Bool,
false, {
"do not subscribe to FLP/DISTSUBTIMEFRAME/0 message (no lost TF recovery)"}};
38 auto payloadlim =
ConfigParamSpec{
"payload-limit", VariantType::Int64, -1ll, {
"Payload limit in Byte (-1 -> no limits)"}};
40 workflowOptions.push_back(config);
41 workflowOptions.push_back(outputDesc);
42 workflowOptions.push_back(rdhVersion);
43 workflowOptions.push_back(verbose);
44 workflowOptions.push_back(paranoid);
45 workflowOptions.push_back(ignoreStf);
46 workflowOptions.push_back(payloadlim);
47 workflowOptions.push_back(
ConfigParamSpec{
"configKeyValues", VariantType::String,
"", {
"Semicolon separated key=value strings"}});
56 auto config = cfgc.
options().
get<std::string>(
"tof-compressor-config");
58 auto rdhVersion = cfgc.
options().
get<
int>(
"tof-compressor-rdh-version");
59 auto verbose = cfgc.
options().
get<
bool>(
"tof-compressor-verbose");
60 auto paranoid = cfgc.
options().
get<
bool>(
"tof-compressor-paranoid");
61 auto ignoreStf = cfgc.
options().
get<
bool>(
"ignore-dist-stf");
62 auto payloadLim = cfgc.
options().
get<
long>(
"payload-limit");
64 std::vector<OutputSpec> outputs;
68 if (rdhVersion == o2::raw::RDHUtils::getVersion<o2::header::RAWDataHeader>()) {
69 if (!verbose && !paranoid) {
70 algoSpec =
AlgorithmSpec{adaptFromTask<o2::tof::CompressorTask<o2::header::RAWDataHeader, false, false>>(payloadLim)};
72 if (!verbose && paranoid) {
73 algoSpec =
AlgorithmSpec{adaptFromTask<o2::tof::CompressorTask<o2::header::RAWDataHeader, false, true>>(payloadLim)};
75 if (verbose && !paranoid) {
76 algoSpec =
AlgorithmSpec{adaptFromTask<o2::tof::CompressorTask<o2::header::RAWDataHeader, true, false>>(payloadLim)};
78 if (verbose && paranoid) {
79 algoSpec =
AlgorithmSpec{adaptFromTask<o2::tof::CompressorTask<o2::header::RAWDataHeader, true, true>>(payloadLim)};
100 std::stringstream ssconfig(config);
104 while (getline(ssconfig, iconfig,
',')) {
105 std::vector<InputSpec> inputs =
select(iconfig.c_str());
107 inputs.emplace_back(
"stdDist",
"FLP",
"DISTSUBTIMEFRAME", 0, Lifetime::Timeframe);
116 {
"tof-compressor-output-buffer-size", VariantType::Int, 1048576, {
"Encoder output buffer size (in bytes). Zero = automatic (careful)."}},
117 {
"tof-compressor-conet-mode", VariantType::Bool,
false, {
"Decoder CONET flag"}},
118 {
"tof-compressor-decoder-verbose", VariantType::Bool,
false, {
"Decoder verbose flag"}},
119 {
"tof-compressor-encoder-verbose", VariantType::Bool,
false, {
"Encoder verbose flag"}},
120 {
"tof-compressor-checker-verbose", VariantType::Bool,
false, {
"Checker verbose flag"}}}});
ConfigParamRegistry & options() const