TP processing function that creates & fills TAs.
26{
29 return;
30 }
31
34
36
38 auto& ta=output_ta.emplace_back();
39
40 ta.time_start = std::numeric_limits<timestamp_t>::max();
41 ta.time_end = 0;
42 ta.channel_start = std::numeric_limits<channel_t>::max();
43 ta.channel_end = 0;
44 ta.adc_integral = 0;
45
46 for(auto const& hit : cluster.hits){
47 auto const& prim=hit->primitive;
48
49 ta.inputs.push_back(prim);
50
51 ta.time_start = std::min(prim.time_start, ta.time_start);
52 ta.time_end = std::max(prim.time_start + prim.samples_over_threshold * 32, ta.time_end);
53
54 ta.channel_start = std::min(
channel_t(prim.channel), ta.channel_start);
55 ta.channel_end = std::max(
channel_t(prim.channel), ta.channel_end);
56
57 ta.adc_integral += prim.adc_integral;
58
59 ta.detid = prim.detid;
60 if (prim.adc_peak > ta.adc_peak) {
61 ta.adc_peak = prim.adc_peak;
62 ta.channel_peak = prim.channel;
63 ta.time_peak = prim.samples_to_peak * 32 + prim.time_start;
64 }
65 }
66 ta.time_activity = ta.time_peak;
67
70 }
71
73}
timestamp_t m_prev_timestamp
std::vector< dbscan::Cluster > m_dbscan_clusters
#define TLOG_DEBUG(lvl,...)
dunedaq::trgdataformats::channel_t channel_t