22void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
24 std::vector<o2::framework::ConfigParamSpec> options{
25 {
"output-type", VariantType::String,
"unbinnedResid,trackParams", {
"Comma separated list of outputs (without spaces). Valid strings: unbinnedResid, binnedResid, trackParams"}},
26 {
"enable-track-input", VariantType::Bool,
false, {
"Whether to expect track data from interpolation workflow"}},
27 {
"enable-ctp", VariantType::Bool,
false, {
"Subscribe to lumi info from CTP"}},
28 {
"disable-root-input", VariantType::Bool,
false, {
"disable root-files input readers"}},
29 {
"configKeyValues", VariantType::String,
"", {
"Semicolon separated key=value strings ..."}}};
30 std::swap(workflowOptions, options);
40 auto trkInput = configcontext.
options().
get<
bool>(
"enable-track-input");
41 auto ctpInput = configcontext.
options().
get<
bool>(
"enable-ctp");
43 bool writeUnbinnedResiduals =
false;
44 bool writeBinnedResiduals =
false;
45 bool writeTrackData =
false;
46 auto outputType = configcontext.
options().
get<
string>(
"output-type");
47 std::vector<std::string> outputTypes;
49 while ((
pos = outputType.find(
",")) != std::string::npos) {
50 outputTypes.push_back(outputType.substr(0,
pos));
51 outputType.erase(0,
pos + 1);
53 outputTypes.push_back(outputType);
54 for (
const auto& out : outputTypes) {
55 if (out ==
"unbinnedResid") {
56 writeUnbinnedResiduals =
true;
57 }
else if (out ==
"binnedResid") {
58 writeBinnedResiduals =
true;
59 }
else if (out ==
"trackParams") {
61 LOG(error) <<
"Track output will be empty, because it is not configured as input";
63 writeTrackData =
true;
65 LOG(error) <<
"Invalid output requested: " << out;
70 if (!configcontext.
options().
get<
bool>(
"disable-root-input")) {
73 specs.emplace_back(getTPCResidualAggregatorSpec(trkInput, ctpInput, writeUnbinnedResiduals, writeBinnedResiduals, writeTrackData));
Collects local TPC cluster residuals from EPNs.
DPL device for collecting and binning TPC cluster residuals.
static void updateFromString(std::string const &)
ConfigParamRegistry & options() const
T get(const char *key) const
Defining PrimaryVertex explicitly as messageable.
std::vector< DataProcessorSpec > WorkflowSpec
framework::DataProcessorSpec getUnbinnedTPCResidualsReaderSpec(bool trkInput)
read unbinned TPC residuals and reference tracks from a root file
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"
void customize(std::vector< o2::framework::ConfigParamSpec > &workflowOptions)
WorkflowSpec defineDataProcessing(ConfigContext const &configcontext)