20#if defined(__has_include)
21#if defined(__linux__) && (defined(__x86_64) || defined(__x86_64__)) && __has_include(<emmintrin.h>) && __has_include(<immintrin.h>) && defined(FT0_DECODER_AVX512)
22#define FT0_NEW_DECOER_ON
30void customize(std::vector<o2::framework::CompletionPolicy>& policies)
36void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
39 workflowOptions.push_back(
43 {
"in case of extended TCM mode (1 header + 1 TCMdata + 8 "
44 "TCMdataExtended)"}});
46 workflowOptions.push_back(
50 {
"enable dumping of event blocks at reader side"}});
51 workflowOptions.push_back(
55 {
"disable root-files output writers"}});
56 workflowOptions.push_back(
60 {
"Semicolon separated key=value strings"}});
61 workflowOptions.push_back(
65 {
"do not subscribe to FLP/DISTSUBTIMEFRAME/0 message (no lost TF recovery)"}});
66 workflowOptions.push_back(
70 {
"SUB_RAWDATA DPL channel will be used as input, in case of dispatcher usage"}});
71 workflowOptions.push_back(
75 {
"Disable DPL CCDB fetcher, channel map will be uploaded during initialization by taking last entry in CCDB"}});
76#if defined(FT0_NEW_DECOER_ON)
77 workflowOptions.push_back(
81 {
"New decoder which uses AVX-512 CPU instractions"}});
91 LOG(info) <<
"WorkflowSpec defineDataProcessing";
92 auto dumpReader = configcontext.
options().
get<
bool>(
"dump-blocks-reader");
93 auto isExtendedMode = configcontext.
options().
get<
bool>(
"tcm-extended-mode");
94 auto disableRootOut = configcontext.
options().
get<
bool>(
"disable-root-output");
95 auto askSTFDist = !configcontext.
options().
get<
bool>(
"ignore-dist-stf");
96 const auto isSubSampled = configcontext.
options().
get<
bool>(
"input-sub-sampled");
97 const auto disableDplCcdbFetcher = configcontext.
options().
get<
bool>(
"disable-dpl-ccdb-fetcher");
98 bool isNewDecoder =
false;
99#if defined(FT0_NEW_DECOER_ON)
100 isNewDecoder = configcontext.
options().
get<
bool>(
"new-decoder");
103 LOG(info) <<
"WorkflowSpec FLPWorkflow";
114 if (isExtendedMode) {
116 if (!disableRootOut) {
121 if (!disableRootOut) {
126#if defined(FT0_NEW_DECOER_ON)
127 specs.emplace_back(o2::ft0::getFT0DataDecoderDPLSpec(askSTFDist));
130 return std::move(specs);
Definition of a container to keep Monte Carlo truth external to simulation objects.
static void updateFromString(std::string const &)
ConfigParamRegistry & options() const
T get(const char *key) const
WorkflowSpec defineDataProcessing(ConfigContext const &configcontext)
void customize(std::vector< o2::framework::CompletionPolicy > &policies)
constexpr o2::header::DataOrigin gDataOriginFT0
framework::DataProcessorSpec getFITDataReaderDPLSpec(const RawReaderType &rawReader, bool askSTFDist, bool isSubSampled, bool disableDplCcdbFetcher)
Defining PrimaryVertex explicitly as messageable.
std::vector< DataProcessorSpec > WorkflowSpec
static CompletionPolicy consumeWhenAllOrdered(const char *name, CompletionPolicy::Matcher matcher)
as consumeWhenAll, but ensures that records are processed with incremental timeSlice (DataHeader::sta...
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"