00001 #ifndef EMCCALIBCONSTSVC_H_ 00002 #define EMCCALIBCONSTSVC_H_ 00003 00004 #include "GaudiKernel/IInterface.h" 00005 #include "GaudiKernel/Kernel.h" 00006 #include "GaudiKernel/Service.h" 00007 #include "GaudiKernel/IDataProviderSvc.h" 00008 #include "EmcCalibConstSvc/IEmcCalibConstSvc.h" 00009 #include <vector> 00010 00011 00012 class EmcCalibConstSvc: public Service, virtual public IEmcCalibConstSvc{ 00013 public: 00014 EmcCalibConstSvc( const std::string& name, ISvcLocator* svcloc ); 00015 ~EmcCalibConstSvc(); 00016 00017 virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvUnknown); 00018 virtual StatusCode initialize(); 00019 virtual StatusCode finalize(); 00020 00021 IDataProviderSvc* m_calDataSvc; 00022 00023 /* Access by users */ 00024 00025 double getDigiCalibConst(int No) const; 00026 int getIxtalNumber(int No) const; 00027 00028 //get the size of the vectors 00029 int getDigiCalibConstNo() const; 00030 int getIxtalNumberNo() const; 00031 00032 //getPartID()=0, or 1, or 2, here endcap_east(0), barrel(1), endcap_west(2) 00033 int getIndex( unsigned int PartId, 00034 unsigned int ThetaIndex, 00035 unsigned int PhiIndex) const; 00036 unsigned int getPartID(int Index) const; 00037 unsigned int getThetaIndex( int Index) const ; 00038 unsigned int getPhiIndex( int Index) const ; 00039 double getCrystalEmaxData( int Index) const; 00040 00041 void Dump(); 00042 public: 00043 EmcStructure *m_theEmcStruc; 00044 double m_CrystalEmaxData[6240]; 00045 private: 00046 00047 // IEmcRecGeoSvc* m_emcRecGeoSvc; 00048 00049 00050 00051 }; 00052 00053 #endif /* EMCCALIBCONSTSVC_H_ */