00001 #ifndef NOISEOCCUPANCYALGORITHM_H
00002 #define NOISEOCCUPANCYALGORITHM_H
00003
00004 #include "AnalysisAlgorithm.h"
00005 class TF1;
00006
00007 namespace SctData {
00008 class ChipNOResult;
00009 class NoiseOccupancyTestResult;
00010 class ChipConfiguration;
00011 class OccupancyProjector;
00012 class ModuleDefectList;
00013 }
00014
00015 namespace SctAnalysis {
00016
00017 class NoiseOccupancyAlgorithm : public AnalysisAlgorithm {
00018 public:
00022 virtual boost::shared_ptr<AnalysisAlgorithm> clone(const TestData& testData, const string& moduleName) const throw();
00026 NoiseOccupancyAlgorithm(const TestData& testData, const string& moduleName) throw() : AnalysisAlgorithm(testData, moduleName) {}
00030 virtual ~NoiseOccupancyAlgorithm() throw();
00035 virtual void canAddFitScanResult(const string& name) throw(Sct::LogicError, Sct::IoError);
00040 virtual void canAddRawScanResult(const string& name) throw(Sct::LogicError, Sct::IoError);
00044 static SctData::ChipNOResult analyzeChip(const unsigned ichip, const SctData::OccupancyProjector&, const SctData::ChipConfiguration&, SctData::ModuleDefectList& defects) throw(Sct::LogicError);
00045 private:
00046 NoiseOccupancyAlgorithm() {}
00047 void init() throw();
00048
00051 void analyze() throw(Sct::LogicError);
00052 static bool inMap;
00053 };
00054 }
00055 #endif //#ifndef NOISEOCCUPANCYALGORITHM_H