DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
triggeralgs
src
TCMakerDBSCANAlgorithm.cpp
Go to the documentation of this file.
1
8
9
#include "
triggeralgs/dbscan/TCMakerDBSCANAlgorithm.hpp
"
10
11
#include "TRACE/trace.h"
12
#define TRACE_NAME "TCMakerDBSCANAlgorithm"
13
14
namespace
triggeralgs
{
15
16
void
17
TCMakerDBSCANAlgorithm::set_new_tc
(
const
TriggerActivity
& input_ta)
18
{
19
m_current_tc
=
TriggerCandidate
();
20
m_current_tc
.inputs.push_back(input_ta);
21
m_current_tp_count
= input_ta.
inputs
.size();
22
return
;
23
}
24
25
void
26
TCMakerDBSCANAlgorithm::configure
(
const
nlohmann::json& config)
27
{
28
TriggerCandidateMaker::configure
(config);
29
30
if
(config.contains(
"max_tp_count"
))
31
m_max_tp_count
= config[
"max_tp_count"
];
32
return
;
33
}
34
35
void
36
TCMakerDBSCANAlgorithm::set_tc_attributes
()
37
{
38
auto
& first_ta =
m_current_tc
.inputs.front();
39
auto
& last_ta =
m_current_tc
.inputs.back();
40
41
m_current_tc
.time_start = first_ta.time_start;
42
m_current_tc
.time_end = last_ta.time_end;
43
m_current_tc
.time_candidate = last_ta.time_start;
// Since this is the TA that closed the TC.
44
45
m_current_tc
.detid = first_ta.detid;
46
m_current_tc
.algorithm =
TriggerCandidate::Algorithm::kDBSCAN
;
47
m_current_tc
.type =
m_tc_type_out
;
48
return
;
49
}
50
51
void
52
TCMakerDBSCANAlgorithm::process
(
const
TriggerActivity
& input_ta, std::vector<TriggerCandidate>& output_tcs)
53
{
54
// Start a new TC if not already going.
55
if
(
m_current_tc
.inputs.empty()) {
56
set_new_tc
(input_ta);
57
return
;
58
}
59
60
// Check to close the TC based on TP contents.
61
if
(input_ta.
inputs
.size() +
m_current_tp_count
>
m_max_tp_count
) {
62
set_tc_attributes
();
63
output_tcs.push_back(
m_current_tc
);
64
set_new_tc
(input_ta);
65
return
;
66
}
67
68
// Append the new TA and increase the TP count.
69
m_current_tc
.inputs.push_back(input_ta);
70
m_current_tp_count
+= input_ta.
inputs
.size();
71
return
;
72
}
73
74
// Register algo in TC Factory.
75
REGISTER_TRIGGER_CANDIDATE_MAKER
(
TRACE_NAME
,
TCMakerDBSCANAlgorithm
)
76
77
}
// namespace triggeralgs
TRACE_NAME
#define TRACE_NAME
Definition
TimestampEstimatorTimeSync.cpp:17
REGISTER_TRIGGER_CANDIDATE_MAKER
#define REGISTER_TRIGGER_CANDIDATE_MAKER(tcm_name, tcm_class)
Definition
TriggerCandidateFactory.hpp:14
triggeralgs::TCMakerDBSCANAlgorithm
Definition
TCMakerDBSCANAlgorithm.hpp:20
triggeralgs::TCMakerDBSCANAlgorithm::configure
void configure(const nlohmann::json &config)
Definition
TCMakerDBSCANAlgorithm.cpp:26
triggeralgs::TCMakerDBSCANAlgorithm::set_new_tc
void set_new_tc(const TriggerActivity &input_ta)
Definition
TCMakerDBSCANAlgorithm.cpp:17
triggeralgs::TCMakerDBSCANAlgorithm::m_max_tp_count
uint16_t m_max_tp_count
Definition
TCMakerDBSCANAlgorithm.hpp:31
triggeralgs::TCMakerDBSCANAlgorithm::process
void process(const TriggerActivity &input_ta, std::vector< TriggerCandidate > &output_tc)
TA processing function that creates & fills TCs.
Definition
TCMakerDBSCANAlgorithm.cpp:52
triggeralgs::TCMakerDBSCANAlgorithm::m_current_tp_count
uint16_t m_current_tp_count
Definition
TCMakerDBSCANAlgorithm.hpp:30
triggeralgs::TCMakerDBSCANAlgorithm::m_current_tc
TriggerCandidate m_current_tc
Definition
TCMakerDBSCANAlgorithm.hpp:29
triggeralgs::TCMakerDBSCANAlgorithm::set_tc_attributes
void set_tc_attributes()
Definition
TCMakerDBSCANAlgorithm.cpp:36
triggeralgs::TriggerCandidateMaker::m_tc_type_out
TriggerCandidate::Type m_tc_type_out
Configurable TC type output.
Definition
TriggerCandidateMaker.hpp:138
triggeralgs::TriggerCandidateMaker::configure
virtual void configure(const nlohmann::json &config)
Definition
TriggerCandidateMaker.hpp:101
triggeralgs
Definition
AbstractFactory.hpp:18
TCMakerDBSCANAlgorithm.hpp
dunedaq::trgdataformats::TriggerCandidateData::Algorithm::kDBSCAN
@ kDBSCAN
Definition
TriggerCandidateData.hpp:76
triggeralgs::TriggerActivity
Definition
TriggerActivity.hpp:20
triggeralgs::TriggerActivity::inputs
std::vector< TriggerPrimitive > inputs
Definition
TriggerActivity.hpp:33
triggeralgs::TriggerCandidate
Definition
TriggerCandidate.hpp:20
Generated on
for DUNE-DAQ by
1.17.0