37void customize(std::vector<o2::framework::CallbacksPolicy>& policies)
42void customize(std::vector<o2::framework::CompletionPolicy>& policies)
49void customize(std::vector<ConfigParamSpec>& workflowOptions)
52 std::vector<o2::framework::ConfigParamSpec> options{
56 {
"vertexing-sources", VariantType::String, std::string{
GID::ALL}, {
"comma-separated list of sources to use in vertexing"}},
57 {
"skip", VariantType::Bool,
false, {
"pass-through mode (skip vertexing)"}},
59 {
"vertex-track-matching-sources", VariantType::String, std::string{
GID::ALL}, {
"comma-separated list of sources to use in vertex-track associations or \"none\" to disable matching"}},
61 {
"configKeyValues", VariantType::String,
"", {
"Semicolon separated key=value strings ..."}},
64 std::swap(workflowOptions, options);
76 GID::mask_t allowedSourcesVT =
GID::getSourcesMask(
"ITS,MFT,TPC,MCH,MCH-MID,MFT-MCH,ITS-TPC,TPC-TOF,TPC-TRD,ITS-TPC-TRD,TPC-TRD-TOF,ITS-TPC-TOF,ITS-TPC-TRD-TOF,EMC,PHS,CPV,FT0,FV0,FDD");
83 auto useMC = !configcontext.
options().
get<
bool>(
"disable-mc");
84 auto disableRootOut = configcontext.
options().
get<
bool>(
"disable-root-output");
85 auto validateWithFT0 = configcontext.
options().
get<
bool>(
"validate-with-ft0");
86 auto skip = configcontext.
options().
get<
bool>(
"skip");
87 auto useGeom = configcontext.
options().
get<
bool>(
"use-full-geometry");
91 if (validateWithFT0) {
92 srcPV |= GID::getSourceMask(
GID::FT0);
100 auto srcMtc = srcComb;
106 if (configcontext.
options().
get<
bool>(
"combine-source-devices")) {
107 std::vector<DataProcessorSpec> unmerged;
108 specs.push_back(
specCombiner(
"PV-Input-Reader", inputspecs, unmerged));
114 if (unmerged.size() > 0) {
115 LOG(fatal) <<
"unexpected DPL merge error";
118 for (
auto& s : inputspecs) {
123 if (!disableRootOut) {
128 if (srcPV.any() && !configcontext.
options().
get<
bool>(
"disable-root-output")) {
131 return std::move(specs);
Global index for barrel track: provides provenance (detectors combination), index in respective array...
static void writeINI(std::string const &filename, std::string const &keyOnly="")
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
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 getPrimaryVertexWriterSpec(bool disableMatching, bool useMC)
create a processor spec
o2::framework::DataProcessorSpec getPrimaryVertexingSpec(o2::dataformats::GlobalTrackID::mask_t src, bool skip, bool validateWithFT0, bool useMC, bool useGeom)
create a processor spec
o2::framework::DataProcessorSpec getVertexTrackMatcherSpec(o2::dataformats::GlobalTrackID::mask_t src)
create a processor spec
WorkflowSpec defineDataProcessing(ConfigContext const &configcontext)
void customize(std::vector< o2::framework::CallbacksPolicy > &policies)
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"