![]() |
![]() |
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 */