CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/CommonTools/CandAlgos/interface/CompositeCandSelector.h

Go to the documentation of this file.
00001 #ifndef CommonTools_CandAlgos_CompositeCandSelector_h
00002 #define CommonTools_CandAlgos_CompositeCandSelector_h
00003 #include "CommonTools/UtilAlgos/interface/ParameterAdapter.h"
00004 #include "CommonTools/CandUtils/interface/CompositeCandSelector.h"
00005 #include "CommonTools/UtilAlgos/interface/StringCutObjectSelector.h"
00006 
00007 namespace reco {
00008   namespace modules {
00009     
00010     template<typename Selector, typename T1, typename T2, unsigned int nDau>
00011       struct ParameterAdapter<CompositeCandSelector<Selector, T1, T2, nDau> > {
00012         static CompositeCandSelector<Selector, T1, T2, nDau> make(const edm::ParameterSet & cfg) {
00013           return CompositeCandSelector<Selector, T1, T2, nDau>(modules::make<Selector>(cfg));
00014         }
00015       };
00016 
00017     template<template<typename, typename> class Combiner, typename T1, typename T2, unsigned int nDau>
00018       struct ParameterAdapter<CompositeCandSelector<Combiner<StringCutObjectSelector<T1>, 
00019                                                              StringCutObjectSelector<T2> >, T1, T2, nDau> > {
00020         typedef CompositeCandSelector<Combiner<StringCutObjectSelector<T1>,
00021                                                StringCutObjectSelector<T2> >, T1, T2, nDau> Selector;
00022           static Selector make(const edm::ParameterSet & cfg) {
00023             StringCutObjectSelector<T1> s1(cfg.getParameter<std::string>("daughter1cut"));
00024             StringCutObjectSelector<T2> s2(cfg.getParameter<std::string>("daughter2cut"));
00025             Combiner<StringCutObjectSelector<T1>, StringCutObjectSelector<T2> > c(s1, s2);                                         
00026             return Selector(c);
00027           }
00028       };
00029 
00030   }
00031 }
00032 
00033 #endif