11 #ifndef LARDATA_UTILITIES_FINDMANYINCHAINP_H 12 #define LARDATA_UTILITIES_FINDMANYINCHAINP_H 20 #include <initializer_list> 28 template <
typename T,
typename R =
void>
31 template <
typename T,
typename R =
void>
34 template <
typename H,
typename R =
void>
104 template <
typename Target,
typename... Intermediate>
129 template <
typename Source,
typename Event,
typename... InputTags>
131 : results(find(
std::forward<Source>(source), event, tags...))
135 std::size_t
size()
const noexcept;
212 template <
typename Source,
typename Event,
typename... InputTags>
213 static std::vector<TargetPtrCollection_t> find(Source&& source,
231 #endif // LARDATA_UTILITIES_FINDMANYINCHAINP_H
FindManyInChainP(Source &&source, Event const &event, InputTags...tags)
Constructor: extracts target objects associated to all objects under the specified handle...
enable_if_type_exists_t< typename std::decay_t< H >::HandleTag, R > enable_if_is_handle_t
constexpr SameAsDataTag SameAsData
Value for default tag in FindManyInChainP constructors.
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
Type for default tag in FindManyInChainP constructors.
typename enable_if_type_exists< T, R >::type enable_if_type_exists_t
std::vector< TargetPtrCollection_t > results
Stored results.
Query object collecting a list of associated objects.
Target Target_t
Type of the associated objects.
std::vector< TargetPtr_t > TargetPtrCollection_t
Type returned by at() method.
LArSoft-specific namespace.
Event finding and building.