DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
triggeralgs
include
triggeralgs
Supernova
TAMakerSupernovaAlgorithm.hpp
Go to the documentation of this file.
1
8
9
#ifndef TRIGGERALGS_SRC_TRIGGERALGS_SUPERNOVA_TRIGGERACTIVITYMAKERSUPERNOVA_HPP_
10
#define TRIGGERALGS_SRC_TRIGGERALGS_SUPERNOVA_TRIGGERACTIVITYMAKERSUPERNOVA_HPP_
11
12
#include "
triggeralgs/TriggerActivityFactory.hpp
"
13
14
#include <algorithm>
15
#include <limits>
16
#include <vector>
17
18
namespace
triggeralgs
{
19
class
TAMakerSupernovaAlgorithm
:
public
TriggerActivityMaker
20
{
21
23
inline
bool
is_time_consistent
(
const
TriggerPrimitive
& input_tp)
const
24
{
25
timestamp_t
tend = input_tp.
time_start
+ input_tp.
samples_over_threshold
* 32;
// FIXME: Replace the hard-coded SOT to TOT scaling.
26
27
bool
is_close_to_edge = (
m_time_tolerance
> abs(
timestamp_diff_t
(input_tp.
time_start
) -
timestamp_diff_t
(
m_time_end
))) ||
28
m_time_tolerance
> abs(
timestamp_diff_t
(input_tp.
time_start
) -
timestamp_diff_t
(
m_time_start
)) ||
29
m_time_tolerance
> abs(
timestamp_diff_t
(tend) -
timestamp_diff_t
(
m_time_end
)) ||
30
m_time_tolerance
> abs(
timestamp_diff_t
(tend) -
timestamp_diff_t
(
m_time_start
));
31
32
bool
is_in_between_edge = ((tend >
m_time_start
&& tend <
m_time_end
) ||
33
(input_tp.
time_start
>
m_time_start
&& input_tp.
time_start
<
m_time_end
));
34
35
return
is_in_between_edge || is_close_to_edge;
36
}
37
38
inline
bool
is_channel_consistent
(
const
TriggerPrimitive
& input_tp)
const
39
{
40
41
bool
is_close_to_edge = (
m_channel_tolerance
> abs(
channel_diff_t
(input_tp.
channel
) -
m_channel_end
) ||
42
m_channel_tolerance
> abs(
channel_diff_t
(input_tp.
channel
) -
m_channel_start
));
43
44
bool
is_in_between_edge = (input_tp.
channel
>
m_channel_start
&& input_tp.
channel
<
m_channel_end
);
45
46
return
is_in_between_edge || is_close_to_edge;
47
}
48
49
public
:
50
void
process
(
const
TriggerPrimitive
& input_tp, std::vector<TriggerActivity>& output_ta)
override
;
51
52
void
flush
(
timestamp_t
, std::vector<TriggerActivity>& tas)
override
{ tas.push_back(
MakeTriggerActivity
()); }
53
54
protected
:
55
timestamp_diff_t
m_time_tolerance
=
56
250;
57
channel_t
m_channel_tolerance
=
58
2;
59
60
private
:
61
TriggerActivity
MakeTriggerActivity
()
const
62
{
63
TriggerActivity
ta;
64
ta.
time_start
=
m_time_start
;
65
ta.
time_end
=
m_time_end
;
66
ta.
time_peak
=
m_time_peak
;
67
ta.
time_activity
=
m_time_activity
;
68
ta.
channel_start
=
m_channel_start
;
69
70
ta.
channel_end
=
m_channel_end
;
71
ta.
channel_peak
=
m_channel_peak
;
72
ta.
adc_integral
=
m_adc_integral
;
73
ta.
adc_peak
=
m_adc_peak
;
74
ta.
detid
=
m_detid
;
75
76
ta.
type
=
m_type
;
77
ta.
algorithm
=
m_algorithm
;
78
ta.
inputs
=
m_tp_list
;
79
return
ta;
80
}
81
82
timestamp_t
m_time_start
= 0;
83
timestamp_t
m_time_end
= 0;
84
timestamp_t
m_time_peak
= 0;
85
timestamp_t
m_time_activity
= 0;
86
channel_diff_t
m_channel_start
= 0;
// NOLINT(build/unsigned)
87
channel_diff_t
m_channel_end
= 0;
// NOLINT(build/unsigned)
88
channel_diff_t
m_channel_peak
= 0;
// NOLINT(build/unsigned)
89
uint64_t
m_adc_integral
= 0;
// NOLINT(build/unsigned)
90
uint16_t
m_adc_peak
= 0;
// NOLINT(build/unsigned)
91
detid_t
m_detid
= 0;
// NOLINT(build/unsigned)
92
TriggerActivity::Type
m_type
=
TriggerActivity::Type::kTPC
;
93
TriggerActivity::Algorithm
m_algorithm
=
TriggerActivity::Algorithm::kSupernova
;
94
95
std::vector<TriggerPrimitive>
m_tp_list
;
96
};
97
}
// namespace triggeralgs
98
99
#endif
// TRIGGERALGS_SRC_TRIGGERALGS_SUPERNOVA_TRIGGERACTIVITYMAKERSUPERNOVA_HPP_
TriggerActivityFactory.hpp
triggeralgs::TAMakerSupernovaAlgorithm
Definition
TAMakerSupernovaAlgorithm.hpp:20
triggeralgs::TAMakerSupernovaAlgorithm::m_tp_list
std::vector< TriggerPrimitive > m_tp_list
Definition
TAMakerSupernovaAlgorithm.hpp:95
triggeralgs::TAMakerSupernovaAlgorithm::m_adc_peak
uint16_t m_adc_peak
Definition
TAMakerSupernovaAlgorithm.hpp:90
triggeralgs::TAMakerSupernovaAlgorithm::m_channel_end
channel_diff_t m_channel_end
Definition
TAMakerSupernovaAlgorithm.hpp:87
triggeralgs::TAMakerSupernovaAlgorithm::flush
void flush(timestamp_t, std::vector< TriggerActivity > &tas) override
Definition
TAMakerSupernovaAlgorithm.hpp:52
triggeralgs::TAMakerSupernovaAlgorithm::m_channel_start
channel_diff_t m_channel_start
Definition
TAMakerSupernovaAlgorithm.hpp:86
triggeralgs::TAMakerSupernovaAlgorithm::m_time_end
timestamp_t m_time_end
Definition
TAMakerSupernovaAlgorithm.hpp:83
triggeralgs::TAMakerSupernovaAlgorithm::m_adc_integral
uint64_t m_adc_integral
Definition
TAMakerSupernovaAlgorithm.hpp:89
triggeralgs::TAMakerSupernovaAlgorithm::is_channel_consistent
bool is_channel_consistent(const TriggerPrimitive &input_tp) const
Definition
TAMakerSupernovaAlgorithm.hpp:38
triggeralgs::TAMakerSupernovaAlgorithm::m_time_activity
timestamp_t m_time_activity
Definition
TAMakerSupernovaAlgorithm.hpp:85
triggeralgs::TAMakerSupernovaAlgorithm::process
void process(const TriggerPrimitive &input_tp, std::vector< TriggerActivity > &output_ta) override
TP processing function that creates & fills TAs.
Definition
TAMakerSupernovaAlgorithm.cpp:21
triggeralgs::TAMakerSupernovaAlgorithm::m_algorithm
TriggerActivity::Algorithm m_algorithm
Definition
TAMakerSupernovaAlgorithm.hpp:93
triggeralgs::TAMakerSupernovaAlgorithm::is_time_consistent
bool is_time_consistent(const TriggerPrimitive &input_tp) const
This activity maker makes an activity with all the trigger primitives.
Definition
TAMakerSupernovaAlgorithm.hpp:23
triggeralgs::TAMakerSupernovaAlgorithm::MakeTriggerActivity
TriggerActivity MakeTriggerActivity() const
Maximum tolerated channel number difference between two primitives to form an activity.
Definition
TAMakerSupernovaAlgorithm.hpp:61
triggeralgs::TAMakerSupernovaAlgorithm::m_time_peak
timestamp_t m_time_peak
Definition
TAMakerSupernovaAlgorithm.hpp:84
triggeralgs::TAMakerSupernovaAlgorithm::m_type
TriggerActivity::Type m_type
Definition
TAMakerSupernovaAlgorithm.hpp:92
triggeralgs::TAMakerSupernovaAlgorithm::m_time_start
timestamp_t m_time_start
Definition
TAMakerSupernovaAlgorithm.hpp:82
triggeralgs::TAMakerSupernovaAlgorithm::m_channel_tolerance
channel_t m_channel_tolerance
Maximum tolerated time difference between two primitives to form an activity (in 50 MHz clock ticks).
Definition
TAMakerSupernovaAlgorithm.hpp:57
triggeralgs::TAMakerSupernovaAlgorithm::m_time_tolerance
timestamp_diff_t m_time_tolerance
Definition
TAMakerSupernovaAlgorithm.hpp:55
triggeralgs::TAMakerSupernovaAlgorithm::m_channel_peak
channel_diff_t m_channel_peak
Definition
TAMakerSupernovaAlgorithm.hpp:88
triggeralgs::TAMakerSupernovaAlgorithm::m_detid
detid_t m_detid
Definition
TAMakerSupernovaAlgorithm.hpp:91
triggeralgs::TriggerActivityMaker
Definition
TriggerActivityMaker.hpp:29
triggeralgs
Definition
AbstractFactory.hpp:18
triggeralgs::channel_diff_t
dunedaq::trgdataformats::channel_diff_t channel_diff_t
Definition
Types.hpp:21
triggeralgs::timestamp_t
dunedaq::trgdataformats::timestamp_t timestamp_t
Definition
Types.hpp:16
triggeralgs::TriggerPrimitive
dunedaq::trgdataformats::TriggerPrimitive TriggerPrimitive
Definition
TriggerPrimitive.hpp:22
triggeralgs::timestamp_diff_t
dunedaq::trgdataformats::timestamp_diff_t timestamp_diff_t
Definition
Types.hpp:17
triggeralgs::detid_t
dunedaq::trgdataformats::detid_t detid_t
Definition
Types.hpp:18
triggeralgs::channel_t
dunedaq::trgdataformats::channel_t channel_t
Definition
Types.hpp:20
dunedaq::trgdataformats::TriggerActivityData::algorithm
Algorithm algorithm
Definition
TriggerActivityData.hpp:57
dunedaq::trgdataformats::TriggerActivityData::channel_peak
channel_t channel_peak
Definition
TriggerActivityData.hpp:52
dunedaq::trgdataformats::TriggerActivityData::time_activity
timestamp_t time_activity
Definition
TriggerActivityData.hpp:49
dunedaq::trgdataformats::TriggerActivityData::adc_integral
uint64_t adc_integral
Definition
TriggerActivityData.hpp:53
dunedaq::trgdataformats::TriggerActivityData::Type
Type
Definition
TriggerActivityData.hpp:20
dunedaq::trgdataformats::TriggerActivityData::Type::kTPC
@ kTPC
Definition
TriggerActivityData.hpp:22
dunedaq::trgdataformats::TriggerActivityData::type
Type type
Definition
TriggerActivityData.hpp:56
dunedaq::trgdataformats::TriggerActivityData::time_peak
timestamp_t time_peak
Definition
TriggerActivityData.hpp:48
dunedaq::trgdataformats::TriggerActivityData::Algorithm
Algorithm
Definition
TriggerActivityData.hpp:27
dunedaq::trgdataformats::TriggerActivityData::Algorithm::kSupernova
@ kSupernova
Definition
TriggerActivityData.hpp:29
dunedaq::trgdataformats::TriggerActivityData::adc_peak
uint16_t adc_peak
Definition
TriggerActivityData.hpp:54
dunedaq::trgdataformats::TriggerActivityData::channel_end
channel_t channel_end
Definition
TriggerActivityData.hpp:51
dunedaq::trgdataformats::TriggerActivityData::time_end
timestamp_t time_end
Definition
TriggerActivityData.hpp:47
dunedaq::trgdataformats::TriggerActivityData::channel_start
channel_t channel_start
Definition
TriggerActivityData.hpp:50
dunedaq::trgdataformats::TriggerActivityData::time_start
timestamp_t time_start
Definition
TriggerActivityData.hpp:46
dunedaq::trgdataformats::TriggerActivityData::detid
detid_t detid
Definition
TriggerActivityData.hpp:55
dunedaq::trgdataformats::TriggerPrimitive::channel
uint64_t channel
Definition
TriggerPrimitive.hpp:36
dunedaq::trgdataformats::TriggerPrimitive::samples_over_threshold
uint64_t samples_over_threshold
Definition
TriggerPrimitive.hpp:38
dunedaq::trgdataformats::TriggerPrimitive::time_start
uint64_t time_start
Definition
TriggerPrimitive.hpp:39
triggeralgs::TriggerActivity
Definition
TriggerActivity.hpp:20
triggeralgs::TriggerActivity::inputs
std::vector< TriggerPrimitive > inputs
Definition
TriggerActivity.hpp:33
Generated on
for DUNE-DAQ by
1.17.0