42void customize(std::vector<o2::framework::CallbacksPolicy>& policies)
47void customize(std::vector<o2::framework::CompletionPolicy>& policies)
54void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
57 std::vector<o2::framework::ConfigParamSpec> options{
61 {
"track-sources", VariantType::String, std::string{
GID::ALL}, {
"comma-separated list of sources to use: allowed ITS-TPC,TPC-TRD,TPC-TOF,TPC-TRD-TOF,ITS-TPC-TRD,ITS-TPC-TRD-TOF (all)"}},
65 {
"configKeyValues", VariantType::String,
"", {
"Semicolon separated key=value strings ..."}}};
67 std::swap(workflowOptions, options);
81 auto useMC = !configcontext.
options().
get<
bool>(
"disable-mc");
82 auto extratolerancetrd = configcontext.
options().
get<
float>(
"trd-extra-tolerance");
83 auto extratolerancetof = configcontext.
options().
get<
float>(
"tof-extra-tolerance");
84 auto disableRootIn = configcontext.
options().
get<
bool>(
"disable-root-input");
85 auto disableRootOut = configcontext.
options().
get<
bool>(
"disable-root-output");
87 bool writematching = 0;
90 LOG(
debug) <<
"HMP MATCHER WORKFLOW configuration";
91 LOG(
debug) <<
"HMP disable-mc = " << configcontext.
options().
get<std::string>(
"disable-mc");
92 LOG(
debug) <<
"HMP disable-root-input = " << disableRootIn;
93 LOG(
debug) <<
"HMP disable-root-output = " << disableRootOut;
104 mcmaskcl |= GID::getSourceMask(
GID::HMP);
109 if (configcontext.
options().
get<
bool>(
"combine-devices")) {
110 std::vector<DataProcessorSpec> unmerged;
111 specs.push_back(
specCombiner(
"HMP-readers", inputspecs, unmerged));
112 if (unmerged.size() > 0) {
113 LOG(fatal) <<
"Unexpected DPL device merge problem";
116 for (
auto& s : inputspecs) {
123 if (!disableRootOut) {
124 std::vector<DataProcessorSpec> writers;
127 if (configcontext.
options().
get<
bool>(
"combine-devices")) {
128 std::vector<DataProcessorSpec> unmerged;
129 specs.push_back(
specCombiner(
"HMP-writers", writers, unmerged));
130 if (unmerged.size() > 0) {
131 LOG(fatal) <<
"Unexpected DPL device merge problem";
134 for (
auto& s : writers) {
143 return std::move(specs);
Global index for barrel track: provides provenance (detectors combination), index in respective array...
Helper function to tokenize sequences and ranges of integral numbers.
DPL completion policy helper for TPC scetor data.
static void updateFromString(std::string const &)
Static class with identifiers, bitmasks and names for ALICE detectors.
ConfigParamRegistry & options() const
T get(const char *key) const
WorkflowSpec defineDataProcessing(ConfigContext const &configcontext)
void customize(std::vector< o2::framework::CallbacksPolicy > &policies)
Defining PrimaryVertex explicitly as messageable.
o2::framework::DataProcessorSpec specCombiner(std::string const &name, std::vector< DataProcessorSpec > const &speccollection, std::vector< DataProcessorSpec > &remaining)
std::vector< DataProcessorSpec > WorkflowSpec
framework::DataProcessorSpec getHMPMatcherSpec(o2::dataformats::GlobalTrackID::mask_t src, bool useMC, float extratolerancetrd, float extratolerancetof)
create a processor spec
o2::framework::DataProcessorSpec getHMPMatchedWriterSpec(bool useMC, const char *outdef="o2match_hmpid.root")
static CompletionPolicy consumeWhenAllOrdered(const char *name, CompletionPolicy::Matcher matcher)
as consumeWhenAll, but ensures that records are processed with incremental timeSlice (DataHeader::sta...
static void addNewTimeSliceCallback(std::vector< o2::framework::CallbacksPolicy > &policies)
static void addConfigOption(std::vector< o2::framework::ConfigParamSpec > &opts, const std::string &defOpt=std::string(o2::base::NameConf::DIGITIZATIONCONFIGFILE))
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"