00001 #ifndef __PBSCSECTOR_H__ 00002 #define __PBSCSECTOR_H__ 00003 00004 #include <Rtypes.h> 00005 #ifndef __EMCSECTOR_H__ 00006 #include "EmcSector.h" 00007 #endif 00008 00009 #include <vector> 00010 00011 class PHTimeStamp; 00012 00032 class PbScSector: public EmcSector 00033 { 00034 public: 00035 00036 PbScSector(int &, PHTimeStamp* ts = 0 ); 00037 00038 virtual ~PbScSector(); 00039 00041 virtual EmcSuperModule * getSuperModule(int SMNumber) { 00042 return SM[SMNumber]; 00043 } 00044 00047 virtual void GetEnergyCalibration(int, float&, float&, float&); 00048 00049 void CorrectEnergyCalibration(const char * fname); 00050 00051 static size_t GetSize(void) { return fgSize; } 00052 static size_t size(void) { return GetSize(); } 00053 static size_t Size(void) { return GetSize(); } 00054 00055 static size_t NumberOfSuperModules(void) { 00056 return fgNumberOfSuperModules; 00057 } 00058 00059 private: 00060 00061 void BuildFromFiles(void); 00062 void BuildFromDB(PHTimeStamp*); 00063 void Reset(void); 00064 00065 protected: 00066 00067 std::vector<EmcSuperModule*> SM; 00068 std::vector<float> fECalib; // Energy calibration (GeV/ADC count) at t=0 00069 std::vector<float> fNorm0; // Normalization at t=0 (Laser/Ref*TestPulse) 00070 00071 private: 00072 static size_t fgSize; 00073 static size_t fgNumberOfSuperModules; 00074 }; 00075 00076 #endif