00001 #include "proto/artdaqapp.hh" 00002 #include "artdaq/Application/LoadParameterSet.hh" 00003 00004 int main(int argc, char* argv[]) 00005 { 00006 struct Config 00007 { 00008 fhicl::TableFragment<artdaq::artdaqapp::Config> artdaqapp_config; 00009 fhicl::Atom<std::string> app_type{ fhicl::Name{"app_type"}, fhicl::Comment{"Type of the artdaq application to run"}, "" }; 00010 }; 00011 00012 fhicl::ParameterSet config_ps = LoadParameterSet<Config>(argc, argv, "artdaq", "This meta-application may be configured to run any of the core artdaq processes through the \"app_type\" configuration parameter."); 00013 artdaq::detail::TaskType task = artdaq::detail::UnknownTask; 00014 00015 if (config_ps.has_key("app_type")) 00016 { 00017 task = artdaq::detail::StringToTaskType(config_ps.get<std::string>("app_type", "")); 00018 if (task == artdaq::detail::TaskType::UnknownTask) { 00019 task = artdaq::detail::IntToTaskType(config_ps.get<int>("app_type")); 00020 } 00021 } 00022 else if (config_ps.has_key("application_type")) 00023 { 00024 task = artdaq::detail::StringToTaskType(config_ps.get<std::string>("application_type", "")); 00025 if (task == artdaq::detail::TaskType::UnknownTask) { 00026 task = artdaq::detail::IntToTaskType(config_ps.get<int>("application_type")); 00027 } 00028 } 00029 artdaq::artdaqapp::runArtdaqApp(task, config_ps); 00030 }