Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-02-05 23:51:10

0001 #ifndef UtilAlgos_PdgIdSelector_h
0002 #define UtilAlgos_PdgIdSelector_h
0003 #include "FWCore/Framework/interface/ConsumesCollector.h"
0004 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0005 #include "CommonTools/UtilAlgos/interface/ParameterAdapter.h"
0006 #include "CommonTools/Utils/interface/PdgIdSelector.h"
0007 
0008 namespace reco {
0009   namespace modules {
0010 
0011     template <>
0012     struct ParameterAdapter<PdgIdSelector> {
0013       static PdgIdSelector make(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC) {
0014         return PdgIdSelector(cfg.getParameter<std::vector<int> >("pdgId"));
0015       }
0016 
0017       static void fillPSetDescription(edm::ParameterSetDescription& desc) { desc.add<std::vector<int> >("pdgId", {}); }
0018     };
0019 
0020   }  // namespace modules
0021 }  // namespace reco
0022 
0023 // Introducing a simpler way to use a string object selector outside of the
0024 // heavily-templated infrastructure above. This simply translates the cfg
0025 // into the string that the functor expects.
0026 namespace reco {
0027   class PdgIdSelectorHandler : public PdgIdSelector {
0028   public:
0029     explicit PdgIdSelectorHandler(const edm::ParameterSet& cfg)
0030         : PdgIdSelector(cfg.getParameter<std::vector<int> >("pdgId")) {}
0031   };
0032 }  // namespace reco
0033 
0034 #endif