Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:40

0001 // -*- C++ -*-
0002 //
0003 // Package:    TrajectoryFilterAnalyzer
0004 // Class:      TrajectoryFilterAnalyzer
0005 //
0006 /**\class TrajectoryFilterAnalyzer TrajectoryFilterAnalyzer.cc TrackingTools/TrajectoryFilterAnalyzer/src/TrajectoryFilterAnalyzer.cc
0007 
0008  Description: <one line class summary>
0009 
0010  Implementation:
0011      <Notes on implementation>
0012 */
0013 //
0014 // Original Author:  Jean-Roch Vlimant
0015 //         Created:  Thu Oct  4 21:42:40 CEST 2007
0016 //
0017 //
0018 
0019 // system include files
0020 #include <memory>
0021 
0022 // user include files
0023 #include "FWCore/Framework/interface/Frameworkfwd.h"
0024 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0025 
0026 #include "FWCore/Framework/interface/Event.h"
0027 #include "FWCore/Framework/interface/MakerMacros.h"
0028 #include "FWCore/Framework/interface/ConsumesCollector.h"
0029 
0030 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0031 
0032 #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h"
0033 #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilterFactory.h"
0034 
0035 class TrajectoryFilterAnalyzer : public edm::one::EDAnalyzer<> {
0036 public:
0037   explicit TrajectoryFilterAnalyzer(const edm::ParameterSet&);
0038   ~TrajectoryFilterAnalyzer();
0039 
0040 private:
0041   virtual void analyze(const edm::Event&, const edm::EventSetup&);
0042   std::vector<std::unique_ptr<TrajectoryFilter>> filters;
0043 };
0044 
0045 TrajectoryFilterAnalyzer::TrajectoryFilterAnalyzer(const edm::ParameterSet& iConfig) {
0046   using VPSet = std::vector<edm::ParameterSet>;
0047   VPSet filterPSets = iConfig.getParameter<std::vector<edm::ParameterSet>>("filters");
0048   edm::LogInfo("TrajectoryFilterAnalyzer")
0049       << " I am happy to try and get: " << filterPSets.size() << " TrajectoryFilter from TrajectoryFilterFactory";
0050   for (const auto& pset : filterPSets) {
0051     const std::string& type = pset.getParameter<std::string>("ComponentType");
0052     edm::ConsumesCollector&& iC = consumesCollector();
0053     filters.emplace_back(TrajectoryFilterFactory::get()->create(type, pset, iC));
0054     edm::LogInfo("TrajectoryFilterAnalyzer")
0055         << "I was able to create: " << type << "\nof type: " << filters.back()->name();
0056   }
0057 }
0058 
0059 TrajectoryFilterAnalyzer::~TrajectoryFilterAnalyzer() = default;
0060 
0061 void TrajectoryFilterAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {}
0062 
0063 //define this as a plug-in
0064 DEFINE_FWK_MODULE(TrajectoryFilterAnalyzer);