CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/TrackingTools/Producers/src/TrajectoryFilterESProducer.cc

Go to the documentation of this file.
00001 #include "TrackingTools/Producers/interface/TrajectoryFilterESProducer.h"
00002 
00003 #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilterFactory.h"
00004 //#include "TrackingTools/TrajectoryFiltering/interface/ClusterShapeTrajectoryFilter.h"
00005 
00006 #include "MagneticField/Engine/interface/MagneticField.h"
00007 
00008 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00009 
00010 TrajectoryFilterESProducer::TrajectoryFilterESProducer(const edm::ParameterSet& iConfig)
00011 {
00012   componentName = iConfig.getParameter<std::string>("ComponentName");
00013   
00014   
00015   filterPset = iConfig.getParameter<edm::ParameterSet>("filterPset");
00016   componentType = filterPset.getParameter<std::string>("ComponentType");
00017   
00018   edm::LogInfo("TrajectoryFilterESProducer")<<"configured to produce: "<<componentType
00019                                             <<" with name: "<<componentName;
00020       
00021   //this is a bit nasty, but still ok
00022   if (componentType.find("ClusterShape")==std::string::npos){
00023     setWhatProduced(this, componentName);
00024   }
00025   else{
00026     //    setWhatProduced(this, &TrajectoryFilterESProducer::produceClusterShapeFilter, edm::es::Label(componentName));
00027   }
00028 }
00029 
00030 
00031 TrajectoryFilterESProducer::~TrajectoryFilterESProducer(){}
00032 
00033 TrajectoryFilterESProducer::ReturnType
00034 TrajectoryFilterESProducer::produce(const TrajectoryFilter::Record &)
00035 {
00036    using namespace edm::es;
00037    edm::LogInfo("TrajectoryFilterESProducer")<<"producing: "<<componentName<<" of type: "<<componentType;
00038 
00039    //produce the filter using the plugin factory
00040    TrajectoryFilterESProducer::ReturnType aFilter(TrajectoryFilterFactory::get()->create(componentType ,filterPset));
00041    
00042    return aFilter ;
00043 }
00044 
00045 
00046 /*
00047 TrajectoryFilterESProducer::ReturnType
00048 TrajectoryFilterESProducer::produceClusterShapeFilter(const TrajectoryFilter::Record &iRecord)
00049 {
00050    using namespace edm::es;
00051    edm::LogInfo("TrajectoryFilterESProducer")<<"producing: "<<componentName<<" of type: "<<componentType;
00052 
00053    //retrieve magentic fiedl
00054    edm::ESHandle<MagneticField> field;
00055    iRecord.getRecord<IdealMagneticFieldRecord>().get(field);
00056 
00057    //retrieve geometry
00058    edm::ESHandle<TrackingGeometry> tracker;
00059    iRecord.getRecord<TrackerDigiGeometryRecord>().get(tracker);
00060 
00061    //produce the filter using the plugin factory
00062    TrajectoryFilterESProducer::ReturnType aFilter(new ClusterShapeTrajectoryFilter(tracker.product(),
00063                                                                                    field.product(),
00064                                                                                    filterPset.getParameter<int>("Mode"));
00065    return aFilter ;
00066 }
00067 */