00001 00002 #ifndef GsfElectronBaseProducer_h 00003 #define GsfElectronBaseProducer_h 00004 00005 #include "RecoEgamma/EgammaElectronAlgos/interface/GsfElectronAlgo.h" 00006 00007 #include "FWCore/Framework/interface/EDProducer.h" 00008 #include "FWCore/Framework/interface/Event.h" 00009 #include "FWCore/Framework/interface/EventSetup.h" 00010 00011 namespace reco 00012 { 00013 class GsfElectron ; 00014 } 00015 00016 namespace edm 00017 { 00018 class ParameterSet ; 00019 class ConfigurationDescriptions ; 00020 } 00021 00022 #include "RecoEgamma/EgammaElectronAlgos/interface/GsfElectronAlgo.h" 00023 #include "DataFormats/Common/interface/Handle.h" 00024 00025 class GsfElectronBaseProducer : public edm::EDProducer 00026 { 00027 public: 00028 00029 static void fillDescription( edm::ParameterSetDescription & ) ; 00030 00031 explicit GsfElectronBaseProducer( const edm::ParameterSet & ) ; 00032 virtual ~GsfElectronBaseProducer() ; 00033 00034 00035 protected: 00036 00037 GsfElectronAlgo * algo_ ; 00038 00039 void beginEvent( edm::Event &, const edm::EventSetup & ) ; 00040 void fillEvent( edm::Event & ) ; 00041 void endEvent() ; 00042 reco::GsfElectron * newElectron() { return 0 ; } 00043 00044 // configurables 00045 GsfElectronAlgo::InputTagsConfiguration inputCfg_ ; 00046 GsfElectronAlgo::StrategyConfiguration strategyCfg_ ; 00047 GsfElectronAlgo::CutsConfiguration cutsCfg_ ; 00048 GsfElectronAlgo::CutsConfiguration cutsCfgPflow_ ; 00049 ElectronHcalHelper::Configuration hcalCfg_ ; 00050 ElectronHcalHelper::Configuration hcalCfgPflow_ ; 00051 00052 private : 00053 00054 // check expected configuration of previous modules 00055 bool ecalSeedingParametersChecked_ ; 00056 void checkEcalSeedingParameters( edm::ParameterSetID const & ) ; 00057 00058 } ; 00059 00060 #endif