00001 #ifndef SCTTEST_SCANMAP_H
00002 #define SCTTEST_SCANMAP_H
00003
00004 #include <map>
00005 #include <vector>
00006 #include <string>
00007 #include <boost/shared_ptr.hpp>
00008 #include "CommonWithDsp/sctStructure.h"
00009 #include "ScanInfo.h"
00010
00011 using std::multimap;
00012 using std::vector;
00013 using std::string;
00014 using boost::shared_ptr;
00015
00016 namespace SctTest {
00017
00018 class ModuleDataRecord;
00019
00023 class ScanMap {
00024 public:
00026 static ScanMap& instance();
00027
00032 void initialize(string fileName);
00033
00038 string getDataFile(string serialNum, const ABCDModule& config, unsigned short scanVar) const;
00039
00043 static string convertSerial(string serialNum);
00044
00045 private:
00046 ScanMap() {}
00047 string getThresholdDataFile(string serialNum, const ABCDModule& config) const;
00048 string getStrobeDataFile(string serialNum, const ABCDModule& config) const;
00049
00050 void addFullBypassTest(const ModuleDataRecord& mdr);
00051 void addPipelineTest(const ModuleDataRecord& mdr);
00052 void addStrobeDelay(const ModuleDataRecord& mdr);
00053 void addThreePointGain(const ModuleDataRecord& mdr);
00054 void addTrim(const ModuleDataRecord& mdr);
00055 void addResponseCurve(const ModuleDataRecord& mdr);
00056 void addNoise(const ModuleDataRecord& mdr);
00057 void addTimewalk(const ModuleDataRecord& mdr);
00058 string constructFileName(string path, unsigned int runNumber, unsigned int scanNumber) const;
00059
00060 typedef multimap<ScanInfo, string > DigitalMap;
00061 DigitalMap digitalMap;
00062 typedef multimap<string, ThresholdScanDetails> ThresholdMap;
00063 ThresholdMap thresholdMap;
00064 typedef multimap<string, StrobeDelayScanDetails> StrobeMap;
00065 StrobeMap strobeMap;
00066 };
00067 }
00068
00069 #endif //SCTTEST_SCANMAP_H