CMS 3D CMS Logo

SmartPropagatorESProducer.cc
Go to the documentation of this file.
1 
8 
11 
17 
20 
23 
24 #include <memory>
25 
27 public:
30 
32  ~SmartPropagatorESProducer() override;
33 
34  // Operations
35  std::unique_ptr<Propagator> produce(const TrackingComponentsRecord&);
36 
37 private:
39  double theEpsilon;
43 };
44 
45 using namespace edm;
46 using namespace std;
47 
49  string myname = parameterSet.getParameter<string>("ComponentName");
50 
51  string propDir = parameterSet.getParameter<string>("PropagationDirection");
52 
53  if (propDir == "oppositeToMomentum")
55  else if (propDir == "alongMomentum")
57  else if (propDir == "anyDirection")
59  else
60  throw cms::Exception("SmartPropagatorESProducer") << "Wrong fit direction chosen in SmartPropagatorESProducer";
61 
62  theEpsilon = parameterSet.getParameter<double>("Epsilon");
63 
64  setWhatProduced(this, myname)
65  .setConsumes(magToken_)
66  .setConsumes(trackerToken_, edm::ESInputTag("", parameterSet.getParameter<string>("TrackerPropagator")))
67  .setConsumes(muonToken_, edm::ESInputTag("", parameterSet.getParameter<string>("MuonPropagator")));
68 }
69 
71 
72 std::unique_ptr<Propagator> SmartPropagatorESProducer::produce(const TrackingComponentsRecord& iRecord) {
73  return std::make_unique<SmartPropagator>(
75 }
76 
edm::ESGetToken< Propagator, TrackingComponentsRecord > trackerToken_
T getParameter(std::string const &) const
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:138
PropagationDirection thePropagationDirection
PropagationDirection
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
std::unique_ptr< Propagator > produce(const TrackingComponentsRecord &)
SmartPropagatorESProducer(const edm::ParameterSet &)
Constructor.
~SmartPropagatorESProducer() override
Destructor.
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magToken_
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
Definition: ModuleFactory.h:60
edm::ESGetToken< Propagator, TrackingComponentsRecord > muonToken_
HLT enums.
ParameterSet const & parameterSet(Provenance const &provenance)
Definition: Provenance.cc:11