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 class GBRForest; 00020 00030 class PFProducer : public edm::EDProducer { 00031 public: 00032 explicit PFProducer(const edm::ParameterSet&); 00033 ~PFProducer(); 00034 00035 virtual void produce(edm::Event&, const edm::EventSetup&); 00036 virtual void beginJob(); 00037 virtual void beginRun(edm::Run &, const edm::EventSetup &); 00038 00039 private: 00040 00041 edm::InputTag inputTagBlocks_; 00042 edm::InputTag inputTagMuons_; 00043 edm::InputTag vertices_; 00044 edm::InputTag inputTagEgammaElectrons_; 00045 std::vector<edm::InputTag> inputTagCleanedHF_; 00046 std::string electronOutputCol_; 00047 std::string electronExtraOutputCol_; 00048 std::string photonExtraOutputCol_; 00049 00050 //Use of HO clusters and links in PF Reconstruction 00051 bool useHO_; 00052 00054 bool verbose_; 00055 00056 // Post muon cleaning ? 00057 bool postMuonCleaning_; 00058 00059 // Use PF electrons ? 00060 bool usePFElectrons_; 00061 00062 // Use PF photons ? 00063 bool usePFPhotons_; 00064 00065 // Use photon regression 00066 bool usePhotonReg_; 00067 bool useRegressionFromDB_; 00068 const GBRForest * ReaderGC_; 00069 const GBRForest* ReaderLC_; 00070 const GBRForest* ReaderRes_; 00071 // what about e/g electrons ? 00072 bool useEGammaElectrons_; 00073 00074 // Use vertices for Neutral particles ? 00075 bool useVerticesForNeutral_; 00076 00077 // Take PF cluster calibrations from Global Tag ? 00078 bool useCalibrationsFromDB_; 00079 00080 // Name of the calibration functions to read from the database 00081 // std::vector<std::string> fToRead; 00082 00084 std::auto_ptr<PFAlgo> pfAlgo_; 00085 00086 }; 00087 00088 #endif