artdaq  v3_07_01
artdaq.cc
1 #include "artdaq/Application/LoadParameterSet.hh"
2 #include "proto/artdaqapp.hh"
3 
4 int main(int argc, char* argv[])
5 {
6  struct Config
7  {
8  fhicl::TableFragment<artdaq::artdaqapp::Config> artdaqapp_config;
9  fhicl::Atom<std::string> app_type{fhicl::Name{"app_type"}, fhicl::Comment{"Type of the artdaq application to run"}, ""};
10  };
11 
12  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.");
13  artdaq::detail::TaskType task = artdaq::detail::UnknownTask;
14 
15  if (config_ps.has_key("app_type"))
16  {
17  task = artdaq::detail::StringToTaskType(config_ps.get<std::string>("app_type", ""));
18  if (task == artdaq::detail::TaskType::UnknownTask)
19  {
20  task = artdaq::detail::IntToTaskType(config_ps.get<int>("app_type"));
21  }
22  }
23  else if (config_ps.has_key("application_type"))
24  {
25  task = artdaq::detail::StringToTaskType(config_ps.get<std::string>("application_type", ""));
26  if (task == artdaq::detail::TaskType::UnknownTask)
27  {
28  task = artdaq::detail::IntToTaskType(config_ps.get<int>("application_type"));
29  }
30  }
31  artdaq::artdaqapp::runArtdaqApp(task, config_ps);
32 }
TaskType StringToTaskType(std::string const &task)
Convert a string to a TaskType (Used by artdaq.cc)
Definition: TaskType.hh:32
TaskType IntToTaskType(int const &task)
Convert an integer to the corresponding TaskType
Definition: TaskType.hh:53
static void runArtdaqApp(detail::TaskType task, fhicl::ParameterSet const &config_ps)
Run an artdaq Application
Definition: artdaqapp.hh:53
TaskType
The types of applications in artdaq.
Definition: TaskType.hh:17