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/FrameErrorRegistry.hpp
"
14
#include "
datahandlinglibs/DataHandlingIssues.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 "
trigger/TriggerPrimitiveTypeAdapter.hpp
"
22
#include "
fdreadoutlibs/FDReadoutIssues.hpp
"
23
24
#include "
fddetdataformats/DAPHNEFrame.hpp
"
25
#include "
trgdataformats/TriggerPrimitive.hpp
"
26
#include "
fdreadoutlibs/DAPHNESuperChunkTypeAdapter.hpp
"
27
28
#include "
appmodel/TPCRawDataProcessor.hpp
"
29
#include "
appmodel/PDSRawDataProcessor.hpp
"
30
31
32
#include "
detchannelmaps/PDSChannelMap.hpp
"
33
34
35
#include "
appmodel/DataHandlerModule.hpp
"
36
#include "
confmodel/Connection.hpp
"
37
38
#include <atomic>
39
#include <functional>
40
#include <memory>
41
#include <string>
42
43
using
dunedaq::datahandlinglibs::logging::TLVL_BOOKKEEPING
;
44
45
namespace
dunedaq
{
46
namespace
fdreadoutlibs
{
47
48
class
DAPHNEFrameProcessor
:
public
datahandlinglibs::TaskRawDataProcessorModel
<types::DAPHNESuperChunkTypeAdapter>
49
{
50
51
public
:
52
using
inherited
=
datahandlinglibs::TaskRawDataProcessorModel<types::DAPHNESuperChunkTypeAdapter>
;
53
using
frameptr
=
types::DAPHNESuperChunkTypeAdapter
*;
54
using
daphneframeptr
=
dunedaq::fddetdataformats::DAPHNEFrame
*;
55
using
timestamp_t
= std::uint64_t;
// NOLINT(build/unsigned)
56
using
constframeptr
=
const
types::DAPHNESuperChunkTypeAdapter
*;
57
58
// Constructor
59
explicit
DAPHNEFrameProcessor
(std::unique_ptr<datahandlinglibs::FrameErrorRegistry>& error_registry,
bool
post_processing_enabled)
60
:
datahandlinglibs
::
TaskRawDataProcessorModel
<
types
::DAPHNESuperChunkTypeAdapter>(error_registry, post_processing_enabled)
61
{}
62
63
64
65
// Override config for pipeline setup
66
void
conf
(
const
appmodel::DataHandlerModule
*
conf
)
override
;
67
68
void
start
(
const
appfwk::DAQModule::CommandData_t& args)
override
;
69
void
stop
(
const
appfwk::DAQModule::CommandData_t& args)
override
;
70
71
protected
:
72
virtual
void
generate_opmon_data
()
override
;
73
77
void
timestamp_check
(
frameptr
/*fp*/
);
78
82
void
frame_error_check
(
frameptr
/*fp*/
);
83
84
// Internals
85
timestamp_t
m_previous_ts
= 0;
86
timestamp_t
m_current_ts
= 0;
87
bool
m_first_ts_fake
=
true
;
88
bool
m_first_ts_missmatch
=
true
;
89
bool
m_problem_reported
=
false
;
90
std::atomic<int>
m_ts_error_ctr
{ 0 };
91
92
void
extract_tps
(
constframeptr
fp);
93
dunedaq::trgdataformats::TriggerPrimitive
peak_to_tp
(
dunedaq::fddetdataformats::DAPHNEFrame
&frame,
int
i);
94
95
private
:
96
97
//PDSChannelMap
98
std::shared_ptr<detchannelmaps::PDSChannelMap>
m_channel_map
;
99
std::vector<std::pair<trgdataformats::channel_t, int16_t>>
m_channel_plane_numbers
;
100
101
uint32_t
m_det_id
;
// NOLINT(build/unsigned)
102
uint32_t
m_crate_id
;
// NOLINT(build/unsigned)
103
uint32_t
m_slot_id
;
// NOLINT(build/unsigned)
104
uint32_t
m_stream_id
;
// NOLINT(build/unsigned)
105
106
std::set<unsigned int>
m_channel_mask_set
;
107
uint32_t
m_def_adc_intg_thresh
= 0;
108
109
110
111
std::shared_ptr<iomanager::SenderConcept<std::vector<trigger::TriggerPrimitiveTypeAdapter>>>
m_tp_sink
;
112
113
std::atomic<uint64_t>
m_num_new_tps
{ 0 };
// NOLINT(build/unsigned)
114
std::atomic<uint64_t>
m_tps_suppressed_too_long
{ 0 };
115
std::atomic<uint64_t>
m_tps_send_failed
{ 0 };
116
std::atomic<uint64_t>
m_frame_counter
{ 0 };
117
118
std::chrono::time_point<std::chrono::high_resolution_clock>
m_t0
;
119
120
121
};
122
123
}
// namespace fdreadoutlibs
124
}
// namespace dunedaq
125
126
#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:89
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::inherited
datahandlinglibs::TaskRawDataProcessorModel< types::DAPHNESuperChunkTypeAdapter > inherited
Definition
DAPHNEFrameProcessor.hpp:52
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::timestamp_check
void timestamp_check(frameptr)
Definition
DAPHNEFrameProcessor.cpp:112
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_det_id
uint32_t m_det_id
Definition
DAPHNEFrameProcessor.hpp:101
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_slot_id
uint32_t m_slot_id
Definition
DAPHNEFrameProcessor.hpp:103
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_channel_map
std::shared_ptr< detchannelmaps::PDSChannelMap > m_channel_map
Definition
DAPHNEFrameProcessor.hpp:98
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:104
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_channel_plane_numbers
std::vector< std::pair< trgdataformats::channel_t, int16_t > > m_channel_plane_numbers
Definition
DAPHNEFrameProcessor.hpp:99
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_first_ts_fake
bool m_first_ts_fake
Definition
DAPHNEFrameProcessor.hpp:87
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::daphneframeptr
dunedaq::fddetdataformats::DAPHNEFrame * daphneframeptr
Definition
DAPHNEFrameProcessor.hpp:54
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_ts_error_ctr
std::atomic< int > m_ts_error_ctr
Definition
DAPHNEFrameProcessor.hpp:90
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::frame_error_check
void frame_error_check(frameptr)
Definition
DAPHNEFrameProcessor.cpp:163
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::extract_tps
void extract_tps(constframeptr fp)
Definition
DAPHNEFrameProcessor.cpp:169
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::frameptr
types::DAPHNESuperChunkTypeAdapter * frameptr
Definition
DAPHNEFrameProcessor.hpp:53
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::constframeptr
const types::DAPHNESuperChunkTypeAdapter * constframeptr
Definition
DAPHNEFrameProcessor.hpp:56
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_tps_send_failed
std::atomic< uint64_t > m_tps_send_failed
Definition
DAPHNEFrameProcessor.hpp:115
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::timestamp_t
std::uint64_t timestamp_t
Definition
DAPHNEFrameProcessor.hpp:55
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_tps_suppressed_too_long
std::atomic< uint64_t > m_tps_suppressed_too_long
Definition
DAPHNEFrameProcessor.hpp:114
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::generate_opmon_data
virtual void generate_opmon_data() override
Definition
DAPHNEFrameProcessor.cpp:244
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::DAPHNEFrameProcessor
DAPHNEFrameProcessor(std::unique_ptr< datahandlinglibs::FrameErrorRegistry > &error_registry, bool post_processing_enabled)
Definition
DAPHNEFrameProcessor.hpp:59
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_stream_id
uint32_t m_stream_id
Definition
DAPHNEFrameProcessor.hpp:104
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::start
void start(const appfwk::DAQModule::CommandData_t &args) override
Start operation.
Definition
DAPHNEFrameProcessor.cpp:89
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_previous_ts
timestamp_t m_previous_ts
Definition
DAPHNEFrameProcessor.hpp:85
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_first_ts_missmatch
bool m_first_ts_missmatch
Definition
DAPHNEFrameProcessor.hpp:88
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_tp_sink
std::shared_ptr< iomanager::SenderConcept< std::vector< trigger::TriggerPrimitiveTypeAdapter > > > m_tp_sink
Definition
DAPHNEFrameProcessor.hpp:111
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_t0
std::chrono::time_point< std::chrono::high_resolution_clock > m_t0
Definition
DAPHNEFrameProcessor.hpp:118
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_current_ts
timestamp_t m_current_ts
Definition
DAPHNEFrameProcessor.hpp:86
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_crate_id
uint32_t m_crate_id
Definition
DAPHNEFrameProcessor.hpp:102
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::peak_to_tp
dunedaq::trgdataformats::TriggerPrimitive peak_to_tp(dunedaq::fddetdataformats::DAPHNEFrame &frame, int i)
Definition
DAPHNEFrameProcessor.cpp:226
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_def_adc_intg_thresh
uint32_t m_def_adc_intg_thresh
Definition
DAPHNEFrameProcessor.hpp:107
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_num_new_tps
std::atomic< uint64_t > m_num_new_tps
Definition
DAPHNEFrameProcessor.hpp:113
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_channel_mask_set
std::set< unsigned int > m_channel_mask_set
Definition
DAPHNEFrameProcessor.hpp:106
dunedaq::fdreadoutlibs::DAPHNEFrameProcessor::m_frame_counter
std::atomic< uint64_t > m_frame_counter
Definition
DAPHNEFrameProcessor.hpp:116
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
Including Qt Headers.
Definition
module.cpp:16
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:27
TriggerPrimitive.hpp
Generated on
for DUNE-DAQ by
1.17.0