DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
TCDataProcessor.hpp
Go to the documentation of this file.
1// *** this file is generated by oksdalgen, do not modify it ***
2
3#ifndef _TCDataProcessor_0_dunedaq__appmodel_0_appmodel_H_
4#define _TCDataProcessor_0_dunedaq__appmodel_0_appmodel_H_
5
6#include <stdint.h> // to define 64 bits types
7#include <iostream>
8#include <sstream>
9#include <string>
10#include <map>
11#include <vector>
12
14#include "conffwk/DalObject.hpp"
15
16 // include files for classes used in inheritance hierarchy
17
19
20 // forward declaration for classes used in relationships and algorithms
21
22namespace dunedaq {
23 namespace appmodel {
24 class ROIGroupConf;
25 class SourceIDConf;
26 class TCReadoutMap;
27 class TriggerBitword;
28 }
29}
30
31
32namespace dunedaq {
33 namespace appmodel {
34
39 class TCDataProcessor : public dunedaq::appmodel::DataProcessor {
40
42 friend class conffwk::DalObject;
43 friend class conffwk::DalFactory;
45
46 protected:
47
49 virtual ~TCDataProcessor() noexcept;
50 virtual void init(bool init_children);
51
52 public:
53
56 static const std::string& s_class_name;
57
58
68 virtual void print(unsigned int offset, bool print_header, std::ostream& s) const;
69
70
80 virtual std::vector<const dunedaq::conffwk::DalObject *> get(const std::string& name, bool upcast_unregistered = true) const;
81
82
83 protected:
84
85 bool get(const std::string& name, std::vector<const dunedaq::conffwk::DalObject *>& vec, bool upcast_unregistered, bool first_call) const;
86
87
88 private:
89
95 std::vector<uint32_t> m_ignore_tc;
100
101
102 public:
103
104 // attribute names
105
106 inline static const std::string s_merge_overlapping_tcs = "merge_overlapping_tcs";
107 inline static const std::string s_ignore_overlapping_tcs = "ignore_overlapping_tcs";
108 inline static const std::string s_td_out_of_timeout = "td_out_of_timeout";
109 inline static const std::string s_buffer_timeout = "buffer_timeout";
110 inline static const std::string s_td_readout_limit = "td_readout_limit";
111 inline static const std::string s_ignore_tc = "ignore_tc";
112
113 static const std::string& __get_merge_overlapping_tcs_str() noexcept { return s_merge_overlapping_tcs; }
114 static const std::string& __get_ignore_overlapping_tcs_str() noexcept { return s_ignore_overlapping_tcs; }
115 static const std::string& __get_td_out_of_timeout_str() noexcept { return s_td_out_of_timeout; }
116 static const std::string& __get_buffer_timeout_str() noexcept { return s_buffer_timeout; }
117 static const std::string& __get_td_readout_limit_str() noexcept { return s_td_readout_limit; }
118 static const std::string& __get_ignore_tc_str() noexcept { return s_ignore_tc; }
119
120
128 bool
130 {
131 std::lock_guard scoped_lock(m_mutex);
132 check();
133 check_init();
135 }
136
144 void
146 {
147 std::lock_guard scoped_lock(m_mutex);
148 check();
149 clear();
151 }
152
153
161 bool
163 {
164 std::lock_guard scoped_lock(m_mutex);
165 check();
166 check_init();
168 }
169
177 void
179 {
180 std::lock_guard scoped_lock(m_mutex);
181 check();
182 clear();
184 }
185
186
194 bool
196 {
197 std::lock_guard scoped_lock(m_mutex);
198 check();
199 check_init();
200 return m_td_out_of_timeout;
201 }
202
210 void
212 {
213 std::lock_guard scoped_lock(m_mutex);
214 check();
215 clear();
217 }
218
219
227 uint32_t
229 {
230 std::lock_guard scoped_lock(m_mutex);
231 check();
232 check_init();
233 return m_buffer_timeout;
234 }
235
243 void
244 set_buffer_timeout(uint32_t value)
245 {
246 std::lock_guard scoped_lock(m_mutex);
247 check();
248 clear();
250 }
251
252
260 uint32_t
262 {
263 std::lock_guard scoped_lock(m_mutex);
264 check();
265 check_init();
266 return m_td_readout_limit;
267 }
268
276 void
277 set_td_readout_limit(uint32_t value)
278 {
279 std::lock_guard scoped_lock(m_mutex);
280 check();
281 clear();
283 }
284
285
293 const std::vector<uint32_t>&
295 {
296 std::lock_guard scoped_lock(m_mutex);
297 check();
298 check_init();
299 return m_ignore_tc;
300 }
301
309 void
310 set_ignore_tc(const std::vector<uint32_t>& value)
311 {
312 std::lock_guard scoped_lock(m_mutex);
313 check();
314 clear();
316 }
317
318
319 // relationship names
320
321 inline static const std::string s_trigger_bitwords = "trigger_bitwords";
322 inline static const std::string s_roi_group_conf = "roi_group_conf";
323 inline static const std::string s_tc_readout_map = "tc_readout_map";
324 inline static const std::string s_mandatory_links = "mandatory_links";
325
326 static const std::string& __get_trigger_bitwords_str() noexcept { return s_trigger_bitwords; }
327 static const std::string& __get_roi_group_conf_str() noexcept { return s_roi_group_conf; }
328 static const std::string& __get_tc_readout_map_str() noexcept { return s_tc_readout_map; }
329 static const std::string& __get_mandatory_links_str() noexcept { return s_mandatory_links; }
330
331
339 const std::vector<const dunedaq::appmodel::TriggerBitword*>&
341 {
342 std::lock_guard scoped_lock(m_mutex);
343 check();
344 check_init();
345 return m_trigger_bitwords;
346 }
347
348
356 void
357 set_trigger_bitwords(const std::vector<const dunedaq::appmodel::TriggerBitword*>& value);
358
366 const std::vector<const dunedaq::appmodel::ROIGroupConf*>&
368 {
369 std::lock_guard scoped_lock(m_mutex);
370 check();
371 check_init();
372 return m_roi_group_conf;
373 }
374
375
383 void
384 set_roi_group_conf(const std::vector<const dunedaq::appmodel::ROIGroupConf*>& value);
385
393 const std::vector<const dunedaq::appmodel::TCReadoutMap*>&
395 {
396 std::lock_guard scoped_lock(m_mutex);
397 check();
398 check_init();
399 return m_tc_readout_map;
400 }
401
402
410 void
411 set_tc_readout_map(const std::vector<const dunedaq::appmodel::TCReadoutMap*>& value);
412
420 const std::vector<const dunedaq::appmodel::SourceIDConf*>&
422 {
423 std::lock_guard scoped_lock(m_mutex);
424 check();
425 check_init();
426 return m_mandatory_links;
427 }
428
429
437 void
438 set_mandatory_links(const std::vector<const dunedaq::appmodel::SourceIDConf*>& value);
439
440 };
441
442 // out stream operator
443
444 inline std::ostream& operator<<(std::ostream& s, const TCDataProcessor& obj)
445 {
446 return obj.print_object(s);
447 }
448
449 typedef std::vector<const TCDataProcessor*>::const_iterator TCDataProcessorIterator;
450
451 }
452}
453
454#endif
const std::vector< const dunedaq::appmodel::TriggerBitword * > & get_trigger_bitwords() const
Get "trigger_bitwords" relationship value. Optional dictionary of bitwords to use when forming trigge...
static const std::string s_buffer_timeout
void set_buffer_timeout(uint32_t value)
Set "buffer_timeout" attribute value. Timeout (buffer) to wait for new overlapping TCs before sending...
static const std::string & __get_roi_group_conf_str() noexcept
void set_roi_group_conf(const std::vector< const dunedaq::appmodel::ROIGroupConf * > &value)
Set "roi_group_conf" relationship value. The configuration (table) for ROI readout (currently not use...
bool get_ignore_overlapping_tcs() const
Get "ignore_overlapping_tcs" attribute value. Option to ignore consecutive overlapping TCs/pileup eve...
bool get_td_out_of_timeout() const
Get "td_out_of_timeout" attribute value. Option to drop TD if TC comes out of timeout window.
std::vector< const dunedaq::appmodel::TriggerBitword * > m_trigger_bitwords
static const std::string s_td_out_of_timeout
uint32_t get_td_readout_limit() const
Get "td_readout_limit" attribute value. Maximum allowed time length (in ticks) for a readout window o...
static const std::string & __get_merge_overlapping_tcs_str() noexcept
TCDataProcessor(conffwk::DalRegistry &db, const conffwk::ConfigObject &obj) noexcept
void set_tc_readout_map(const std::vector< const dunedaq::appmodel::TCReadoutMap * > &value)
Set "tc_readout_map" relationship value. The readout windows assigned to TDs in MLT,...
static const std::string & __get_ignore_overlapping_tcs_str() noexcept
static const std::string s_trigger_bitwords
static const std::string s_mandatory_links
const std::vector< const dunedaq::appmodel::SourceIDConf * > & get_mandatory_links() const
Get "mandatory_links" relationship value. Source Ids that will always be included in a trigger decisi...
static const std::string s_tc_readout_map
std::vector< uint32_t > m_ignore_tc
void set_td_out_of_timeout(bool value)
Set "td_out_of_timeout" attribute value. Option to drop TD if TC comes out of timeout window.
static const std::string s_ignore_tc
void set_trigger_bitwords(const std::vector< const dunedaq::appmodel::TriggerBitword * > &value)
Set "trigger_bitwords" relationship value. Optional dictionary of bitwords to use when forming trigge...
void set_ignore_tc(const std::vector< uint32_t > &value)
Set "ignore_tc" attribute value. Optional list of TC types to be ignored in MLT.
static const std::string & __get_mandatory_links_str() noexcept
static const std::string & __get_trigger_bitwords_str() noexcept
uint32_t get_buffer_timeout() const
Get "buffer_timeout" attribute value. Timeout (buffer) to wait for new overlapping TCs before sending...
const std::vector< const dunedaq::appmodel::TCReadoutMap * > & get_tc_readout_map() const
Get "tc_readout_map" relationship value. The readout windows assigned to TDs in MLT,...
static const std::string & __get_td_out_of_timeout_str() noexcept
void set_ignore_overlapping_tcs(bool value)
Set "ignore_overlapping_tcs" attribute value. Option to ignore consecutive overlapping TCs/pileup eve...
static const std::string s_td_readout_limit
void set_mandatory_links(const std::vector< const dunedaq::appmodel::SourceIDConf * > &value)
Set "mandatory_links" relationship value. Source Ids that will always be included in a trigger decisi...
void set_merge_overlapping_tcs(bool value)
Set "merge_overlapping_tcs" attribute value. Option to turn off merging of overlapping TCs when formi...
static const std::string s_merge_overlapping_tcs
static const std::string & __get_td_readout_limit_str() noexcept
const std::vector< const dunedaq::appmodel::ROIGroupConf * > & get_roi_group_conf() const
Get "roi_group_conf" relationship value. The configuration (table) for ROI readout (currently not use...
std::vector< const dunedaq::appmodel::TCReadoutMap * > m_tc_readout_map
virtual std::vector< const dunedaq::conffwk::DalObject * > get(const std::string &name, bool upcast_unregistered=true) const
Get values of relationships and results of some algorithms as a vector of dunedaq::conffwk::DalObject...
static const std::string & __get_buffer_timeout_str() noexcept
static const std::string s_ignore_overlapping_tcs
virtual void init(bool init_children)
static const std::string & __get_ignore_tc_str() noexcept
void set_td_readout_limit(uint32_t value)
Set "td_readout_limit" attribute value. Maximum allowed time length (in ticks) for a readout window o...
static const std::string & s_class_name
static const std::string s_roi_group_conf
std::vector< const dunedaq::appmodel::SourceIDConf * > m_mandatory_links
static const std::string & __get_tc_readout_map_str() noexcept
bool get_merge_overlapping_tcs() const
Get "merge_overlapping_tcs" attribute value. Option to turn off merging of overlapping TCs when formi...
std::vector< const dunedaq::appmodel::ROIGroupConf * > m_roi_group_conf
const std::vector< uint32_t > & get_ignore_tc() const
Get "ignore_tc" attribute value. Optional list of TC types to be ignored in MLT.
void set_by_val(const std::string &name, T value)
Set attribute value.
The base class for any generated DAL object.
Definition DalObject.hpp:45
std::mutex m_mutex
Used to protect changes of DAL object.
ConfigObject p_obj
Config object used by given template object.
void check_init() const
Check and initialize object if necessary.
DalRegistry: A registry of DalObjects It provides a single interface to create, cache and manage DalO...
conffwk entry point
double offset
std::ostream & operator<<(std::ostream &s, const AVXAbsRunSumProcessor &obj)
std::vector< constTCDataProcessor * >::const_iterator TCDataProcessorIterator
Including Qt Headers.