![]() |
![]() |
00001 #ifndef RecoParticleFlow_PFProducer_PFProducer_h_ 00002 #define RecoParticleFlow_PFProducer_PFProducer_h_ 00003 00004 // system include files 00005 #include <string> 00006 00007 // user include files 00008 #include "FWCore/Framework/interface/Frameworkfwd.h" 00009 #include "FWCore/Framework/interface/EDProducer.h" 00010 #include "FWCore/Framework/interface/Event.h" 00011 00012 // useful? 00013 #include "FWCore/Framework/interface/MakerMacros.h" 00014 00015 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00016 00017 class PFAlgo; 00018 class PFEnergyCalibrationHF; 00019 00029 class PFProducer : public edm::EDProducer { 00030 public: 00031 explicit PFProducer(const edm::ParameterSet&); 00032 ~PFProducer(); 00033 00034 virtual void produce(edm::Event&, const edm::EventSetup&); 00035 virtual void beginJob(); 00036 virtual void beginRun(edm::Run &, const edm::EventSetup &); 00037 00038 private: 00039 00040 edm::InputTag inputTagBlocks_; 00041 edm::InputTag inputTagMuons_; 00042 edm::InputTag vertices_; 00043 edm::InputTag inputTagEgammaElectrons_; 00044 std::vector<edm::InputTag> inputTagCleanedHF_; 00045 std::string electronOutputCol_; 00046 std::string electronExtraOutputCol_; 00047 00049 bool verbose_; 00050 00051 // Post muon cleaning ? 00052 bool postMuonCleaning_; 00053 00054 // Use PF electrons ? 00055 bool usePFElectrons_; 00056 00057 // what about e/g electrons ? 00058 bool useEGammaElectrons_; 00059 00060 // Use vertices for Neutral particles ? 00061 bool useVerticesForNeutral_; 00062 00063 00065 std::auto_ptr<PFAlgo> pfAlgo_; 00066 00067 }; 00068 00069 #endif