CMS 3D CMS Logo

fillCollectionForThinning.h
Go to the documentation of this file.
1 #ifndef DataFormats_Common_fillCollectionForThinning_h
2 #define DataFormats_Common_fillCollectionForThinning_h
3 
4 #include <type_traits>
5 
6 // Implementation detail of thinning
7 //
8 // Need to be declared here in order to provide a customization hooks
9 // for edmNew::DetSetVector.
10 namespace edm {
11  class ThinnedAssociation;
12 
13  namespace detail {
14  // by default a linear container
15  template <typename Collection>
16  struct ElementType {
17  using type = typename std::remove_reference<decltype(*std::declval<Collection>().begin())>::type;
18  };
19 
20  // Defined in ThinningProducer.h
21  template <typename Item, typename Selector, typename Collection>
23  Item const& item, Selector& selector, unsigned int iIndex, Collection& output, ThinnedAssociation& association);
24  } // namespace detail
25 } // namespace edm
26 
27 #endif
void fillCollectionForThinning(Item const &item, Selector &selector, unsigned int iIndex, Collection &output, ThinnedAssociation &association)
typename std::remove_reference< decltype(*std::declval< Collection >().begin())>::type type
std::tuple< layerClusterToCaloParticle, caloParticleToLayerCluster > association
Functor that operates on <T>
Definition: Selector.h:22
HLT enums.