CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MultiRecHitCollectorESProducer.cc
Go to the documentation of this file.
7 
12 
13 #include <string>
14 #include <memory>
15 
16 using namespace edm;
17 
19 {
20  std::string myname = p.getParameter<std::string>("ComponentName");
21  pset_ = p;
22  setWhatProduced(this,myname);
23 }
24 
26 
27 boost::shared_ptr<MultiRecHitCollector>
29  std::string mode = "Grouped";
30  if (pset_.getParameter<std::string>("Mode")=="Simple") mode = "Simple";
31 
32  std::string mrhupdator = pset_.getParameter<std::string>("MultiRecHitUpdator");
33  std::string propagatorAlongName = pset_.getParameter<std::string>("propagatorAlong");
34  std::string estimatorName = pset_.getParameter<std::string>("estimator");
35  std::string measurementTrackerName = pset_.getParameter<std::string>("MeasurementTrackerName");
36 
38  iRecord.get(mrhupdator, mrhuhandle);
39  ESHandle<Propagator> propagatorhandle;
40  iRecord.getRecord<CkfComponentsRecord>().getRecord<TrackingComponentsRecord>().get(propagatorAlongName, propagatorhandle);
42  iRecord.getRecord<CkfComponentsRecord>().getRecord<TrackingComponentsRecord>().get(estimatorName, estimatorhandle);
43  ESHandle<MeasurementTracker> measurementhandle;
44  iRecord.getRecord<CkfComponentsRecord>().get(measurementTrackerName, measurementhandle);
45 
46  if (mode == "Grouped"){
47  std::string propagatorOppositeName = pset_.getParameter<std::string>("propagatorOpposite");
48  ESHandle<Propagator> propagatorOppositehandle;
49  iRecord.getRecord<CkfComponentsRecord>().getRecord<TrackingComponentsRecord>().get(propagatorOppositeName, propagatorOppositehandle);
50  _collector = boost::shared_ptr<MultiRecHitCollector>(new GroupedDAFHitCollector(measurementhandle.product(),
51  mrhuhandle.product(),
52  estimatorhandle.product(),
53  propagatorhandle.product(),
54  propagatorOppositehandle.product()));
55  } else {
56  _collector = boost::shared_ptr<MultiRecHitCollector>(new SimpleDAFHitCollector(measurementhandle.product(),
57  mrhuhandle.product(),
58  estimatorhandle.product(),
59  propagatorhandle.product()));
60  }
61 
62  return _collector;
63 }
64 
65 
T getParameter(std::string const &) const
MultiRecHitCollectorESProducer(const edm::ParameterSet &p)
void get(HolderT &iHolder) const
T const * product() const
Definition: ESHandle.h:62
int mode
Definition: AMPTWrapper.h:139
boost::shared_ptr< MultiRecHitCollector > produce(const MultiRecHitRecord &)