16#ifndef IREGIONSELECTOR_IREGSELLUT_H
17#define IREGIONSELECTOR_IREGSELLUT_H
84 template<
typename C,
typename T>
87 template<
typename C,
typename T>
92 for (
unsigned iroi=roi.
size() ; iroi-- ; )
IDList<C>( *(roi.
at(iroi)), idlist, lister );
97 (
dynamic_cast<const C*
>(
this)->*lister)( roi, idlist );
102 template<
typename C,
typename T>
105 template<
typename C,
typename T>
110 for (
unsigned iroi=roi.
size() ; iroi-- ; )
IDList_layer<C>( layer, *(roi.
at(iroi)), idlist, lister );
115 (
dynamic_cast<const C*
>(
this)->*lister)( layer, roi, idlist );
std::vector< size_t > vec
virtual void ROBIDList(const IRoiDescriptor &roi, std::vector< uint32_t > &roblist) const =0
Rob identifier methods methods.
void IDList_layer(long layer, const IRoiDescriptor &roi, std::vector< T > &idlist, handler_layer< C, T > lister) const
static void removeDuplicates(std::vector< T > &vec)
useful for removing duplicates if required ...
void(C::*)(const IRoiDescriptor &, std::vector< T > &) const handler
virtual void HashIDList(long layer, const IRoiDescriptor &roi, std::vector< IdentifierHash > &idlist) const =0
HashIDList interface declaration. return list of non-repeated IdentifierHash.
void IDList(const IRoiDescriptor &roi, std::vector< T > &idlist, handler< C, T > lister) const
virtual void HashIDList(const IRoiDescriptor &roi, std::vector< IdentifierHash > &idlist) const =0
IdentifierHash methods.
virtual void ROBIDList(long layer, const IRoiDescriptor &roi, std::vector< uint32_t > &roblist) const =0
ROBIDList interface declaration. This interface can be used by the ID subdetectors....
void(C::*)(long layer, const IRoiDescriptor &, std::vector< T > &) const handler_layer
Describes the API of the Region of Ineterest geometry.
virtual const IRoiDescriptor * at(int i) const =0
find an RoiDescriptor constituent
virtual unsigned size() const =0
number of constituents
virtual bool composite() const =0
Super RoI access methods.
DataModel_detail::iterator< DVL > unique(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of unique for DataVector/List.
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.