23void customize(std::vector<ConfigParamSpec>& workflowOptions)
26 std::vector<ConfigParamSpec> options;
27 options.push_back(
ConfigParamSpec{
"input-data", VariantType::String,
"", {
"input data (obligatory)"}});
28 options.push_back(
ConfigParamSpec{
"onlyDet", VariantType::String,
"all", {
"list of dectors"}});
29 options.push_back(
ConfigParamSpec{
"raw-only-det", VariantType::String,
"none", {
"do not open non-raw channel for these detectors"}});
30 options.push_back(
ConfigParamSpec{
"non-raw-only-det", VariantType::String,
"none", {
"do not open raw channel for these detectors"}});
31 options.push_back(
ConfigParamSpec{
"loop", VariantType::Int, 0, {
"loop N times (-1 = infinite)"}});
32 options.push_back(
ConfigParamSpec{
"delay", VariantType::Float, 0.f, {
"delay in seconds between consecutive TFs sending"}});
33 options.push_back(
ConfigParamSpec{
"copy-cmd", VariantType::String,
"alien_cp ?src file://?dst", {
"copy command for remote files"}});
34 options.push_back(
ConfigParamSpec{
"tf-file-regex", VariantType::String,
".+\\.tf$", {
"regex string to identify TF files"}});
35 options.push_back(
ConfigParamSpec{
"remote-regex", VariantType::String,
"^(alien://|)/alice/data/.+", {
"regex string to identify remote files"}});
36 options.push_back(
ConfigParamSpec{
"tf-reader-verbosity", VariantType::Int, 0, {
"verbosity level (1 or 2: check RDH, print DH/DPH for 1st or all slices, >2 print RDH)"}});
37 options.push_back(
ConfigParamSpec{
"raw-channel-config", VariantType::String,
"", {
"optional raw FMQ channel for non-DPL output"}});
38 options.push_back(
ConfigParamSpec{
"send-diststf-0xccdb", VariantType::Bool,
false, {
"send explicit FLP/DISTSUBTIMEFRAME/0xccdb output"}});
39 options.push_back(
ConfigParamSpec{
"disable-dummy-output", VariantType::Bool,
false, {
"Disable sending empty output if corresponding data is not found in the data"}});
40 options.push_back(
ConfigParamSpec{
"configKeyValues", VariantType::String,
"", {
"semicolon separated key=value strings"}});
41 options.push_back(
ConfigParamSpec{
"timeframes-shm-limit", VariantType::String,
"0", {
"Minimum amount of SHM required in order to publish data"}});
42 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"}});
46 std::swap(workflowOptions, options);
58 auto detlistSelect = configcontext.
options().
get<std::string>(
"onlyDet");
59 if (detlistSelect ==
"all") {
77 rinp.
minSHM = std::stoul(configcontext.
options().
get<std::string>(
"timeframes-shm-limit"));
78 int rateLimitingIPCID = std::stoi(configcontext.
options().
get<std::string>(
"timeframes-rate-limit-ipcid"));
79 std::string chanFmt = configcontext.
options().
get<std::string>(
"metric-feedback-channel-format");
80 if (rateLimitingIPCID > -1 && !chanFmt.empty()) {
static void updateFromString(std::string const &)
static std::string getNames(mask_t mask, char delimiter=',')
static mask_t getMask(const std::string_view detList)
detector masks from any non-alpha-num delimiter-separated list (empty if NONE is supplied)
ConfigParamRegistry & options() const
T get(const char *key) const
Defining PrimaryVertex explicitly as messageable.
std::vector< DataProcessorSpec > WorkflowSpec
o2::framework::DataProcessorSpec getTFReaderSpec(o2::rawdd::TFReaderInp &rinp)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
static std::string defaultIPCFolder()
std::string metricChannel
std::string detListNonRawOnly
std::string rawChannelConfig
std::string detListRawOnly
WorkflowSpec defineDataProcessing(ConfigContext const &configcontext)
void customize(std::vector< ConfigParamSpec > &workflowOptions)