![]() |
![]() |
00001 #include "TrackingTools/Producers/interface/CompositeTrajectoryFilterESProducer.h" 00002 00003 #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilterFactory.h" 00004 #include "TrackingTools/TrajectoryFiltering/interface/CompositeTrajectoryFilter.h" 00005 00006 #include "MagneticField/Engine/interface/MagneticField.h" 00007 00008 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00009 00010 CompositeTrajectoryFilterESProducer::CompositeTrajectoryFilterESProducer(const edm::ParameterSet& iConfig) 00011 { 00012 componentName = iConfig.getParameter<std::string>("ComponentName"); 00013 filterNames = iConfig.getParameter<std::vector<std::string> >("filterNames"); 00014 00015 edm::LogInfo("CompositeTrajectoryFilterESProducer")<<"configured to produce: CompositeTrajectoryFilterESProducer" 00016 <<" with name: "<<componentName; 00017 setWhatProduced(this, componentName); 00018 } 00019 00020 00021 CompositeTrajectoryFilterESProducer::~CompositeTrajectoryFilterESProducer(){} 00022 00023 CompositeTrajectoryFilterESProducer::ReturnType 00024 CompositeTrajectoryFilterESProducer::produce(const TrajectoryFilter::Record & record) 00025 { 00026 using namespace edm::es; 00027 edm::LogInfo("CompositeTrajectoryFilterESProducer")<<"producing: "<<componentName<<" of type: CompositeTrajectoryFilterESProducer"; 00028 00029 std::vector<const TrajectoryFilter*> filters; 00030 edm::ESHandle<TrajectoryFilter> aFilterH; 00031 for (unsigned int i=0;i!=filterNames.size();++i) 00032 { 00033 record.get(filterNames[i], aFilterH); 00034 edm::LogInfo("CompositeTrajectoryFilterESProducer")<<"adding: "<<filterNames[i]; 00035 filters.push_back(aFilterH.product()); 00036 } 00037 00038 CompositeTrajectoryFilterESProducer::ReturnType aFilter( new CompositeTrajectoryFilter(filters)); 00039 00040 return aFilter ; 00041 } 00042