CMS 3D CMS Logo

GsfTrajectorySmootherESProducer.cc
Go to the documentation of this file.
6 
10 
20 
21 #include <string>
22 #include <memory>
23 
27 public:
29 
30  std::unique_ptr<TrajectorySmoother> produce(const TrajectoryFitterRecord&);
31 
32  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
33 
34 private:
39  const double scale_;
40 };
41 
43  : scale_(p.getParameter<double>("ErrorRescaling")) {
44  std::string myname = p.getParameter<std::string>("ComponentName");
45  auto cc = setWhatProduced(this, myname);
46  matToken_ = cc.consumes(edm::ESInputTag("", p.getParameter<std::string>("MaterialEffectsUpdator")));
47  propagatorToken_ = cc.consumes(edm::ESInputTag("", p.getParameter<std::string>("GeometricalPropagator")));
48  mergerToken_ = cc.consumes(edm::ESInputTag("", p.getParameter<std::string>("Merger")));
49  geoToken_ = cc.consumes(edm::ESInputTag("", p.getParameter<std::string>("RecoGeometry")));
50 }
51 
52 std::unique_ptr<TrajectorySmoother> GsfTrajectorySmootherESProducer::produce(const TrajectoryFitterRecord& iRecord) {
53  //
54  // propagator
55  //
57  //
58  // merger
59  //
61  //
62  // estimator
63  //
64  // double chi2Cut = pset_.getParameter<double>("ChiSquarCut");
65  double chi2Cut(100.);
67  //
68  // geometry
69  // create algorithm
70  //
71  // bool matBefUpd = pset_.getParameter<bool>("MaterialBeforeUpdate");
72  return std::make_unique<GsfTrajectorySmoother>(
73  propagator,
75  estimator,
76  merger,
77  // matBefUpd,
78  scale_,
79  true, //BM should this be taken from parameterSet?
80  &iRecord.get(geoToken_));
81 }
82 
85  desc.add<std::string>("ComponentName");
86  desc.add<std::string>("MaterialEffectsUpdator");
87  desc.add<std::string>("GeometricalPropagator");
88  desc.add<std::string>("Merger");
89  desc.add<std::string>("RecoGeometry");
90  desc.add<double>("ErrorRescaling");
91 
92  descriptions.addDefault(desc);
93 }
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:163
std::unique_ptr< TrajectorySmoother > produce(const TrajectoryFitterRecord &)
GsfTrajectorySmootherESProducer(const edm::ParameterSet &p)
edm::ESGetToken< DetLayerGeometry, RecoGeometryRecord > geoToken_
void addDefault(ParameterSetDescription const &psetDescription)
edm::ESGetToken< MultiGaussianStateMerger< 5 >, TrackingComponentsRecord > mergerToken_
edm::ESGetToken< Propagator, TrackingComponentsRecord > propagatorToken_
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
Definition: ModuleFactory.h:60
edm::ESGetToken< GsfMaterialEffectsUpdator, TrackingComponentsRecord > matToken_
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)