00001 #ifndef RecoEcal_EgammaCoreTools_EcalClusterEnergyUncertaintyBaseClass_h 00002 #define RecoEcal_EgammaCoreTools_EcalClusterEnergyUncertaintyBaseClass_h 00003 00013 #include "RecoEcal/EgammaCoreTools/interface/EcalClusterFunctionBaseClass.h" 00014 00015 //#include "FWCore/ParameterSet/interface/ParameterSet.h" 00016 #include "FWCore/Framework/interface/ESHandle.h" 00017 00018 #include "CondFormats/EcalObjects/interface/EcalClusterEnergyUncertaintyParameters.h" 00019 00020 #include "DataFormats/EgammaReco/interface/BasicCluster.h" 00021 00022 namespace edm { 00023 class EventSetup; 00024 class ParameterSet; 00025 } 00026 00027 class EcalClusterEnergyUncertaintyBaseClass : public EcalClusterFunctionBaseClass { 00028 public: 00029 EcalClusterEnergyUncertaintyBaseClass(); 00030 EcalClusterEnergyUncertaintyBaseClass( const edm::ParameterSet & ) {}; 00031 virtual ~EcalClusterEnergyUncertaintyBaseClass(); 00032 00033 // get/set explicit methods for parameters 00034 const EcalClusterEnergyUncertaintyParameters * getParameters() const { return params_; } 00035 // check initialization 00036 void checkInit() const; 00037 00038 // compute the correction 00039 virtual float getValue( const reco::BasicCluster &, const EcalRecHitCollection & ) const = 0; 00040 virtual float getValue( const reco::SuperCluster &, const int mode ) const = 0; 00041 00042 00043 // set parameters 00044 virtual void init( const edm::EventSetup& es ); 00045 00046 protected: 00047 edm::ESHandle<EcalClusterEnergyUncertaintyParameters> esParams_; 00048 const EcalClusterEnergyUncertaintyParameters * params_; 00049 }; 00050 00051 #endif