CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/RecoTracker/SiTrackerMRHTools/plugins/MultiTrackFilterCollectorESProducer.cc

Go to the documentation of this file.
00001 #include "RecoTracker/SiTrackerMRHTools/plugins/MultiTrackFilterCollectorESProducer.h"
00002 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
00003 #include "TrackingTools/KalmanUpdators/interface/Chi2MeasurementEstimatorBase.h"
00004 #include "RecoTracker/MeasurementDet/interface/MeasurementTracker.h"
00005 #include "RecoTracker/SiTrackerMRHTools/interface/SimpleMTFHitCollector.h"
00006 
00007 #include "FWCore/Framework/interface/EventSetup.h"
00008 #include "FWCore/Framework/interface/ESHandle.h"
00009 #include "FWCore/Framework/interface/ModuleFactory.h"
00010 #include "FWCore/Framework/interface/ESProducer.h"
00011 
00012 #include <string>
00013 #include <memory>
00014 
00015 using namespace edm;
00016 
00017 MultiTrackFilterCollectorESProducer::MultiTrackFilterCollectorESProducer(const edm::ParameterSet & p) 
00018 {
00019   std::string myname = p.getParameter<std::string>("ComponentName");
00020   pset_ = p;
00021   setWhatProduced(this,myname);
00022 }
00023 
00024 MultiTrackFilterCollectorESProducer::~MultiTrackFilterCollectorESProducer() {}
00025 
00026 boost::shared_ptr<MultiTrackFilterHitCollector> 
00027 MultiTrackFilterCollectorESProducer::produce(const MultiRecHitRecord& iRecord){
00028     
00029   std::string mrhupdator             = pset_.getParameter<std::string>("MultiRecHitUpdator"); 
00030   std::string propagatorAlongName    = pset_.getParameter<std::string>("propagatorAlong");
00031   std::string estimatorName          = pset_.getParameter<std::string>("estimator"); 
00032   std::string measurementTrackerName = pset_.getParameter<std::string>("MeasurementTrackerName");
00033 
00034   ESHandle<SiTrackerMultiRecHitUpdatorMTF> mrhuhandle;
00035   iRecord.get(mrhupdator, mrhuhandle);
00036   ESHandle<Propagator>  propagatorhandle;
00037   iRecord.getRecord<CkfComponentsRecord>().getRecord<TrackingComponentsRecord>().get(propagatorAlongName, propagatorhandle);
00038   ESHandle<Chi2MeasurementEstimatorBase> estimatorhandle;
00039   iRecord.getRecord<CkfComponentsRecord>().getRecord<TrackingComponentsRecord>().get(estimatorName, estimatorhandle);
00040   ESHandle<MeasurementTracker> measurementhandle;
00041   iRecord.getRecord<CkfComponentsRecord>().get(measurementTrackerName, measurementhandle);       
00042   
00043   
00044   //std::string propagatorOppositeName = pset_.getParameter<std::string>("propagatorOpposite");  
00045   //  ESHandle<Propagator>  propagatorOppositehandle;
00046   //  iRecord.getRecord<CkfComponentsRecord>().getRecord<TrackingComponentsRecord>().get(propagatorOppositeName, propagatorOppositehandle); 
00047     _collector  = boost::shared_ptr<MultiTrackFilterHitCollector>(new SimpleMTFHitCollector(measurementhandle.product(),
00048                                                                                             mrhuhandle.product(),
00049                                                                                             estimatorhandle.product(),
00050                                                                                             propagatorhandle.product()));
00051     return _collector;
00052 }
00053 
00054