23void customize(std::vector<ConfigParamSpec>& workflowOptions)
27 std::vector<ConfigParamSpec> options{
28 {
"configFile", VariantType::String,
"", {
"configuration file for configurable parameters"}},
29 {
"rangeIDC", VariantType::Int, 200, {
"Number of 1D-IDCs which will be used for the calculation of the fourier coefficients."}},
30 {
"nFourierCoeff", VariantType::Int, 60, {
"Number of fourier coefficients (real+imag) which will be stored in the CCDB. The maximum can be 'rangeIDC + 2'."}},
31 {
"use-naive-fft", VariantType::Bool,
false, {
"using naive fourier transform (true) or FFTW (false)"}},
32 {
"configKeyValues", VariantType::String,
"", {
"Semicolon separated key=value strings"}},
33 {
"crus", VariantType::String, cruDefault.c_str(), {
"List of CRUs, comma separated ranges, e.g. 0-3,7,9-15"}}};
35 std::swap(workflowOptions, options);
49 const auto tpcCRUs = o2::RangeTokenizer::tokenize<int>(config.
options().
get<std::string>(
"crus"));
50 const auto nCRUs = tpcCRUs.size();
51 const bool fft = config.
options().
get<
bool>(
"use-naive-fft");
52 const auto rangeIDC =
static_cast<unsigned int>(config.
options().
get<
int>(
"rangeIDC"));
53 const auto nFourierCoeff = std::clamp(
static_cast<unsigned int>(config.
options().
get<
int>(
"nFourierCoeff")),
static_cast<unsigned int>(0), rangeIDC + 2);
57 const auto first = tpcCRUs.begin();
58 const auto last = std::min(tpcCRUs.end(),
first + nCRUs);
59 const std::vector<uint32_t> rangeCRUs(
first, last);
Helper function to tokenize sequences and ranges of integral numbers.
static void writeINI(std::string const &filename, std::string const &keyOnly="")
static void updateFromFile(std::string const &, std::string const ¶msList="", bool unchangedOnly=false)
static void updateFromString(std::string const &)
ConfigParamRegistry & options() const
T get(const char *key) const
Defining PrimaryVertex explicitly as messageable.
std::vector< DataProcessorSpec > WorkflowSpec
Global TPC definitions and constants.
DataProcessorSpec getTPCFourierTransformEPNSpec(const std::vector< uint32_t > &crus, const unsigned int rangeIDC, const unsigned int nFourierCoefficientsSend)
std::string to_string(gsl::span< T, Size > span)