00001 00035 #ifndef BDSWICCALIBRATOR_H 00036 #define BDSWICCALIBRATOR_H 00037 00038 #include <BeamDataUtil/BDSwicPedAccessor.h> 00039 #include <BeamDataUtil/BDSwicMaskAccessor.h> 00040 00041 #include <list> 00042 00043 class BDSwicDevice; 00044 class RawBeamMonHeaderBlock; 00045 class RawBeamMonBlock; 00046 00047 00048 class BDSwicCalibrator { 00049 00050 static BDSwicCalibrator* fInstance; 00051 BDSwicCalibrator(); 00052 00053 public: 00054 00055 ~BDSwicCalibrator(); 00056 static BDSwicCalibrator& Get(); 00057 00058 typedef std::list<BDSwicDevice*> DevList; 00059 00061 void Calibrate(const RawBeamMonHeaderBlock& rbmhb, 00062 const RawBeamMonBlock& rbmb); 00063 00065 const DevList& GetDevices() { return fDevList; } 00066 00070 bool AddDevice(BDSwicDevice& dev); 00071 00073 void RemoveDevice(BDSwicDevice& dev); 00074 00076 void Clear() { fDevList.clear(); } 00077 00079 void CalibrateOne(const RawBeamMonHeaderBlock& rbmhb, 00080 const RawBeamMonBlock& rbmb, BDSwicDevice& sd); 00081 00082 00083 private: 00084 00085 BDSwicPedAccessor fPeds; 00086 BDSwicMaskAccessor fMask; 00087 00088 DevList fDevList; 00089 00090 }; 00091 #endif // BDSWICCALIBRATOR_H
1.3.9.1