Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:01:02

0001 #ifndef CandAlgos_SingleObjectShallowCloneSelector_h
0002 #define CandAlgos_SingleObjectShallowCloneSelector_h
0003 /* \class SingleObjectShallowSelector

0004  *

0005  * \author Luca Lista, INFN

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