10 #ifndef ICARUSCODE_PMT_TRIGGER_ALGORITHMS_DYNAMICTRIGGERGATEBUILDER_H
11 #define ICARUSCODE_PMT_TRIGGER_ALGORITHMS_DYNAMICTRIGGERGATEBUILDER_H
23 #include "messagefacility/MessageLogger/MessageLogger.h"
24 #include "fhiclcpp/types/Atom.h"
30 namespace icarus::trigger {
37 class DynamicTriggerGateBuilder;
84 struct Config:
public Base_t::Config {
100 virtual std::vector<TriggerGates>
build
101 (std::vector<WaveformWithBaseline>
const& waveforms)
const override
111 #endif // ICARUSCODE_PMT_TRIGGER_ALGORITHMS_DYNAMICTRIGGERGATEBUILDER_H
GateInfo_t create(GateInfo_t::TriggerGate_t &gate) const
virtual std::vector< TriggerGates > build(std::vector< WaveformWithBaseline > const &waveforms) const override
Returns a collection of TriggerGates objects sorted by threshold.
Base interface for gate builders.
Simple type definitions for trigger algorithms.
tick_as<> tick
Tick number, represented by std::ptrdiff_t.
BEGIN_PROLOG vertical distance to the surface Name
DynamicGateManager()=default
Algorithm to produce trigger gates out of optical readout waveforms.
Dimensioned variables related to electronics.
timescale_traits< OpticalTimeCategory >::tick_t optical_tick
void belowThresholdAt(optical_tick tick)
void aboveThresholdAt(optical_tick tick)
DynamicTriggerGateBuilder(Config const &config)
Constructor: sets the configuration.
std::vector< TriggerGates > unifiedBuild(GateMgr &&gateManager, std::vector< WaveformWithBaseline > const &waveforms) const
Returns a collection of TriggerGates objects sorted by threshold.
DynamicGateInfo(TriggerGate_t &gate)