00001 #ifndef RecoParticleFlow_PFProducer_PFBlockProducer_h_ 00002 #define RecoParticleFlow_PFProducer_PFBlockProducer_h_ 00003 00004 // system include files 00005 #include <memory> 00006 #include <string> 00007 00008 // user include files 00009 #include "FWCore/Framework/interface/Frameworkfwd.h" 00010 #include "FWCore/Framework/interface/EDProducer.h" 00011 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00012 00013 #include "FWCore/Framework/interface/Event.h" 00014 #include "FWCore/Framework/interface/MakerMacros.h" 00015 00016 #include "RecoParticleFlow/PFProducer/interface/PFBlockAlgo.h" 00017 00018 00030 class FSimEvent; 00031 00032 00033 00034 class PFBlockProducer : public edm::EDProducer { 00035 public: 00036 00037 explicit PFBlockProducer(const edm::ParameterSet&); 00038 00039 ~PFBlockProducer(); 00040 00041 virtual void produce(edm::Event&, const edm::EventSetup&); 00042 00043 virtual void beginJob(); 00044 00045 virtual void beginRun(edm::Run & r, const edm::EventSetup & c); 00046 00047 private: 00048 00049 00050 00051 edm::InputTag inputTagRecTracks_; 00052 edm::InputTag inputTagGsfRecTracks_; 00053 edm::InputTag inputTagConvBremGsfRecTracks_; 00054 edm::InputTag inputTagRecMuons_; 00055 edm::InputTag inputTagPFNuclear_; 00056 edm::InputTag inputTagPFClustersECAL_; 00057 edm::InputTag inputTagPFClustersHCAL_; 00058 edm::InputTag inputTagPFClustersHO_; 00059 edm::InputTag inputTagPFClustersHFEM_; 00060 edm::InputTag inputTagPFClustersHFHAD_; 00061 edm::InputTag inputTagPFClustersPS_; 00062 edm::InputTag inputTagPFConversions_; 00063 edm::InputTag inputTagPFV0_; 00064 edm::InputTag inputTagEGPhotons_; 00065 00066 // Link track and HCAL clusters to HO clusters ? 00067 bool useHO_; 00068 00070 bool verbose_; 00071 00073 bool useNuclear_; 00074 00076 bool useEGPhotons_; 00077 00079 bool useConversions_; 00080 00082 bool useConvBremGsfTracks_; 00083 00085 bool useV0_; 00086 00088 bool usePFatHLT_; 00089 00090 // Glowinski & Gouzevitch 00091 // Use the optimized KDTree Track/Ecal linker? 00092 bool useKDTreeTrackEcalLinker_; 00093 // !Glowinski & Gouzevitch 00094 00096 PFBlockAlgo pfBlockAlgo_; 00097 00098 }; 00099 00100 #endif