File indexing completed on 2024-04-06 12:01:02
0001 #ifndef CandAlgos_SingleObjectShallowCloneSelector_h
0002 #define CandAlgos_SingleObjectShallowCloneSelector_h
0003
0004
0005
0006
0007 #include "CommonTools/CandAlgos/interface/ObjectShallowCloneSelector.h"
0008 #include "CommonTools/UtilAlgos/interface/StoreContainerTrait.h"
0009 #include "CommonTools/UtilAlgos/interface/SelectionAdderTrait.h"
0010 #include "CommonTools/UtilAlgos/interface/SingleElementCollectionSelector.h"
0011
0012 template <typename InputCollection,
0013 typename Selector,
0014 typename StoreContainer = typename helper::StoreContainerTrait<reco::CandidateCollection>::type,
0015 typename PostProcessor = helper::NullPostProcessor<reco::CandidateCollection>,
0016 typename StoreManager =
0017 typename helper::StoreManagerTrait<reco::CandidateCollection, edm::stream::EDFilter<>>::type,
0018 typename Base = typename helper::StoreManagerTrait<reco::CandidateCollection, edm::stream::EDFilter<>>::base,
0019 typename RefAdder = typename helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
0020 class SingleObjectShallowCloneSelector
0021 : public ObjectShallowCloneSelector<
0022 SingleElementCollectionSelector<InputCollection, Selector, reco::CandidateCollection, StoreContainer, RefAdder>,
0023 NonNullNumberSelector,
0024 PostProcessor> {
0025 public:
0026 explicit SingleObjectShallowCloneSelector(const edm::ParameterSet& cfg)
0027 : ObjectShallowCloneSelector<
0028 SingleElementCollectionSelector<InputCollection, Selector, reco::CandidateCollection, StoreContainer, RefAdder>,
0029 NonNullNumberSelector,
0030 PostProcessor>(cfg) {}
0031 ~SingleObjectShallowCloneSelector() override {}
0032 };
0033
0034 #endif