CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/RecoParticleFlow/PFProducer/plugins/PFProducer.h

Go to the documentation of this file.
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