00001 #ifndef RecoLocalCalo_EcalRecProducers_EcalUncalibRecHitRecWorkerWeights_hh 00002 #define RecoLocalCalo_EcalRecProducers_EcalUncalibRecHitRecWorkerWeights_hh 00003 00014 #include "RecoLocalCalo/EcalRecProducers/interface/EcalUncalibRecHitWorkerBaseClass.h" 00015 #include "RecoLocalCalo/EcalRecAlgos/interface/EcalUncalibRecHitRecWeightsAlgo.h" 00016 #include "FWCore/Framework/interface/ESHandle.h" 00017 #include "CondFormats/EcalObjects/interface/EcalPedestals.h" 00018 #include "CondFormats/EcalObjects/interface/EcalGainRatios.h" 00019 #include "CondFormats/EcalObjects/interface/EcalWeightXtalGroups.h" 00020 #include "CondFormats/EcalObjects/interface/EcalTBWeights.h" 00021 00022 #include "SimCalorimetry/EcalSimAlgos/interface/EBShape.h" 00023 #include "SimCalorimetry/EcalSimAlgos/interface/EEShape.h" 00024 00025 00026 00027 namespace edm { 00028 class Event; 00029 class EventSetup; 00030 class ParameterSet; 00031 } 00032 00033 class EcalUncalibRecHitWorkerWeights : public EcalUncalibRecHitWorkerBaseClass { 00034 00035 public: 00036 EcalUncalibRecHitWorkerWeights(const edm::ParameterSet&); 00037 virtual ~EcalUncalibRecHitWorkerWeights() {}; 00038 00039 void set(const edm::EventSetup& es); 00040 bool run(const edm::Event& evt, const EcalDigiCollection::const_iterator & digi, EcalUncalibratedRecHitCollection & result); 00041 00042 protected: 00043 00044 edm::ESHandle<EcalPedestals> peds; 00045 edm::ESHandle<EcalGainRatios> gains; 00046 edm::ESHandle<EcalWeightXtalGroups> grps; 00047 edm::ESHandle<EcalTBWeights> wgts; 00048 00049 double pedVec[3]; 00050 double pedRMSVec[3]; 00051 double gainRatios[3]; 00052 00053 const EcalWeightSet::EcalWeightMatrix* weights[2]; 00054 const EcalWeightSet::EcalChi2WeightMatrix* chi2mat[2]; 00055 00056 EcalUncalibRecHitRecWeightsAlgo<EBDataFrame> uncalibMaker_barrel_; 00057 EcalUncalibRecHitRecWeightsAlgo<EEDataFrame> uncalibMaker_endcap_; 00058 00059 const EEShape testbeamEEShape; // used in the chi2 00060 const EBShape testbeamEBShape; // can be replaced by simple shape arrays of floats in the future (kostas) 00061 00062 }; 00063 00064 #endif