CMS 3D CMS Logo

CastorDbService.cc

Go to the documentation of this file.
00001 // ...CastorDbService...
00002 // first draft copy from CalibFormats/CastorDbService.cc
00003 //
00004 
00005 #include "FWCore/Framework/interface/eventsetupdata_registration_macro.h"
00006 
00007 #include "CalibFormats/CastorObjects/interface/CastorDbService.h"
00008 #include "CalibFormats/CastorObjects/interface/CastorCoderDb.h"
00009 #include "CalibFormats/CastorObjects/interface/QieShape.h"
00010 
00011 #include "CalibFormats/CastorObjects/interface/CastorCalibrations.h"
00012 #include "CalibFormats/CastorObjects/interface/CastorCalibrationWidths.h"
00013 
00014 #include "CondFormats/CastorObjects/interface/CastorPedestals.h"
00015 #include "CondFormats/CastorObjects/interface/CastorPedestalWidths.h"
00016 #include "CondFormats/CastorObjects/interface/CastorGains.h"
00017 #include "CondFormats/CastorObjects/interface/CastorGainWidths.h"
00018 #include "CondFormats/CastorObjects/interface/CastorQIEShape.h"
00019 #include "CondFormats/CastorObjects/interface/CastorQIEData.h"
00020 #include "CondFormats/CastorObjects/interface/CastorChannelQuality.h"
00021 #include "CondFormats/CastorObjects/interface/CastorElectronicsMap.h"
00022 
00023 
00024 CastorDbService::CastorDbService () 
00025   : 
00026   mQieShapeCache (0),
00027   mPedestals (0),
00028   mPedestalWidths (0),
00029   mGains (0),
00030   mGainWidths (0)
00031  {}
00032 
00033 bool CastorDbService::makeCastorCalibration (const HcalGenericDetId& fId, CastorCalibrations* fObject) const {
00034   if (fObject) {
00035     const CastorPedestal* pedestal = getPedestal (fId);
00036     const CastorGain* gain = getGain (fId);
00037     if (pedestal && gain) {
00038       *fObject = CastorCalibrations (gain->getValues (), pedestal->getValues ());
00039       return true;
00040     }
00041   }
00042   return false;
00043 }
00044 
00045 bool CastorDbService::makeCastorCalibrationWidth (const HcalGenericDetId& fId, CastorCalibrationWidths* fObject) const {
00046   if (fObject) {
00047     const CastorPedestalWidth* pedestal = getPedestalWidth (fId);
00048     const CastorGainWidth* gain = getGainWidth (fId);
00049     if (pedestal && gain) {
00050       float pedestalWidth [4];
00051       for (int i = 0; i < 4; i++) pedestalWidth [i] = pedestal->getWidth (i);
00052       *fObject = CastorCalibrationWidths (gain->getValues (), pedestalWidth);
00053       return true;
00054     }
00055   }
00056   return false;
00057 }  
00058 
00059 const CastorPedestal* CastorDbService::getPedestal (const HcalGenericDetId& fId) const {
00060   if (mPedestals) {
00061     return mPedestals->getValues (fId);
00062   }
00063   return 0;
00064 }
00065 
00066   const CastorPedestalWidth* CastorDbService::getPedestalWidth (const HcalGenericDetId& fId) const {
00067   if (mPedestalWidths) {
00068     return mPedestalWidths->getValues (fId);
00069   }
00070   return 0;
00071 }
00072 
00073 const CastorGain* CastorDbService::getGain (const HcalGenericDetId& fId) const {
00074   if (mGains) {
00075     return mGains->getValues(fId);
00076   }
00077   return 0;
00078 }
00079 
00080   const CastorGainWidth* CastorDbService::getGainWidth (const HcalGenericDetId& fId) const {
00081   if (mGainWidths) {
00082     return mGainWidths->getValues (fId);
00083   }
00084   return 0;
00085 }
00086 
00087 const CastorQIECoder* CastorDbService::getCastorCoder (const HcalGenericDetId& fId) const {
00088   if (mQIEData) {
00089     return mQIEData->getCoder (fId);
00090   }
00091   return 0;
00092 }
00093 
00094 const CastorQIEShape* CastorDbService::getCastorShape () const {
00095   if (mQIEData) {
00096     return &mQIEData->getShape ();
00097   }
00098   return 0;
00099 }
00100 const CastorElectronicsMap* CastorDbService::getCastorMapping () const {
00101   return mElectronicsMap;
00102 }
00103 
00104 EVENTSETUP_DATA_REG(CastorDbService);

Generated on Tue Jun 9 17:25:22 2009 for CMSSW by  doxygen 1.5.4