00001 // 00002 // Toyoko Orimoto (Caltech), 10 July 2007 00003 // 00004 00005 #ifndef EcalLaserDbService_h 00006 #define EcalLaserDbService_h 00007 00008 #include <memory> 00009 #include <map> 00010 00011 #include "DataFormats/DetId/interface/DetId.h" 00012 #include "DataFormats/EcalDetId/interface/EBDetId.h" 00013 #include "DataFormats/EcalDetId/interface/EEDetId.h" 00014 #include "DataFormats/Provenance/interface/Timestamp.h" 00015 00016 #include "FWCore/Framework/interface/ModuleFactory.h" 00017 #include "FWCore/Framework/interface/ESProducer.h" 00018 00019 #include "CondFormats/EcalObjects/interface/EcalLaserAlphas.h" 00020 #include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosRef.h" 00021 #include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatios.h" 00022 00023 00024 class EcalLaserDbService { 00025 public: 00026 EcalLaserDbService (); 00027 EcalLaserDbService (const edm::ParameterSet&); 00028 00029 const EcalLaserAlphas* getAlphas () const; 00030 const EcalLaserAPDPNRatiosRef* getAPDPNRatiosRef () const; 00031 const EcalLaserAPDPNRatios* getAPDPNRatios () const; 00032 float getLaserCorrection (DetId const & xid, edm::Timestamp const & iTime) const; 00033 00034 void setAlphaData (const EcalLaserAlphas* fItem) {mAlphas_ = fItem;} 00035 void setAPDPNRefData (const EcalLaserAPDPNRatiosRef* fItem) {mAPDPNRatiosRef_ = fItem;} 00036 void setAPDPNData (const EcalLaserAPDPNRatios* fItem) {mAPDPNRatios_ = fItem;} 00037 00038 private: 00039 00040 int getLMNumber(DetId const & xid) const; 00041 00042 const EcalLaserAlphas* mAlphas_; 00043 const EcalLaserAPDPNRatiosRef* mAPDPNRatiosRef_; 00044 const EcalLaserAPDPNRatios* mAPDPNRatios_; 00045 00046 }; 00047 00048 #endif