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 "Sct/AbcdModule.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