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