DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
fdreadoutlibs
include
fdreadoutlibs
daphne
DAPHNEFrameProcessor.hpp
Go to the documentation of this file.
1
8
#ifndef FDREADOUTLIBS_INCLUDE_FDREADOUTLIBS_DAPHNE_DAPHNEFRAMEPROCESSOR_HPP_
9
#define FDREADOUTLIBS_INCLUDE_FDREADOUTLIBS_DAPHNE_DAPHNEFRAMEPROCESSOR_HPP_
10
11
#include "
logging/Logging.hpp
"
12
13
#include "
datahandlinglibs/DataHandlingIssues.hpp
"
14
#include "
datahandlinglibs/FrameErrorRegistry.hpp
"
15
#include "
datahandlinglibs/ReadoutLogging.hpp
"
16
17
#include "
iomanager/IOManager.hpp
"
18
#include "
iomanager/Sender.hpp
"
19
20
#include "
datahandlinglibs/models/TaskRawDataProcessorModel.hpp
"
21
#include "
fdreadoutlibs/FDReadoutIssues.hpp
"
22
#include "
trigger/TriggerPrimitiveTypeAdapter.hpp
"
23
24
#include "
fddetdataformats/DAPHNEFrame.hpp
"
25
#include "
fdreadoutlibs/DAPHNESuperChunkTypeAdapter.hpp
"
26
#include "
trgdataformats/TriggerPrimitive.hpp
"
27
28
#include "
appmodel/PDSRawDataProcessor.hpp
"
29
#include "
appmodel/TPCRawDataProcessor.hpp
"
30
31
#include "
detchannelmaps/PDSChannelMap.hpp
"
32
33
#include "
appmodel/DataHandlerModule.hpp
"
34
#include "
confmodel/Connection.hpp
"
35
36
#include <atomic>
37
#include <functional>
38
#include <memory>
39
#include <string>
40
41
using
dunedaq::datahandlinglibs::logging::TLVL_BOOKKEEPING
;
42
43
namespace
dunedaq
{
44
namespace
fdreadoutlibs
{
45
46
class
DAPHNEFrameProcessor
:
public
datahandlinglibs::TaskRawDataProcessorModel
<types::DAPHNESuperChunkTypeAdapter>
47
{
48
49
public
:
50
using
inherited
=
datahandlinglibs::TaskRawDataProcessorModel<types::DAPHNESuperChunkTypeAdapter>
;
51
using
frameptr
=
types::DAPHNESuperChunkTypeAdapter
*;
52
using
daphneframeptr
=
dunedaq::fddetdataformats::DAPHNEFrame
*;
53
using
timestamp_t
= std::uint64_t;
// NOLINT(build/unsigned)
54
using
constframeptr
=
const
types::DAPHNESuperChunkTypeAdapter
*;
55
56
// Constructor
57
explicit
DAPHNEFrameProcessor
(std::unique_ptr<datahandlinglibs::FrameErrorRegistry>& error_registry,
58
bool
post_processing_enabled)
59
:
datahandlinglibs
::
TaskRawDataProcessorModel
<
types
::DAPHNESuperChunkTypeAdapter>(error_registry,
60
post_processing_enabled)
61
{
62
}
63
64
// Override config for pipeline setup
65
void
conf
(
const
appmodel::DataHandlerModule
*
conf
)
override
;
66
67
void
start
(
const
appfwk::DAQModule::CommandData_t& args)
override
;
68
void
stop
(
const
appfwk::DAQModule::CommandData_t& args)
override
;
69
70
protected
:
71
virtual
void
generate_opmon_data
()
override
;
72
76
void
timestamp_check
(
frameptr
/*fp*/
);
77
81
void
frame_error_check
(
frameptr
/*fp*/
);
82
83
// Internals
84
timestamp_t
m_previous_ts
= 0;
85
timestamp_t
m_current_ts
= 0;
86
bool
m_first_ts_fake
=
true
;
87
bool
m_first_ts_missmatch
=
true
;
88
bool
m_problem_reported
=
false
;
89
std::atomic<int>
m_ts_error_ctr
{ 0 };
90
91
void
extract_tps
(
constframeptr
fp);
92
dunedaq::trgdataformats::TriggerPrimitive
peak_to_tp
(
dunedaq::fddetdataformats::DAPHNEFrame
& frame,
int
i);
93
94
private
:
95
// PDSChannelMap
96
std::shared_ptr<detchannelmaps::PDSChannelMap>
m_channel_map
;
97
std::vector<std::pair<trgdataformats::channel_t, int16_t>>
m_channel_plane_numbers
;
98
99
uint32_t
m_det_id
;
// NOLINT(build/unsigned)
100
uint32_t
m_crate_id
;
// NOLINT(build/unsigned)
101
uint32_t
m_slot_id
;
// NOLINT(build/unsigned)
102
uint32_t
m_stream_id
;
// NOLINT(build/unsigned)
103
104
std::set<unsigned int>
m_channel_mask_set
;
105
uint32_t
m_def_adc_intg_thresh
= 0;
106
107
std::shared_ptr<iomanager::SenderConcept<std::vector<trigger::TriggerPrimitiveTypeAdapter>>>
m_tp_sink
;
108
109
std::atomic<uint64_t>
m_num_new_tps
{ 0 };
// NOLINT(build/unsigned)
110
std::atomic<uint64_t>
m_tps_suppressed_too_long
{ 0 };
111
std::atomic<uint64_t>
m_tps_send_failed
{ 0 };
112
std::atomic<uint64_t>
m_frame_counter
{ 0 };
113
114
std::chrono::time_point<std::chrono::high_resolution_clock>
m_t0
;
115
};
116
117
}
// namespace fdreadoutlibs
118
}
// namespace dunedaq
119
120
#endif
// FDREADOUTLIBS_INCLUDE_FDREADOUTLIBS_DAPHNE_DAPHNEFRAMEPROCESSOR_HPP_
DAPHNEFrame.hpp
DAPHNESuperChunkTypeAdapter.hpp
DataHandlingIssues.hpp
FDReadoutIssues.hpp
FrameErrorRegistry.hpp
IOManager.hpp
PDSChannelMap.hpp
ReadoutLogging.hpp
TaskRawDataProcessorModel.hpp
TriggerPrimitiveTypeAdapter.hpp
dunedaq::appmodel::DataHandlerModule
Definition
DataHandlerModule.hpp:36
dunedaq::datahandlinglibs::TaskRawDataProcessorModel
Definition
TaskRawDataProcessorModel.hpp:47
dunedaq::datahandlinglibs::TaskRawDataProcessorModel< types::DAPHNESuperChunkTypeAdapter >::TaskRawDataProcessorModel
TaskRawDataProcessorModel(std::unique_ptr< FrameErrorRegistry > &error_registry, bool post_processing_enabled)
Definition
TaskRawDataProcessorModel.hpp:50
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_problem_reported
bool m_problem_reported
Definition
DAPHNEFrameProcessor.hpp:88
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::inherited
datahandlinglibs::TaskRawDataProcessorModel< types::DAPHNESuperChunkTypeAdapter > inherited
Definition
DAPHNEFrameProcessor.hpp:50
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::timestamp_check
void timestamp_check(frameptr)
Definition
DAPHNEFrameProcessor.cpp:116
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_det_id
uint32_t m_det_id
Definition
DAPHNEFrameProcessor.hpp:99
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_slot_id
uint32_t m_slot_id
Definition
DAPHNEFrameProcessor.hpp:101
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_channel_map
std::shared_ptr< detchannelmaps::PDSChannelMap > m_channel_map
Definition
DAPHNEFrameProcessor.hpp:96
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::conf
void conf(const appmodel::DataHandlerModule *conf) override
Set the emulator mode, if active, timestamps of processed packets are overwritten with new ones.
Definition
DAPHNEFrameProcessor.cpp:31
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::stop
void stop(const appfwk::DAQModule::CommandData_t &args) override
Stop operation.
Definition
DAPHNEFrameProcessor.cpp:108
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_channel_plane_numbers
std::vector< std::pair< trgdataformats::channel_t, int16_t > > m_channel_plane_numbers
Definition
DAPHNEFrameProcessor.hpp:97
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_first_ts_fake
bool m_first_ts_fake
Definition
DAPHNEFrameProcessor.hpp:86
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::daphneframeptr
dunedaq::fddetdataformats::DAPHNEFrame * daphneframeptr
Definition
DAPHNEFrameProcessor.hpp:52
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_ts_error_ctr
std::atomic< int > m_ts_error_ctr
Definition
DAPHNEFrameProcessor.hpp:89
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::frame_error_check
void frame_error_check(frameptr)
Definition
DAPHNEFrameProcessor.cpp:170
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::extract_tps
void extract_tps(constframeptr fp)
Definition
DAPHNEFrameProcessor.cpp:176
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::frameptr
types::DAPHNESuperChunkTypeAdapter * frameptr
Definition
DAPHNEFrameProcessor.hpp:51
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::constframeptr
const types::DAPHNESuperChunkTypeAdapter * constframeptr
Definition
DAPHNEFrameProcessor.hpp:54
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_tps_send_failed
std::atomic< uint64_t > m_tps_send_failed
Definition
DAPHNEFrameProcessor.hpp:111
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::timestamp_t
std::uint64_t timestamp_t
Definition
DAPHNEFrameProcessor.hpp:53
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_tps_suppressed_too_long
std::atomic< uint64_t > m_tps_suppressed_too_long
Definition
DAPHNEFrameProcessor.hpp:110
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::generate_opmon_data
virtual void generate_opmon_data() override
Definition
DAPHNEFrameProcessor.cpp:255
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::DAPHNEFrameProcessor
DAPHNEFrameProcessor(std::unique_ptr< datahandlinglibs::FrameErrorRegistry > &error_registry, bool post_processing_enabled)
Definition
DAPHNEFrameProcessor.hpp:57
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_stream_id
uint32_t m_stream_id
Definition
DAPHNEFrameProcessor.hpp:102
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::start
void start(const appfwk::DAQModule::CommandData_t &args) override
Start operation.
Definition
DAPHNEFrameProcessor.cpp:93
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_previous_ts
timestamp_t m_previous_ts
Definition
DAPHNEFrameProcessor.hpp:84
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_first_ts_missmatch
bool m_first_ts_missmatch
Definition
DAPHNEFrameProcessor.hpp:87
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_tp_sink
std::shared_ptr< iomanager::SenderConcept< std::vector< trigger::TriggerPrimitiveTypeAdapter > > > m_tp_sink
Definition
DAPHNEFrameProcessor.hpp:107
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_t0
std::chrono::time_point< std::chrono::high_resolution_clock > m_t0
Definition
DAPHNEFrameProcessor.hpp:114
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_current_ts
timestamp_t m_current_ts
Definition
DAPHNEFrameProcessor.hpp:85
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_crate_id
uint32_t m_crate_id
Definition
DAPHNEFrameProcessor.hpp:100
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::peak_to_tp
dunedaq::trgdataformats::TriggerPrimitive peak_to_tp(dunedaq::fddetdataformats::DAPHNEFrame &frame, int i)
Definition
DAPHNEFrameProcessor.cpp:234
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_def_adc_intg_thresh
uint32_t m_def_adc_intg_thresh
Definition
DAPHNEFrameProcessor.hpp:105
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_num_new_tps
std::atomic< uint64_t > m_num_new_tps
Definition
DAPHNEFrameProcessor.hpp:109
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_channel_mask_set
std::set< unsigned int > m_channel_mask_set
Definition
DAPHNEFrameProcessor.hpp:104
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_frame_counter
std::atomic< uint64_t > m_frame_counter
Definition
DAPHNEFrameProcessor.hpp:112
DataHandlerModule.hpp
PDSRawDataProcessor.hpp
TPCRawDataProcessor.hpp
Connection.hpp
Sender.hpp
Logging.hpp
dunedaq::datahandlinglibs::logging::TLVL_BOOKKEEPING
@ TLVL_BOOKKEEPING
Definition
ReadoutLogging.hpp:26
dunedaq::datahandlinglibs
Definition
DataHandlingConcept.hpp:16
dunedaq::fdreadoutlibs::types
Definition
CRTBernTypeAdapter.hpp:16
dunedaq::fdreadoutlibs
Definition
CRTBernFrameProcessor.hpp:16
dunedaq
The DUNE-DAQ namespace.
Definition
cib_utilities.cpp:5
dunedaq::fddetdataformats::DAPHNEFrame
Definition
DAPHNEFrame.hpp:34
dunedaq::fdreadoutlibs::types::DAPHNESuperChunkTypeAdapter
Definition
DAPHNESuperChunkTypeAdapter.hpp:26
dunedaq::trgdataformats::TriggerPrimitive
A single energy deposition on a TPC or PDS channel.
Definition
TriggerPrimitive.hpp:32
TriggerPrimitive.hpp
Generated on
for DUNE-DAQ by
1.18.0