CMS 3D CMS Logo

GsfTrajectoryFitterESProducer.cc
Go to the documentation of this file.
7 
11 
21 
22 #include <string>
23 #include <memory>
24 
25 #include <iostream>
26 
30 public:
33  std::unique_ptr<TrajectoryFitter> produce(const TrajectoryFitterRecord&);
34 
35  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
36 
37 private:
42 };
43 
45  std::string myname = p.getParameter<std::string>("ComponentName");
46  auto cc = setWhatProduced(this, myname);
47  matUpdatorToken_ = cc.consumes(edm::ESInputTag("", p.getParameter<std::string>("MaterialEffectsUpdator")));
48  propagatorToken_ = cc.consumes(edm::ESInputTag("", p.getParameter<std::string>("GeometricalPropagator")));
49  mergerToken_ = cc.consumes(edm::ESInputTag("", p.getParameter<std::string>("Merger")));
50  geoToken_ = cc.consumes(edm::ESInputTag("", p.getParameter<std::string>("RecoGeometry")));
51 }
52 
54 
55 std::unique_ptr<TrajectoryFitter> GsfTrajectoryFitterESProducer::produce(const TrajectoryFitterRecord& iRecord) {
56  //
57  // propagator
58  //
60  //
61  // merger
62  //
64  //
65  // estimator
66  //
67  // double chi2Cut = pset_.getParameter<double>("ChiSquarCut");
68  double chi2Cut(100.);
70 
71  //
72  // create algorithm
73  //
74  return std::make_unique<GsfTrajectoryFitter>(
75  propagator, GsfMultiStateUpdator(), estimator, merger, &iRecord.get(geoToken_));
76 }
77 
80  desc.add<std::string>("ComponentName");
81  desc.add<std::string>("MaterialEffectsUpdator");
82  desc.add<std::string>("GeometricalPropagator");
83  desc.add<std::string>("Merger");
84  desc.add<std::string>("RecoGeometry");
85  descriptions.addDefault(desc);
86 }
87 
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:163
edm::ESGetToken< GsfMaterialEffectsUpdator, TrackingComponentsRecord > matUpdatorToken_
edm::ESGetToken< MultiGaussianStateMerger< 5 >, TrackingComponentsRecord > mergerToken_
void addDefault(ParameterSetDescription const &psetDescription)
GsfTrajectoryFitterESProducer(const edm::ParameterSet &p)
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
Definition: ModuleFactory.h:60
std::unique_ptr< TrajectoryFitter > produce(const TrajectoryFitterRecord &)
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::ESGetToken< Propagator, TrackingComponentsRecord > propagatorToken_
edm::ESGetToken< DetLayerGeometry, RecoGeometryRecord > geoToken_