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
Selector
Functor that operates on <T>
Definition: Selector.h:22
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
edm
HLT enums.
Definition: AlignableModifier.h:19
hgcal::association
std::tuple< layerClusterToCaloParticle, caloParticleToLayerCluster > association
Definition: LayerClusterAssociatorByEnergyScoreImpl.h:44
edm::ThinnedAssociation
Definition: ThinnedAssociation.h:15
edm::detail::fillCollectionForThinning
void fillCollectionForThinning(Item const &item, Selector &selector, unsigned int iIndex, Collection &output, ThinnedAssociation &association)
Definition: ThinningProducer.h:43
detail
Definition: ConvertingESProducerWithDependenciesT.h:23
edm::detail::ElementType
Definition: fillCollectionForThinning.h:16
edm::detail::ElementType::type
typename std::remove_reference< decltype(*std::declval< Collection >().begin())>::type type
Definition: fillCollectionForThinning.h:17
B2GTnPMonitor_cfi.item
item
Definition: B2GTnPMonitor_cfi.py:147