All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Namespaces
TriggerGateOperations.h File Reference

Utilities for the conversion of trigger gate data formats. More...

#include "icaruscode/PMT/Trigger/Utilities/TrackedTriggerGate.h"
#include "sbnobj/ICARUS/PMT/Trigger/Data/OpticalTriggerGate.h"
#include <iterator>

Go to the source code of this file.

Namespaces

 icarus::trigger
 
 icarus::trigger::GateOps
 Gate operations expressed as generic functions.
 

Functions

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 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. More...
 
template<typename BIter , typename EIter >
auto icarus::trigger::sumGatesSequence (BIter const begin, EIter const end)
 Sums a sequence of gates. More...
 
template<typename GateColl >
auto icarus::trigger::sumGates (GateColl const &gates)
 Sums all the gates in a collection. More...
 
template<typename AGate , typename BGate , typename... OTrigGates>
auto icarus::trigger::sumGates (AGate A, BGate const &B, OTrigGates const &...others)
 Sums all the specified gates. More...
 
template<typename BIter , typename EIter >
auto icarus::trigger::mulGatesSequence (BIter const begin, EIter const end)
 Multiplies a sequence of gates. More...
 
template<typename GateColl >
auto icarus::trigger::mulGates (GateColl const &gates)
 Multiplies all the gates in a collection. More...
 
template<typename AGate , typename BGate , typename... OTrigGates>
auto icarus::trigger::mulGates (AGate A, BGate const &B, OTrigGates const &...others)
 Multiplies all the specified gates. More...
 
template<typename BIter , typename EIter >
auto icarus::trigger::maxGatesSequence (BIter const begin, EIter const end)
 Computes the gate with the maximum opening of a sequence of gates. More...
 
template<typename GateColl >
auto icarus::trigger::maxGates (GateColl const &gates)
 Computes the gate with the maximum opening of gates from collection. More...
 
template<typename AGate , typename BGate , typename... OTrigGates>
auto icarus::trigger::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 icarus::trigger::minGatesSequence (BIter const begin, EIter const end)
 Computes the gate with the minimum opening of a sequence of gates. More...
 
template<typename GateColl >
auto icarus::trigger::minGates (GateColl const &gates)
 Computes the gate with the minimum opening of gates from collection. More...
 
template<typename AGate , typename BGate , typename... OTrigGates>
auto icarus::trigger::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 icarus::trigger::OpGates (Op op, AGate A, BGate const &B, OGates const &...others)
 Applies an operation to two gates. More...
 
template<typename Op , typename GateColl >
auto icarus::trigger::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 icarus::trigger::OpGatesSequence (Op op, BIter const begin, EIter const end)
 Computes the result of an operation on all gates in the sequence. More...
 

Variables

Binary gate operations.

The return gate is the same type as the first operand.

constexpr auto icarus::trigger::GateOps::Min = [](auto A, auto const& B){ A.Min(B); return A; }
 
constexpr auto icarus::trigger::GateOps::Max = [](auto A, auto const& B){ A.Max(B); return A; }
 
constexpr auto icarus::trigger::GateOps::Sum = [](auto A, auto const& B){ A.Sum(B); return A; }
 
constexpr auto icarus::trigger::GateOps::Mul = [](auto A, auto const& B){ A.Mul(B); return A; }
 

Detailed Description

Utilities for the conversion of trigger gate data formats.

Author
Gianluca Petrillo (petri.nosp@m.llo@.nosp@m.slac..nosp@m.stan.nosp@m.ford..nosp@m.edu)
Date
April 3, 2020

This library is header-only.

Definition in file TriggerGateOperations.h.