Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:03:51

0001 #ifndef DataFormats_Common_fillCollectionForThinning_h
0002 #define DataFormats_Common_fillCollectionForThinning_h
0003 
0004 #include <type_traits>
0005 
0006 // Implementation detail of thinning
0007 //
0008 // Need to be declared here in order to provide a customization hooks
0009 // for edmNew::DetSetVector.
0010 namespace edm {
0011   class ThinnedAssociation;
0012 
0013   namespace detail {
0014     // by default a linear container
0015     template <typename Collection>
0016     struct ElementType {
0017       using type = typename std::remove_reference<decltype(*std::declval<Collection>().begin())>::type;
0018     };
0019 
0020     // Defined in ThinningProducer.h
0021     template <typename Item, typename Selector, typename Collection>
0022     void fillCollectionForThinning(
0023         Item const& item, Selector& selector, unsigned int iIndex, Collection& output, ThinnedAssociation& association);
0024   }  // namespace detail
0025 }  // namespace edm
0026 
0027 #endif