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 #include "DataFormats/Common/interface/EDProduct.h" 00025 00026 class GsfElectronBaseProducer : public edm::EDProducer 00027 { 00028 public: 00029 00030 static void fillDescription( edm::ParameterSetDescription & ) ; 00031 00032 explicit GsfElectronBaseProducer( const edm::ParameterSet & ) ; 00033 virtual ~GsfElectronBaseProducer() ; 00034 00035 00036 protected: 00037 00038 GsfElectronAlgo * algo_ ; 00039 00040 void beginEvent( edm::Event &, const edm::EventSetup & ) ; 00041 void fillEvent( edm::Event & ) ; 00042 void endEvent() ; 00043 reco::GsfElectron * newElectron() { return 0 ; } 00044 00045 // configurables 00046 GsfElectronAlgo::InputTagsConfiguration inputCfg_ ; 00047 GsfElectronAlgo::StrategyConfiguration strategyCfg_ ; 00048 GsfElectronAlgo::CutsConfiguration cutsCfg_ ; 00049 GsfElectronAlgo::CutsConfiguration cutsCfgPflow_ ; 00050 ElectronHcalHelper::Configuration hcalCfg_ ; 00051 ElectronHcalHelper::Configuration hcalCfgPflow_ ; 00052 00053 private : 00054 00055 // check expected configuration of previous modules 00056 bool pfTranslatorParametersChecked_ ; 00057 void checkPfTranslatorParameters( edm::ParameterSetID const & ) ; 00058 bool ecalSeedingParametersChecked_ ; 00059 void checkEcalSeedingParameters( edm::ParameterSetID const & ) ; 00060 00061 } ; 00062 00063 #endif