13#include <unordered_map>
16#include <fairlogger/Logger.h>
41using BranchDefinition = framework::MakeRootTreeWriterSpec::BranchDefinition<T>;
46namespace reco_workflow
49const std::unordered_map<std::string, InputType>
InputMap{
54const std::unordered_map<std::string, OutputType>
OutputMap{
62 std::string
const& cfgInput,
63 std::string
const& cfgOutput,
73 }
catch (std::out_of_range&) {
74 throw std::invalid_argument(std::string(
"invalid input type: ") + cfgInput);
76 std::vector<OutputType> outputTypes;
78 outputTypes = RangeTokenizer::tokenize<OutputType>(cfgOutput, [](std::string
const& token) {
return OutputMap.at(token); });
79 }
catch (std::out_of_range&) {
80 throw std::invalid_argument(std::string(
"invalid output type: ") + cfgOutput);
83 return std::find(outputTypes.begin(), outputTypes.end(),
type) != outputTypes.end();
94 if (!disableRootOut) {
101 if (!disableRootOut) {
109 if (!disableRootInp) {
116 if (!disableRootOut) {
122 if (!disableRootOut) {
131 if (!disableRootInp) {
138 if (!disableRootOut) {
Definition of a container to keep Monte Carlo truth external to simulation objects.
Configurable generator for RootTreeWriter processor spec.
Helper function to tokenize sequences and ranges of integral numbers.
MakeRootTreeWriterSpec::BranchDefinition< T > BranchDefinition
GLint GLint GLsizei GLint GLenum GLenum type
std::vector< DataProcessorSpec > WorkflowSpec
const std::unordered_map< std::string, InputType > InputMap
framework::WorkflowSpec getWorkflow(bool disableRootInp, bool disableRootOut, bool propagateMC=true, std::string const &cfgInput="hits", std::string const &cfgOutput="clusters", bool fullCluOut=false, int flpId=0, bool defBadMap=false, bool skipL1phase=true)
create the workflow for PHOS reconstruction
framework::DataProcessorSpec getClusterizerSpec(bool propagateMC, bool fillFullClu, bool defBadMap=false)
Creating DataProcessorSpec for the PHOS Clusterizer Spec.
const std::unordered_map< std::string, OutputType > OutputMap
framework::DataProcessorSpec getRawToCellConverterSpec(unsigned int flpId)
Creating DataProcessorSpec for the PHOS Cell Converter Spec.
framework::DataProcessorSpec getCellClusterizerSpec(bool propagateMC, bool fillFullClu, bool defBadMap=false, bool skipL1phase=true)
InputType
define input and output types of the workflow
framework::DataProcessorSpec getCellConverterSpec(bool propagateMC, bool defBadMap)
Creating DataProcessorSpec for the PHOS Cell Converter Spec.
framework::DataProcessorSpec getPHOSDigitReaderSpec(bool useMC=true)
framework::DataProcessorSpec getClusterWriterSpec(bool useMC)
write PHOS clusters to ROOT file
framework::DataProcessorSpec getCellWriterSpec(bool useMC)
framework::DataProcessorSpec getPHOSCellReaderSpec(bool useMC=true)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...