10 #ifndef ICARUSCODE_PMT_TRIGGER_ALGORITHMS_MANAGEDTRIGGERGATEBUILDER_H
11 #define ICARUSCODE_PMT_TRIGGER_ALGORITHMS_MANAGEDTRIGGERGATEBUILDER_H
24 namespace icarus::trigger {
31 class ManagedTriggerGateBuilder;
81 {
return pGate->tracking().add(&waveform); }
97 template <
typename GateMgr>
99 (GateMgr&& gateManager, std::vector<WaveformWithBaseline>
const& waveforms)
103 template <
typename GateInfo,
typename Waveforms>
105 (std::vector<GateInfo>& channelGates, Waveforms
const& channelWaveforms)
114 #include "icaruscode/PMT/Trigger/Algorithms/ManagedTriggerGateBuilder.tcc"
118 #endif // ICARUSCODE_PMT_TRIGGER_ALGORITHMS_MANAGEDTRIGGERGATEBUILDER_H
TriggerGateData_t * operator->() const
void buildChannelGates(std::vector< GateInfo > &channelGates, Waveforms const &channelWaveforms) const
Computes the gates for all the waveforms in one optical channel.
Algorithm to produce trigger gates out of optical readout waveforms.
TriggerGate_t::TriggerGate_t TriggerGateData_t
TriggerGate_t * pGate
Pointer to the gate.
Base interface for gate builders.
icarus::trigger::TrackedOpticalTriggerGate< raw::OpDetWaveform > triggergate_t
void belowThresholdAt(optical_tick tick)
TriggerGateData_t & gate() const
GateInfo_t create(GateInfo_t::TriggerGate_t &gate) const
tick_as<> tick
Tick number, represented by std::ptrdiff_t.
void aboveThresholdAt(optical_tick tick)
void addTrackingInfo(raw::OpDetWaveform const &waveform) const
timescale_traits< OpticalTimeCategory >::tick_t optical_tick
GateInfoBase(TriggerGate_t &gate)
std::vector< TriggerGates > unifiedBuild(GateMgr &&gateManager, std::vector< WaveformWithBaseline > const &waveforms) const
Returns a collection of TriggerGates objects sorted by threshold.
Base_t::TriggerGates::triggergate_t TriggerGate_t
Algorithm to produce trigger gates out of optical readout waveforms.