artdaq  v3_07_01
ArtConfig.hh
1 #include "art/Framework/Core/OutputModule.h"
2 #include "art/Framework/IO/ClosingCriteria.h"
3 #include "fhiclcpp/types/Atom.h"
4 #include "fhiclcpp/types/OptionalAtom.h"
5 #include "fhiclcpp/types/OptionalTable.h"
6 #include "fhiclcpp/types/Table.h"
7 
8 namespace art {
13 {
15  fhicl::Atom<bool> errorOnFailureToPut{fhicl::Name{"errorOnFailureToPut"}, fhicl::Comment{"This parameter is necessary for correct function of artdaq. Do not modify."}, false};
16 };
21 {
22  fhicl::Table<ServicesSchedulerConfig> scheduler{fhicl::Name{"scheduler"}};
23 };
24 
26 {};
28 {};
30 {};
31 
36 {
37  fhicl::Table<AnalyzersConfig> analyzers{fhicl::Name{"analyzers"}};
38  fhicl::Table<ProducersConfig> producers{fhicl::Name{"producers"}};
39  fhicl::Table<FiltersConfig> filters{fhicl::Name{"filters"}};
40  fhicl::Sequence<std::string> my_output_modules{fhicl::Name{"my_output_modules"}, fhicl::Comment{"Output modules (configured in the outputs block) to use"}};
42 };
43 
48 {
49  using Name = fhicl::Name;
50  using Comment = fhicl::Comment;
51  template<typename T>
53  using Atom = fhicl::Atom<T>;
55  template<typename T>
56  using OptionalAtom = fhicl::OptionalAtom<T>;
57 
58  fhicl::TableFragment<art::OutputModule::Config> omConfig;
59  Atom<std::string> catalog{Name("catalog"), ""};
61  Atom<bool> dropAllSubRuns{Name("dropAllSubRuns"), false};
63  Atom<std::string> tmpDir{Name("tmpDir"), "/tmp"};
64  Atom<int> compressionLevel{Name("compressionLevel"), 7};
65  Atom<int64_t> saveMemoryObjectThreshold{Name("saveMemoryObjectThreshold"), -1l};
66  Atom<int64_t> treeMaxVirtualSize{Name("treeMaxVirtualSize"), -1};
67  Atom<int> splitLevel{Name("splitLevel"), 99};
68  Atom<int> basketSize{Name("basketSize"), 16384};
69  Atom<bool> dropMetaDataForDroppedData{Name("dropMetaDataForDroppedData"), false};
70  Atom<std::string> dropMetaData{Name("dropMetaData"), "NONE"};
71  Atom<bool> writeParameterSets{Name("writeParameterSets"), true};
72  fhicl::Table<ClosingCriteria::Config> fileProperties{Name("fileProperties")};
73 
77  struct KeysToIgnore
78  {
83  std::set<std::string> operator()() const
84  {
85  std::set<std::string> keys{art::OutputModule::Config::KeysToIgnore::get()};
86  keys.insert("results");
87  return keys;
88  }
89  };
90 };
91 
96 {
97  fhicl::OptionalTable<art::OutputModule::Config> rootNetOutput{fhicl::Name{"rootNetOutput"}};
98  fhicl::OptionalTable<RootOutputConfig> normalOutput{fhicl::Name{"normalOutput"}};
99  fhicl::OptionalTable<RootOutputConfig> rootDAQOutFile{fhicl::Name{"rootDAQOutFile"}};
100 };
101 
106 {
108  fhicl::Atom<std::string> module_type{fhicl::Name{"module_type"}, fhicl::Comment{"Module type of source. Should be \"RawInput\", \"NetMonInput\", or an experiment-defined input type (e.g. \"DemoInput\")"}};
109 };
110 
114 struct Config
115 {
116  fhicl::Table<art::ServicesConfig> services{fhicl::Name{"services"}};
117  fhicl::Table<art::PhysicsConfig> physics{fhicl::Name{"physics"}};
118  fhicl::Table<art::OutputsConfig> outputs{fhicl::Name{"outputs"}};
119  fhicl::Table<art::SourceConfig> source{fhicl::Name{"source"}};
120  fhicl::Atom<std::string> process_name{fhicl::Name{"process_name"}, fhicl::Comment{"Name of this art processing job"}, "DAQ"};
122 };
123 } // namespace art
Atom< bool > dropAllSubRuns
Whether to drop all subruns ???
Definition: ArtConfig.hh:61
Atom< int64_t > saveMemoryObjectThreshold
???
Definition: ArtConfig.hh:65
fhicl::Table< FiltersConfig > filters
Definition: ArtConfig.hh:39
fhicl::TableFragment< art::OutputModule::Config > omConfig
Configuration common to all OutputModules.
Definition: ArtConfig.hh:58
Atom< int > splitLevel
???
Definition: ArtConfig.hh:67
fhicl::OptionalAtom< T > OptionalAtom
Optional Configuration Parameter.
Definition: ArtConfig.hh:56
fhicl::Atom< T > Atom
Configuration Parameter.
Definition: ArtConfig.hh:53
Atom< int > basketSize
???
Definition: ArtConfig.hh:68
fhicl::Sequence< std::string > my_output_modules
Output modules (configured in the outputs block) to use.
Definition: ArtConfig.hh:41
Configuration for the source block of artdaq art processes
Definition: ArtConfig.hh:105
Atom< bool > dropMetaDataForDroppedData
???
Definition: ArtConfig.hh:69
Configuration of the services.scheduler block for artdaq art processes
Definition: ArtConfig.hh:12
fhicl::Table< art::PhysicsConfig > physics
Physics block.
Definition: ArtConfig.hh:117
Artdaq does not provide any producers.
Definition: ArtConfig.hh:27
Required configuration for art processes started by artdaq, with artdaq-specific defaults where appli...
Definition: ArtConfig.hh:114
Atom< int > compressionLevel
Compression level to use. artdaq recommends &lt;= 3.
Definition: ArtConfig.hh:64
fhicl::OptionalTable< RootOutputConfig > normalOutput
Normal art/ROOT output.
Definition: ArtConfig.hh:98
fhicl::Name Name
Parameter Name.
Definition: ArtConfig.hh:49
fhicl::Table< art::OutputsConfig > outputs
Outputs block.
Definition: ArtConfig.hh:118
Confgiguration for ROOT output modules
Definition: ArtConfig.hh:47
Atom< std::string > dropMetaData
Which metadata to drop (Default: &quot;NONE&quot;)
Definition: ArtConfig.hh:70
Configuration for the outputs block of artdaq art processes
Definition: ArtConfig.hh:95
fhicl::Atom< std::string > process_name
&quot;process_name&quot; (Default: &quot;DAQ&quot;): Name of this art processing job
Definition: ArtConfig.hh:121
fhicl::OptionalTable< art::OutputModule::Config > rootNetOutput
For transferring data from EventBuilders to DataLoggers.
Definition: ArtConfig.hh:97
Configuration of the physics block for artdaq art processes
Definition: ArtConfig.hh:35
fhicl::Table< ClosingCriteria::Config > fileProperties
When should the file be closed.
Definition: ArtConfig.hh:72
fhicl::Atom< bool > errorOnFailureToPut
&quot;errorOnFailureToPut&quot; (Default: false): This parameter is necessary for correct function of artdaq...
Definition: ArtConfig.hh:15
fhicl::Table< AnalyzersConfig > analyzers
Analyzer module configuration.
Definition: ArtConfig.hh:37
fhicl::Table< ServicesSchedulerConfig > scheduler
Artdaq requires a services.scheduler parameter. See art::ServicesSchedulerConfig. ...
Definition: ArtConfig.hh:22
Atom< int64_t > treeMaxVirtualSize
???
Definition: ArtConfig.hh:66
Configuration of the services block for artdaq art processes
Definition: ArtConfig.hh:20
Atom< bool > writeParameterSets
Write art ParameterSet to output file (Default: true)
Definition: ArtConfig.hh:71
fhicl::Table< art::SourceConfig > source
Definition: ArtConfig.hh:119
fhicl::Atom< std::string > module_type
&quot;module_type&quot;: Module type of source. Should be &quot;RawInput&quot;, &quot;NetMonInput&quot;, or an experiment-defined i...
Definition: ArtConfig.hh:108
fhicl::Table< ProducersConfig > producers
Producer module configuration.
Definition: ArtConfig.hh:38
OptionalAtom< bool > dropAllEvents
Whether to drop all events ???
Definition: ArtConfig.hh:60
std::set< std::string > operator()() const
Get the keys to ignore
Definition: ArtConfig.hh:83
OptionalAtom< bool > fastCloning
Whether to try to use fastCloning on the file.
Definition: ArtConfig.hh:62
fhicl::Table< art::ServicesConfig > services
Services block.
Definition: ArtConfig.hh:116
Atom< std::string > tmpDir
Temporary directory.
Definition: ArtConfig.hh:63
fhicl::OptionalTable< RootOutputConfig > rootDAQOutFile
art/ROOT output where the filename can be specified at initialization (e.g. to /dev/null), for testing
Definition: ArtConfig.hh:99
fhicl::Comment Comment
Definition: ArtConfig.hh:50
Atom< std::string > catalog
???
Definition: ArtConfig.hh:59
These keys should be ignored by the configuration validation processor
Definition: ArtConfig.hh:77