CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
KFTrajectoryFitterESProducer.cc
Go to the documentation of this file.
4 
9 
14 
18 #include <memory>
19 
20 namespace {
21 
22  class KFTrajectoryFitterESProducer : public edm::ESProducer {
23  public:
24  KFTrajectoryFitterESProducer(const edm::ParameterSet& p);
25  std::unique_ptr<TrajectoryFitter> produce(const TrajectoryFitterRecord&);
26 
27  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
29  desc.add<std::string>("ComponentName", "KFFitter");
30  desc.add<std::string>("Propagator", "PropagatorWithMaterial");
31  desc.add<std::string>("Updator", "KFUpdator");
32  desc.add<std::string>("Estimator", "Chi2");
33  desc.add<std::string>("RecoGeometry", "GlobalDetLayerGeometry");
34  desc.add<int>("minHits", 3);
35  descriptions.add("KFTrajectoryFitter", desc);
36  }
37 
38  private:
43  const int minHits_;
44  };
45 
46  KFTrajectoryFitterESProducer::KFTrajectoryFitterESProducer(const edm::ParameterSet& p)
47  : minHits_{p.getParameter<int>("minHits")} {
48  std::string myname = p.getParameter<std::string>("ComponentName");
49  auto cc = setWhatProduced(this, myname);
50  propToken_ = cc.consumes(edm::ESInputTag("", p.getParameter<std::string>("Propagator")));
51  updToken_ = cc.consumes(edm::ESInputTag("", p.getParameter<std::string>("Updator")));
52  estToken_ = cc.consumes(edm::ESInputTag("", p.getParameter<std::string>("Estimator")));
53  geoToken_ = cc.consumes(edm::ESInputTag("", p.getParameter<std::string>("RecoGeometry")));
54  }
55 
56  std::unique_ptr<TrajectoryFitter> KFTrajectoryFitterESProducer::produce(const TrajectoryFitterRecord& iRecord) {
57  return std::make_unique<KFTrajectoryFitter>(
58  &iRecord.get(propToken_), &iRecord.get(updToken_), &iRecord.get(estToken_), minHits_, &iRecord.get(geoToken_));
59  }
60 
61 } // namespace
62 
64 
65 DEFINE_FWK_EVENTSETUP_MODULE(KFTrajectoryFitterESProducer);
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
Definition: ModuleFactory.h:60
void add(std::string const &label, ParameterSetDescription const &psetDescription)