File indexing completed on 2025-02-05 23:51:45
0001 #ifndef TrackingForConversion_TrackChargeSelector_h
0002 #define TrackingForConversion_TrackChargeSelector_h
0003
0004
0005
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 }
0037 }
0038
0039 #endif