Namespaces | |
details | |
GateOps | |
Gate operations expressed as generic functions. | |
ns | |
Classes | |
class | BeamGateInfoFromTracks |
Writes a set collection of beam gates into each event. More... | |
class | PMTverticalSlicingAlg |
Algorithm clustering PMT according to their position. More... | |
class | OpDetWaveformMetaMaker |
Extracts and saves the time coverage of optical detector waveforms. More... | |
class | ApplyBeamGateClass |
Helper applying a beam gate to any gate. More... | |
class | BeamGateMaker |
Simple utility to generate gates around beam time. More... | |
struct | BeamGateStruct |
Object representing a time gate, with a start and and end. More... | |
class | DynamicTriggerGateBuilder |
Dynamic gate builder. More... | |
class | FixedTriggerGateBuilder |
Fixed-length gate builder. More... | |
class | ManagedTriggerGateBuilder |
Base interface for gate builders. More... | |
class | TriggerGateIndex |
Associates each optical detector channel to a gate. More... | |
class | SlidingWindowCombinerAlg |
class | SlidingWindowDefinitionAlg |
Groups optical detector channels into windows based on position. More... | |
class | SlidingWindowPatternAlg |
Applies sliding window patterns to discriminated waveforms. More... | |
struct | WaveformWithBaseline |
Object to carry around waveform ant its baseline. More... | |
class | TriggerGateBuilder |
Algorithm to produce trigger gates out of optical readout waveforms. More... | |
class | WindowChannelMap |
Information about composition and topology of trigger sliding windows. More... | |
struct | WindowPattern |
Specification of the requirement of sliding window firing pattern. More... | |
class | WindowTopologyAlg |
Algorithm to create trigger window topology information. More... | |
class | WindowTopologyVerification |
Algorithm verifying the topology from trigger gates. More... | |
class | WindowTopologyManager |
Class to extract and verify a window topology from trigger gates. More... | |
class | DiscriminatePMTwaveforms |
Produces discriminated optical waveforms. More... | |
class | DiscriminatePMTwaveformsByChannel |
Produces discriminated optical waveforms. More... | |
class | DumpTriggerGateData |
Produces plots to inform trigger design. More... | |
struct | DynamicTriggerGateBuilderTool |
Dynamic gate builder tool. More... | |
class | ExtractEnergyDepositionSummary |
Produces energy deposition summary data products. More... | |
class | FixBeamGateInfo |
Rewrites a set collection of beam gates into each event. More... | |
struct | dumpRecipe |
struct | FixedTriggerGateBuilderTool |
Fixed gate builder tool. More... | |
class | LVDSgates |
Combines discriminated PMT outputs into V1730 LVDS gates. More... | |
class | MajorityTriggerEfficiencyPlots |
Produces plots about trigger simulation and trigger efficiency. More... | |
class | MajorityTriggerCombiner |
Combines a group of trigger gates for majority trigger. Glorified Sum() . More... | |
class | CryostatTriggerCombiner |
Combines cryostat triggers via OR. Glorified Max() . More... | |
class | GeometryChannelSplitter |
Combines cryostat triggers via OR. Glorified Max() . More... | |
class | MajorityTriggerSimulation |
Simulates a "majority" trigger. More... | |
class | MakeTriggerSimulationTree |
Make ROOT tree with information about event and trigger input. More... | |
class | SlidingWindowTrigger |
Combines trigger channels (V1730 LVDS gates) into sliding windows. More... | |
class | SlidingWindowTriggerEfficiencyPlots |
Produces plots about trigger simulation and trigger efficiency. More... | |
class | SlidingWindowTriggerSimulation |
Simulates a sliding window trigger. More... | |
class | TriggerEfficiencyPlots |
Produces plots about trigger simulation and trigger efficiency. More... | |
class | TriggerEfficiencyPlotsBase |
Helper class to produce plots about trigger simulation and trigger efficiency. More... | |
class | TriggerSimulationOnGates |
Simulates a sliding window trigger at specified gate times. More... | |
class | OpDetWaveformMetaMatcher |
Object to facilitate the discovery of the raw::OpDetWaveform a sbn::OpDetWaveformMeta objects comes from. More... | |
class | PlotSandbox |
A helper to manage ROOT objects with consistent naming. More... | |
struct | isTrackedTriggerGate |
Trait returning whether T is some form of TrackedTriggerGate`. More... | |
class | TrackedTriggerGate |
A wrapper to trigger gate objects tracking the input of operations. More... | |
class | TriggerGateReader |
Assembles and returns trigger gates from serialized data. More... | |
class | WriteBeamGateInfo |
Writes a set collection of beam gates into each event. More... | |
class | MultiChannelOpticalTriggerGate |
Logical multi-level gate associated to one or more channels. More... | |
class | OpticalTriggerGate |
Logical multi-level gate associated to one or more waveforms. More... | |
struct | ReadoutTriggerGateTag |
All ReadoutTriggerGate template instances derive from this tag. More... | |
class | ReadoutTriggerGate |
Logical multi-level gate associated to one or more readout channels. More... | |
struct | ReadoutTriggerGateError |
Base class for all exceptions from icarus::trigger::ReadoutTriggerGate . More... | |
struct | NoChannelError |
No channel associated to the readout gate. More... | |
struct | MoreThanOneChannelError |
More than one channel associated to the readout gate. More... | |
struct | isReadoutTriggerGate |
Type traits: Gate type derives from a ReadoutTriggerGate instance. More... | |
class | SingleChannelOpticalTriggerGate |
Logical multi-level gate associated to a optical detector channel. More... | |
class | TriggerGateData |
Logical multi-level gate. More... | |
Functions | |
ApplyBeamGateClass | makeApplyBeamGate (util::quantities::intervals::microseconds duration, util::quantities::intervals::microseconds delay, detinfo::DetectorClocksData const &clockData, std::string const &logCategory="ApplyBeamGateClass") |
Returns a new ApplyBeamGateClass object with the specified gate. More... | |
ApplyBeamGateClass | makeApplyBeamGate (util::quantities::intervals::microseconds duration, detinfo::DetectorClocksData const &clockData, std::string const &logCategory="ApplyBeamGateClass") |
Returns a new ApplyBeamGateClass object with the specified gate. More... | |
std::ostream & | operator<< (std::ostream &out, icarus::trigger::ApplyBeamGateClass const &gate) |
BeamGateStruct | makeBeamGateStruct (detinfo::DetectorTimings const &detTimings, util::quantities::intervals::microseconds duration, util::quantities::intervals::microseconds delay=util::quantities::intervals::microseconds{0.0}) |
Creates a BeamGateStruct object of specified duration and start. More... | |
template<typename Time > | |
std::ostream & | operator<< (std::ostream &out, icarus::trigger::BeamGateStruct::TimeRange< Time > const &range) |
std::ostream & | operator<< (std::ostream &, WindowChannelMap const &) |
std::string | to_string (WindowPattern const &pattern) |
DiscriminatePMTwaveformsByChannel::ChannelInfo_t | convert (DiscriminatePMTwaveformsByChannel::ChannelConfig const &config) |
std::ostream & | operator<< (std::ostream &out, dumpRecipe const &dr) |
FixBeamGateInfo::BeamChangeRecipe | convert (FixBeamGateInfo::Config::ChangeGate const &config) |
template<typename Gate , typename TrackedType > | |
std::ostream & | operator<< (std::ostream &out, TrackedTriggerGate< Gate, TrackedType > const &gate) |
template<typename Gates > | |
std::vector < icarus::trigger::OpticalTriggerGateData_t > | transformIntoOpticalTriggerGate (Gates &&gates) |
Returns the trigger gates in serializable format. More... | |
template<typename OpDetInfo = sbn::OpDetWaveformMeta> | |
std::tuple< std::vector < icarus::trigger::OpticalTriggerGateData_t > , art::Assns < icarus::trigger::OpticalTriggerGateData_t, OpDetInfo > > | transformIntoOpticalTriggerGate (std::vector< icarus::trigger::TrackedOpticalTriggerGate< OpDetInfo >> &&gates, art::PtrMaker< icarus::trigger::OpticalTriggerGateData_t > const &makeGatePtr, util::DataProductPointerMap_t< OpDetInfo > const &opDetInfoPtrs) |
Returns the trigger gates in serializable format. More... | |
template<typename OpDetInfo > | |
std::vector < icarus::trigger::TrackedOpticalTriggerGate < OpDetInfo > > | FillTriggerGates (std::vector< icarus::trigger::OpticalTriggerGateData_t > const &gates, art::Assns< icarus::trigger::OpticalTriggerGateData_t, OpDetInfo > const &gateToWaveformInfo) |
Creates a gate object out of trigger gate data products. More... | |
template<typename OpDetInfo = sbn::OpDetWaveformMeta, typename Event > | |
std::vector < icarus::trigger::TrackedOpticalTriggerGate < OpDetInfo > > | ReadTriggerGates (Event const &event, art::InputTag const &dataTag) |
Assembles and returns trigger gates from serialized data. More... | |
template<typename Tick , typename TickInterval , typename ChannelIDType > | |
auto | compactdump (ReadoutTriggerGate< Tick, TickInterval, ChannelIDType > const &gate) -> details::CompactFormatter< ReadoutTriggerGate< Tick, TickInterval, ChannelIDType >> |
Manipulator-like function for compact format of trigger gates. More... | |
sim::BeamGateInfo | convert (WriteBeamGateInfo::Config::GateConfig const &config) |
MultiChannelOpticalTriggerGate | sumTriggerGates (std::vector< SingleChannelOpticalTriggerGate > const &gates) |
std::ostream & | operator<< (std::ostream &, OpticalTriggerGate const &) |
template<typename Tick , typename TickInterval , typename ChannelIDType > | |
std::ostream & | operator<< (std::ostream &, ReadoutTriggerGate< Tick, TickInterval, ChannelIDType > const &) |
template<typename TK , typename TI > | |
std::ostream & | operator<< (std::ostream &, TriggerGateData< TK, TI > const &) |
template<typename TK , typename TI > | |
std::ostream & | operator<< (std::ostream &, typename TriggerGateData< TK, TI >::Status const &) |
`icarus::trigger::TrackedTriggerGate` simple helpers | |
template<typename Gate > | |
decltype(auto) | gateDataIn (Gate &&gate) |
Returns the trigger data (a TriggerGateData ) from the specofied gate . More... | |
template<typename Gate > | |
decltype(auto) | gateIn (Gate &&gate) |
Returns the trigger gate (a ReadoutTriggerGate ) from the specified gate . More... | |
template<typename TrackingGateColl > | |
auto | gatesIn (TrackingGateColl &trackingGates) |
Gate operations | |
Currently the following operations are supported:
Operations on more than one gate can take a sequence (begin and end iterators), a collection or an arbitrary number of gates. | |
template<typename GateObj > | |
GateObj | discriminate (GateObj const &gate, typename GateObj::OpeningCount_t threshold=1U, typename GateObj::OpeningCount_t pass=1U, typename GateObj::OpeningCount_t fail=0U) |
Returns a discriminated version of gate . More... | |
template<typename BIter , typename EIter > | |
auto | sumGatesSequence (BIter const begin, EIter const end) |
Sums a sequence of gates. More... | |
template<typename GateColl > | |
auto | sumGates (GateColl const &gates) |
Sums all the gates in a collection. More... | |
template<typename AGate , typename BGate , typename... OTrigGates> | |
auto | sumGates (AGate A, BGate const &B, OTrigGates const &...others) |
Sums all the specified gates. More... | |
template<typename BIter , typename EIter > | |
auto | mulGatesSequence (BIter const begin, EIter const end) |
Multiplies a sequence of gates. More... | |
template<typename GateColl > | |
auto | mulGates (GateColl const &gates) |
Multiplies all the gates in a collection. More... | |
template<typename AGate , typename BGate , typename... OTrigGates> | |
auto | mulGates (AGate A, BGate const &B, OTrigGates const &...others) |
Multiplies all the specified gates. More... | |
template<typename BIter , typename EIter > | |
auto | maxGatesSequence (BIter const begin, EIter const end) |
Computes the gate with the maximum opening of a sequence of gates. More... | |
template<typename GateColl > | |
auto | maxGates (GateColl const &gates) |
Computes the gate with the maximum opening of gates from collection. More... | |
template<typename AGate , typename BGate , typename... OTrigGates> | |
auto | maxGates (AGate A, BGate const &B, OTrigGates const &...others) |
Computes the gate with the maximum opening of the specified gates. More... | |
template<typename BIter , typename EIter > | |
auto | minGatesSequence (BIter const begin, EIter const end) |
Computes the gate with the minimum opening of a sequence of gates. More... | |
template<typename GateColl > | |
auto | minGates (GateColl const &gates) |
Computes the gate with the minimum opening of gates from collection. More... | |
template<typename AGate , typename BGate , typename... OTrigGates> | |
auto | minGates (AGate A, BGate const &B, OTrigGates const &...others) |
Computes the gate with the minimum opening of the specified gates. More... | |
template<typename Op , typename AGate , typename BGate , typename... OGates> | |
AGate | OpGates (Op op, AGate A, BGate const &B, OGates const &...others) |
Applies an operation to two gates. More... | |
template<typename Op , typename GateColl > | |
auto | OpGateColl (Op op, GateColl const &gates) |
Computes the result of an operation on all gates from collection. More... | |
template<typename Op , typename BIter , typename EIter > | |
auto | OpGatesSequence (Op op, BIter const begin, EIter const end) |
Computes the result of an operation on all gates in the sequence. More... | |
Variables | |
template<typename T > | |
constexpr bool | isTrackedTriggerGate_v = isTrackedTriggerGate<T>::value |
Whether T is some form of TrackedTriggerGate`. More... | |
static constexpr std::size_t | kEast = sbn::bits::value<triggerLocation>(triggerLocation::CryoEast) |
static constexpr std::size_t | kWest = sbn::bits::value<triggerLocation>(triggerLocation::CryoWest) |
static constexpr std::size_t | kNTriggerLocation = sbn::bits::value<triggerLocation>(triggerLocation::NBits) |
static constexpr std::size_t | kBNB = sbn::bits::value<triggerSource>(triggerSource::BNB) |
static constexpr std::size_t | kNuMI = sbn::bits::value<triggerSource>(triggerSource::NuMI) |
static constexpr std::size_t | kOffBeamBNB = sbn::bits::value<triggerSource>(triggerSource::OffbeamBNB) |
static constexpr std::size_t | kOffBeamNuMI = sbn::bits::value<triggerSource>(triggerSource::OffbeamNuMI) |
static constexpr std::size_t | kCalibration = sbn::bits::value<triggerSource>(triggerSource::Calib) |
static constexpr std::size_t | kNTriggerSource = sbn::bits::value<triggerSource>(triggerSource::NBits) |
Exceptions associated to `icarus::trigger::ReadoutTriggerGate` class | |
template<typename Gate > | |
constexpr bool | isReadoutTriggerGate_v = isReadoutTriggerGate<Gate>::value |
Flag: true if Gate type derives from a ReadoutTriggerGate instance. More... | |
Optical detector windows | |
An optical detector window is just a group of optical detectors. For trigger, these windows comprise contiguous optical detectors, and may overlap for better coverage. The algorithm Definitions ("aliases") are here provided for convenience, together with a couple of functions to print the content of a window or a set of windows. | |
using | TriggerWindowChannels_t = std::vector< raw::Channel_t > |
Type of optical detector channel list in a window. More... | |
using | TriggerWindowDefs_t = std::vector< TriggerWindowChannels_t > |
Definition of all windows. More... | |
void | printTriggerWindowChannels (std::ostream &out, TriggerWindowChannels_t const &window) |
Prints the composition of the optical detector window inline. More... | |
void | printTriggerWindowDefs (std::ostream &out, TriggerWindowDefs_t const &windows) |
Prints the composition of all windows in long format. More... | |
auto | dumpTriggerWindowChannels (TriggerWindowChannels_t const &window) -> details::DumpTriggerWindowChannelWrapper |
auto | dumpTriggerWindowDefs (TriggerWindowDefs_t const &windows) -> details::DumpTriggerWindowDefWrapper |
using icarus::trigger::ADCCounts_t = typedef util::quantities::counts_as<raw::ADC_Count_t> |
ADC counts for optical detector readout.
Definition at line 40 of file TriggerTypes.h.
using icarus::trigger::OpDetWaveformDataProductMap_t = typedef util::DataProductPointerMap_t<raw::OpDetWaveform> |
Map util::DataProductPointerMap_t
for raw::OpDetWaveform
objects.
Definition at line 45 of file TriggerDataUtils.h.
using icarus::trigger::OpDetWaveformMetaDataProductMap_t = typedef util::DataProductPointerMap_t<sbn::OpDetWaveformMeta> |
Map util::DataProductPointerMap_t
for sbn::OpDetWaveformMeta
objects.
Definition at line 49 of file TriggerDataUtils.h.
using icarus::trigger::OpticalTriggerGateData_t = typedef icarus::trigger::ReadoutTriggerGate <TriggerGateTick_t, TriggerGateTicks_t, raw::Channel_t> |
Type of trigger gate data serialized into art data products.
Definition at line 44 of file OpticalTriggerGate.h.
using icarus::trigger::TrackedOpticalTriggerGate = typedef icarus::trigger::TrackedTriggerGate <icarus::trigger::OpticalTriggerGateData_t, TrackedType const*> |
TrackedTriggerGate
wrapper to trigger gate type commonly stored.
TrackedType | type of tracked objects |
The data in the gate, of type icarus::trigger::OpticalTriggerGateData_t
, is accessed via gate()
and it is owned (i.e. if its source is a data product, this is a copy of that data and not a reference to it).
Tracking information stores pointers to existing TrackedType
objects (typically raw::OpDetWaveform
or sbn::OpDetWaveformMeta
).
Definition at line 38 of file TrackedOpticalTriggerGate.h.
using icarus::trigger::TriggerGateTick_t = typedef util::quantities::tick::value_t |
Tick point.
Definition at line 37 of file OpticalTriggerGate.h.
using icarus::trigger::TriggerGateTicks_t = typedef util::quantities::tick::value_t |
Tick interval.
Definition at line 38 of file OpticalTriggerGate.h.
using icarus::trigger::triggerLocation = typedef sbn::triggerLocation |
Definition at line 360 of file BeamBits.h.
using icarus::trigger::triggerSource = typedef sbn::triggerSource |
Definition at line 361 of file BeamBits.h.
using icarus::trigger::TriggerWindowChannels_t = typedef std::vector<raw::Channel_t> |
Type of optical detector channel list in a window.
Definition at line 43 of file SlidingWindowDefs.h.
using icarus::trigger::TriggerWindowDefs_t = typedef std::vector<TriggerWindowChannels_t> |
Definition of all windows.
Definition at line 46 of file SlidingWindowDefs.h.
using icarus::trigger::WindowPatterns_t = typedef std::vector<WindowPattern> |
A list of window patterns.
Definition at line 25 of file WindowPattern.h.
auto icarus::trigger::compactdump | ( | ReadoutTriggerGate< Tick, TickInterval, ChannelIDType > const & | gate | ) | -> details::CompactFormatter<ReadoutTriggerGate<Tick, TickInterval, ChannelIDType>> |
Manipulator-like function for compact format of trigger gates.
Tick | template type Tick for ReadoutTriggerGate |
TickInterval | template type TickInterval for ReadoutTriggerGate |
ChannelIDType | template type ChannelIDType for ReadoutTriggerGate |
gate | the gate to be formatted |
This helper function is always used in the context of the insertion of a trigger gate data object into an output stream:
The loop will print all the LVDSgates
in "compact" mode, one per line, prepended by their position in the collection.
Technical note: compactdump()
in the example is found by the compiler via Koenig lookup.
Definition at line 79 of file TriggerGateDataFormatting.h.
sim::BeamGateInfo icarus::trigger::convert | ( | WriteBeamGateInfo::Config::GateConfig const & | config | ) |
Definition at line 187 of file WriteBeamGateInfo_module.cc.
FixBeamGateInfo::BeamChangeRecipe icarus::trigger::convert | ( | FixBeamGateInfo::Config::ChangeGate const & | config | ) |
Definition at line 364 of file FixBeamGateInfo_module.cc.
DiscriminatePMTwaveformsByChannel::ChannelInfo_t icarus::trigger::convert | ( | DiscriminatePMTwaveformsByChannel::ChannelConfig const & | config | ) |
Definition at line 456 of file DiscriminatePMTwaveformsByChannel_module.cc.
GateObj icarus::trigger::discriminate | ( | GateObj const & | gate, |
typename GateObj::OpeningCount_t | threshold = 1U , |
||
typename GateObj::OpeningCount_t | pass = 1U , |
||
typename GateObj::OpeningCount_t | fail = 0U |
||
) |
Returns a discriminated version of gate
.
GateObj | type of gate being discriminated (and returned) |
gate | the gate to be discriminated |
threshold | (default: 1 ) the discrimination threshold |
pass | (default: 1 ) discriminated gate value on test pass |
fail | (default: 0 ) discriminated gate value on test fail |
gate
. gateAbove()
, gateBelow()
A new gate of the same type as the input gate
is returned. This gate has two opening count values: either pass
, in the time intervals where the gate
is at or above threshold
, or fail
, in the time intervals where the gate
is below threshold
.
Examples:
will have discrGate
as a gate with value 0U
wherever gate
has opening count 4 or less, and 5U
where gate
has opening count 5 or more. The gatediscrGateNeg
has the two opening values swapped and therefore results the complement of discrGate
.
Definition at line 411 of file TriggerGateOperations.h.
|
inline |
Helper for printing a TriggerWindowChannels_t
into a stream.
Example:
Definition at line 117 of file SlidingWindowDefs.h.
|
inline |
Helper for printing a TriggerWindowDefs_t into a stream.
Example:
Definition at line 130 of file SlidingWindowDefs.h.
std::vector< icarus::trigger::TrackedOpticalTriggerGate< OpDetInfo > > icarus::trigger::FillTriggerGates | ( | std::vector< icarus::trigger::OpticalTriggerGateData_t > const & | gates, |
art::Assns< icarus::trigger::OpticalTriggerGateData_t, OpDetInfo > const & | gateToWaveformInfo | ||
) |
Creates a gate object out of trigger gate data products.
OpDetInfo | type of the associated waveforms |
gates | collection of data from all the gates |
gateToWaveformInfo | association between each gate and its waveforms |
TrackedOpticalTriggerGate
with copy of data from gates
Objects like icarus::trigger::TrackedOpticalTriggerGate
include the gate level information plus the connections to the source objects (waveforms). This structure is complicate enoug that they are not saved directly into an art event. Rather, they are diced into pieces and the pieces are stored.
This function stitches the pieces and returns back an object like icarus::trigger::TrackedOpticalTriggerGate
.
Example:
will read the information from dateTag
data products in an art event
and return a collection of icarus::trigger::TrackedOpticalTriggerGate
objects, each one with a copy of the data of the original data product and a pointer to each of the associated waveform metadata. Note that this specific functionality is now wrapped into icarus::trigger::ReadTriggerGates()
.
The returned collection contains one element for each OpticalTriggerGateData_t
object in gates
, in the same order. Each of these elements is of type icarus::trigger::TrackedOpticalTriggerGate<OpDetInfo>
, contains a copy of the data of the corresponding gate, and a list of optical waveform information pointers (OpDetInfo
objects) it is associated to.
The requirements bind the gates to their association to waveforms:
gates
must have at least one associated waveform. Definition at line 560 of file TriggerDataUtils.h.
decltype(auto) icarus::trigger::gateDataIn | ( | Gate && | gate | ) |
Returns the trigger data (a TriggerGateData
) from the specofied gate
.
decltype(auto) icarus::trigger::gateIn | ( | Gate && | gate | ) |
Returns the trigger gate (a ReadoutTriggerGate
) from the specified gate
.
auto icarus::trigger::gatesIn | ( | TrackingGateColl & | trackingGates | ) |
Returns a sequence of all the readout trigger gates contained in trackingGates
.
Definition at line 312 of file TrackedTriggerGate.h.
ApplyBeamGateClass icarus::trigger::makeApplyBeamGate | ( | util::quantities::intervals::microseconds | duration, |
util::quantities::intervals::microseconds | delay, | ||
detinfo::DetectorClocksData const & | clockData, | ||
std::string const & | logCategory = "ApplyBeamGateClass" |
||
) |
Returns a new ApplyBeamGateClass
object with the specified gate.
duration | the desired duration of the gate |
delay | the delay of gate start relative to the global beam gate time |
clockData | the current detector clocks service provider data |
logCategory | message category the returned object will use |
ApplyBeamGateClass
object with the specified parameters ApplyBeamGateClass icarus::trigger::makeApplyBeamGate | ( | util::quantities::intervals::microseconds | duration, |
detinfo::DetectorClocksData const & | clockData, | ||
std::string const & | logCategory = "ApplyBeamGateClass" |
||
) |
Returns a new ApplyBeamGateClass
object with the specified gate.
duration | the desired duration of the gate |
clockData | the current detector clocks service provider data |
logCategory | message category the returned object will use |
ApplyBeamGateClass
object with the specified parametersThe gate starts at the nominal beam gate time as reported by clockData
.
icarus::trigger::BeamGateStruct icarus::trigger::makeBeamGateStruct | ( | detinfo::DetectorTimings const & | detTimings, |
util::quantities::intervals::microseconds | duration, | ||
util::quantities::intervals::microseconds | delay = util::quantities::intervals::microseconds{ 0.0 } |
||
) |
Creates a BeamGateStruct
object of specified duration and start.
detTimings | object used for time conversions |
duration | length of the gate [s] |
delay | (default: 0_us ) time the gate opens relative to beam gate opening [s] |
BeamGateStruct
This is for when I will regret to have coupled BeamGateStruct
interface to detinfo::DetectorTimings
.
Definition at line 181 of file BeamGateStruct.h.
auto icarus::trigger::maxGates | ( | GateColl const & | gates | ) |
Computes the gate with the maximum opening of gates from collection.
GateColl | type of collection of gates |
gates | the collection of gates to sum |
gates
maxGatesSequence()
For each tick, the maximum opening among all the gates in the collection is picked. The returned gate has the same type as the gates in the collection.
Definition at line 571 of file TriggerGateOperations.h.
auto icarus::trigger::maxGates | ( | AGate | A, |
BGate const & | B, | ||
OTrigGates const &... | others | ||
) |
Computes the gate with the maximum opening of the specified gates.
AGate | type of the first gate; it determines the return type |
BGate | type of the second gate |
OGates | type of other gates |
A | first gate |
B | second gate |
others | other gates |
A
maxGatesSequence()
For each tick, the maximum opening among all the specified gates is picked. The returned gate has the same type as the first gate.
auto icarus::trigger::maxGatesSequence | ( | BIter const | begin, |
EIter const | end | ||
) |
Computes the gate with the maximum opening of a sequence of gates.
BIter | type of iterator to the gates to add |
EIter | type of iterator past-the-end of the sequence of gates to add |
begin | iterator to the first gate to add |
end | iterator past-the-last gate to add |
maxGates()
For each tick, the maximum opening among all the gates in the sequence is picked. The returned gate has the same type as the first gate.
Definition at line 565 of file TriggerGateOperations.h.
auto icarus::trigger::minGates | ( | GateColl const & | gates | ) |
Computes the gate with the minimum opening of gates from collection.
GateColl | type of collection of gates |
gates | the collection of gates to sum |
gates
minGatesSequence()
For each tick, the minimum opening among all the gates in the collection is picked. The returned gate has the same type as the gates in the collection.
Definition at line 591 of file TriggerGateOperations.h.
auto icarus::trigger::minGates | ( | AGate | A, |
BGate const & | B, | ||
OTrigGates const &... | others | ||
) |
Computes the gate with the minimum opening of the specified gates.
AGate | type of the first gate; it determines the return type |
BGate | type of the second gate |
OGates | type of other gates |
A | first gate |
B | second gate |
others | other gates |
A
minGatesSequence()
For each tick, the minimum opening among all the specified gates is picked. The returned gate has the same type as the first gate.
auto icarus::trigger::minGatesSequence | ( | BIter const | begin, |
EIter const | end | ||
) |
Computes the gate with the minimum opening of a sequence of gates.
BIter | type of iterator to the gates to add |
EIter | type of iterator past-the-end of the sequence of gates to add |
begin | iterator to the first gate to add |
end | iterator past-the-last gate to add |
minGates()
For each tick, the minimum opening among all the gates in the sequence is picked. The returned gate has the same type as the first gate.
Definition at line 585 of file TriggerGateOperations.h.
auto icarus::trigger::mulGates | ( | GateColl const & | gates | ) |
Multiplies all the gates in a collection.
GateColl | type of collection of gates |
gates | the collection of gates to multiply |
gates
mulGatesSequence()
All gates from the first on are summed. The returned gate has the same type as the gates in the collection.
Definition at line 551 of file TriggerGateOperations.h.
auto icarus::trigger::mulGates | ( | AGate | A, |
BGate const & | B, | ||
OTrigGates const &... | others | ||
) |
Multiplies all the specified gates.
AGate | type of the first gate to sum; it determines the return type |
BGate | type of the second gate to sum |
OGates | type of other gates to sum |
A | first gate to be multiplied |
B | second gate to be multiplied |
others | other gates to be multiplied |
A
mulGatesSequence()
All arguments are combined in the product of the gates. The product of two gates is at each tick the product of the level of opening of the two gates at that tick. The returned gate has the same type as the first gate.
auto icarus::trigger::mulGatesSequence | ( | BIter const | begin, |
EIter const | end | ||
) |
Multiplies a sequence of gates.
BIter | type of iterator to the gates to add |
EIter | type of iterator past-the-end of the sequence of gates to add |
begin | iterator to the first gate to add |
end | iterator past-the-last gate to add |
mulGates()
All gates from the first on are multiplied. The returned gate has the same type as the first gate.
Definition at line 545 of file TriggerGateOperations.h.
std::ostream & icarus::trigger::operator<< | ( | std::ostream & | out, |
WindowChannelMap const & | wi | ||
) |
Definition at line 53 of file WindowChannelMap.cxx.
std::ostream & icarus::trigger::operator<< | ( | std::ostream & | out, |
OpticalTriggerGate const & | gate | ||
) |
Definition at line 238 of file OpticalTriggerGate.cxx.
std::ostream & icarus::trigger::operator<< | ( | std::ostream & | out, |
TrackedTriggerGate< Gate, TrackedType > const & | gate | ||
) |
Definition at line 290 of file TrackedTriggerGate.h.
std::ostream& icarus::trigger::operator<< | ( | std::ostream & | , |
ReadoutTriggerGate< Tick, TickInterval, ChannelIDType > const & | |||
) |
std::ostream & icarus::trigger::operator<< | ( | std::ostream & | out, |
icarus::trigger::ApplyBeamGateClass const & | gate | ||
) |
Definition at line 184 of file ApplyBeamGate.h.
std::ostream& icarus::trigger::operator<< | ( | std::ostream & | , |
TriggerGateData< TK, TI > const & | |||
) |
std::ostream& icarus::trigger::operator<< | ( | std::ostream & | , |
typename TriggerGateData< TK, TI >::Status const & | |||
) |
std::ostream& icarus::trigger::operator<< | ( | std::ostream & | out, |
icarus::trigger::BeamGateStruct::TimeRange< Time > const & | range | ||
) |
Definition at line 167 of file BeamGateStruct.h.
std::ostream & icarus::trigger::operator<< | ( | std::ostream & | out, |
dumpRecipe const & | dr | ||
) |
Definition at line 615 of file FixBeamGateInfo_module.cc.
auto icarus::trigger::OpGateColl | ( | Op | op, |
GateColl const & | gates | ||
) |
Computes the result of an operation on all gates from collection.
Op | type of binary operation AGate (Op)(AGate, BGate) |
GateColl | type of collection of gates |
op | the binary operation to apply (copied) |
gates | the collection of gates to sum |
op
on all the gates
OpGates()
, OpGatesSequence()
This is the sequential application of op
to all gates
via OpGates()
, according to their order in the collection. The returned gate has the same type as the gates in the collection.
Definition at line 491 of file TriggerGateOperations.h.
AGate icarus::trigger::OpGates | ( | Op | op, |
AGate | A, | ||
BGate const & | B, | ||
OGates const &... | others | ||
) |
Applies an operation to two gates.
Op | type of binary operation AGate (Op)(AGate, BGate) |
AGate | type of the first gate; it determines the return type |
BGate | type of the second gate |
OGates | type of other gates |
op | the binary operation to apply (copied) |
A | first gate |
B | second gate |
others | other gates |
A
, result of the operation. OpGatesSequence()
, OpGateColl()
For each tick, the operation op
is performed between A
, B
and the others
, and the result is stored into the return value. The order of operation is the same as in the arguments: ((A op B) op others...)
. The returned gate has the same type as the first gate (A
).
Standard operations are provided in namespace GateOps
.
A specific action is performed if the gates are "tracking" (i.e. instances of TrackedTriggerGate
), in which case tracking will also be propagated so that the result includes all the tracked objects of all the operands.
Definition at line 468 of file TriggerGateOperations.h.
auto icarus::trigger::OpGatesSequence | ( | Op | op, |
BIter const | begin, | ||
EIter const | end | ||
) |
Computes the result of an operation on all gates in the sequence.
Op | type of binary operation AGate (Op)(AGate, BGate) |
BIter | type of iterator to the gates to add |
EIter | type of iterator past-the-end of the sequence of gates to add |
op | the binary operation to apply (copied) |
begin | iterator to the first gate to add |
end | iterator past-the-last gate to add |
op
on all the gates
OpGates()
, OpGateColl()
This is the sequential application of op
to all gates from begin
to end
via OpGates()
, following their order in the collection. The returned gate has the same type as the one pointed by the begin iterator (BIter::value_type
for standard iterators).
Definition at line 497 of file TriggerGateOperations.h.
void icarus::trigger::printTriggerWindowChannels | ( | std::ostream & | out, |
TriggerWindowChannels_t const & | window | ||
) |
Prints the composition of the optical detector window
inline.
Definition at line 26 of file SlidingWindowDefs.cxx.
void icarus::trigger::printTriggerWindowDefs | ( | std::ostream & | out, |
TriggerWindowDefs_t const & | windows | ||
) |
Prints the composition of all windows
in long format.
Definition at line 49 of file SlidingWindowDefs.cxx.
std::vector< icarus::trigger::TrackedOpticalTriggerGate< OpDetInfo > > icarus::trigger::ReadTriggerGates | ( | Event const & | event, |
art::InputTag const & | dataTag | ||
) |
Assembles and returns trigger gates from serialized data.
OpDetInfo | type of object associated to the gates |
Event | type of object to read the needed information from |
event | object to read all the needed information from |
dataTag | tag of the data to read from the event |
cet::exception | wrapping any cet::exception thrown internally (typically a data product not found) |
This function returns "tracking" trigger gates from data read from the data read from event
. It is a one-shot replacement for TriggerGateReader
to be used when data to be consumed needn't or can't be declared, or when that declaration is performed separately.
Definition at line 652 of file TriggerDataUtils.h.
auto icarus::trigger::sumGates | ( | GateColl const & | gates | ) |
Sums all the gates in a collection.
GateColl | type of collection of gates |
gates | the collection of gates to sum |
gates
sumGatesSequence()
All gates from the first on are summed. The returned gate has the same type as the gates in the collection.
Definition at line 531 of file TriggerGateOperations.h.
auto icarus::trigger::sumGates | ( | AGate | A, |
BGate const & | B, | ||
OTrigGates const &... | others | ||
) |
Sums all the specified gates.
AGate | type of the first gate to sum; it determines the return type |
BGate | type of the second gate to sum |
OGates | type of other gates to sum |
A | first gate to be summed |
B | second gate to be summed |
others | other gates to be summed |
A
sumGatesSequence()
All arguments are combined in the sum of the gates. The returned gate has the same type as the first gate.
auto icarus::trigger::sumGatesSequence | ( | BIter const | begin, |
EIter const | end | ||
) |
Sums a sequence of gates.
BIter | type of iterator to the gates to add |
EIter | type of iterator past-the-end of the sequence of gates to add |
begin | iterator to the first gate to add |
end | iterator past-the-last gate to add |
sumGates()
All gates from the first on are summed. The returned gate has the same type as the first gate.
Definition at line 525 of file TriggerGateOperations.h.
icarus::trigger::MultiChannelOpticalTriggerGate icarus::trigger::sumTriggerGates | ( | std::vector< SingleChannelOpticalTriggerGate > const & | gates | ) |
Definition at line 26 of file MultiChannelOpticalTriggerGate.cxx.
|
inline |
Definition at line 115 of file WindowPattern.h.
std::vector< icarus::trigger::OpticalTriggerGateData_t > icarus::trigger::transformIntoOpticalTriggerGate | ( | Gates && | gates | ) |
Returns the trigger gates in serializable format.
Gates | type of the source of trigger gate data |
gates | the data to be reformatted (data will be stolen!) |
This function transfers the data from the original structured gates
into a data collection suitable for serialization with art, but not including the association of each gate with all its contributing waveforms. It must be stressed that this causes information loss, because the trigger gates will not be associated any more to the contributing waveforms.
The return value is a collection of trigger gate data (icarus::trigger::OpticalTriggerGateData_t
), with data stolen from gates
.
The trigger gates are processed in the same order as they are in gates
.
After the function returns, gates
will have been depleted of all the gate data; any tracking information will be still associated to each gate, whose gate data will be in an invalid state anyway, only good for destruction.
The object gates
is a iterable collection of gate objects: types derived from icarus::trigger::ReadoutTriggerGate
and from TrackedOpticalTriggerGate
are supported.
In the following example, we start with trigger gates already serialized in a art event. The serialization splits a trigger gate object in two components: the gate levels, and the associated waveforms. In the first part of the example we recover the information from the event and we assemble it into the standard trigger gate objects (of type icarus::trigger::TrackedOpticalTriggerGate<sbn::OpDetWaveformMeta>
). After some unspecified and optional processing, gates
are disassembled to be saved into the event: this is achieved by a call to transformIntoOpticalTriggerGate()
which produces the trigger gate data and their associations to the waveforms. In the last part, these components are both stored into the event.
Also note that in the omitted processing part the trigger gates might have been combined into a different type of gates instead. To serialize that collection, the exact same procedure would be used. Note that in this example the association to the source waveform metadata is not serialised (and presumably lost). Another version of transformIntoOpticalTriggerGate()
also provides support for the association to waveform sources.
Definition at line 495 of file TriggerDataUtils.h.
std::tuple< std::vector< icarus::trigger::OpticalTriggerGateData_t >, art::Assns< icarus::trigger::OpticalTriggerGateData_t, OpDetInfo > > icarus::trigger::transformIntoOpticalTriggerGate | ( | std::vector< icarus::trigger::TrackedOpticalTriggerGate< OpDetInfo >> && | gates, |
art::PtrMaker< icarus::trigger::OpticalTriggerGateData_t > const & | makeGatePtr, | ||
util::DataProductPointerMap_t< OpDetInfo > const & | opDetInfoPtrs | ||
) |
Returns the trigger gates in serializable format.
OpDetInfo | type of the associated waveforms |
gates | the data to be reformatted (data will be stolen!) |
makeGatePtr | art pointer maker for the gate data |
opDetInfoPtrs | map of art pointers to optical waveform information |
OpDetInfo
This function transfers the data from the original structured gates
into a data collection suitable for serialization with art, including the association of each gate with all its contributing waveforms.
The return value is a tuple of two elements:
0
: collection of trigger gate data (icarus::trigger::OpticalTriggerGateData_t
), with data stolen from gates
;1
: association between trigger gate data and their optical waveform information, as reported by opDetInfoPtrs
.The trigger gates are processed in the same order as they are in gates
, and the associations to the waveform information are set gate by gate, in the same order as they are reported by the tracking information of the input gate.
After the function returns, gates
will have been depleted of all the data and left in an unspecified state only good for destruction.
The object gates
is a sequence of icarus::trigger::TrackedOpticalTriggerGate
objects, each of them containing a trigger gate object (icarus::trigger::OpticalTriggerGateData_t
) and a list of tracked sources in the form of OpDetInfo
objects.
In the following example, we start with trigger gates already serialized in a art event. The serialization splits a trigger gate object in two components: the gate levels, and the associated waveform information. In the first part of the example we recover the information from the event and we assemble it into the standard trigger gate objects (of type icarus::trigger::OpticalTriggerGateData_t
). After some unspecified and optional processing, gates
are disassembled to be saved into the event: this is achieved by a call to transformIntoOpticalTriggerGate()
which produces the trigger gate data and their associations to the waveform information. In the last part, these components are both stored into the event.
In this example the most convenient waveform information is used, sbn::OpDetWaveformMeta
; the same syntax would hold for using the more traditional, but encumbering, raw::OpDetWaveform
.
Definition at line 515 of file TriggerDataUtils.h.
constexpr bool icarus::trigger::isReadoutTriggerGate_v = isReadoutTriggerGate<Gate>::value |
Flag: true
if Gate
type derives from a ReadoutTriggerGate
instance.
Definition at line 78 of file ReadoutTriggerGate.h.
constexpr bool icarus::trigger::isTrackedTriggerGate_v = isTrackedTriggerGate<T>::value |
Whether T
is some form of TrackedTriggerGate`.
Definition at line 37 of file TrackedTriggerGate.h.
|
static |
Definition at line 367 of file BeamBits.h.
|
static |
Definition at line 371 of file BeamBits.h.
|
static |
Definition at line 363 of file BeamBits.h.
|
static |
Definition at line 365 of file BeamBits.h.
|
static |
Definition at line 372 of file BeamBits.h.
|
static |
Definition at line 368 of file BeamBits.h.
|
static |
Definition at line 369 of file BeamBits.h.
|
static |
Definition at line 370 of file BeamBits.h.
|
static |
Definition at line 364 of file BeamBits.h.