File indexing completed on 2024-04-06 12:01:16
0001 #ifndef UtilAlgos_OrSelector_h
0002 #define UtilAlgos_OrSelector_h
0003 #include "CommonTools/UtilAlgos/interface/ParameterAdapter.h"
0004 #include "CommonTools/Utils/interface/OrSelector.h"
0005
0006 namespace reco {
0007 namespace modules {
0008
0009 template <typename S1, typename S2, typename S3, typename S4, typename S5>
0010 struct ParameterAdapter<OrSelector<S1, S2, S3, S4, S5> > {
0011 static OrSelector<S1, S2, S3, S4, S5> make(const edm::ParameterSet& cfg) {
0012 return OrSelector<S1, S2, S3, S4, S5>(modules::make<S1>(cfg),
0013 modules::make<S2>(cfg),
0014 modules::make<S3>(cfg),
0015 modules::make<S4>(cfg),
0016 modules::make<S5>(cfg));
0017 }
0018 };
0019
0020 template <typename S1, typename S2, typename S3, typename S4>
0021 struct ParameterAdapter<OrSelector<S1, S2, S3, S4> > {
0022 static OrSelector<S1, S2, S3, S4> make(const edm::ParameterSet& cfg) {
0023 return OrSelector<S1, S2, S3, S4>(
0024 modules::make<S1>(cfg), modules::make<S2>(cfg), modules::make<S3>(cfg), modules::make<S4>(cfg));
0025 }
0026 };
0027
0028 template <typename S1, typename S2, typename S3>
0029 struct ParameterAdapter<OrSelector<S1, S2, S3> > {
0030 static OrSelector<S1, S2, S3> make(const edm::ParameterSet& cfg) {
0031 return OrSelector<S1, S2, S3>(modules::make<S1>(cfg), modules::make<S2>(cfg), modules::make<S3>(cfg));
0032 }
0033 };
0034
0035 template <typename S1, typename S2>
0036 struct ParameterAdapter<OrSelector<S1, S2> > {
0037 static OrSelector<S1, S2> make(const edm::ParameterSet& cfg) {
0038 return OrSelector<S1, S2>(modules::make<S1>(cfg), modules::make<S2>(cfg));
0039 }
0040 };
0041
0042 }
0043 }
0044
0045 #endif