Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef TrackingForConversion_TrackChargeSelector_h
0002 #define TrackingForConversion_TrackChargeSelector_h
0003 /* \class TrackChargeSelector
0004  *
0005  * \author Domenico Giordano, CERN
0006  *
0007  */
0008 
0009 struct TrackChargeSelector {
0010   TrackChargeSelector(int charge) : charge_(charge) {}
0011   template <typename T>
0012   bool operator()(const T& t) const {
0013     return (t.charge() == charge_);
0014   }
0015 
0016 private:
0017   int charge_;
0018 };
0019 
0020 #include "FWCore/Framework/interface/ConsumesCollector.h"
0021 #include "CommonTools/UtilAlgos/interface/ParameterAdapter.h"
0022 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0023 
0024 namespace reco {
0025   namespace modules {
0026 
0027     template <>
0028     struct ParameterAdapter<TrackChargeSelector> {
0029       static TrackChargeSelector make(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC) {
0030         return TrackChargeSelector(cfg.getParameter<int>("charge"));
0031       }
0032 
0033       static void fillPSetDescription(edm::ParameterSetDescription& desc) { desc.add<int>("charge", 0); }
0034     };
0035 
0036   }  // namespace modules
0037 }  // namespace reco
0038 
0039 #endif