00001 #include "TimeWalkSummaryWriter.h" 00002 #include "SctData/TimeWalkTestResult.h" 00003 #include "SummaryManager.h" 00004 #include <iomanip> 00005 00006 using std::ios; 00007 using std::endl; 00008 using std::setprecision; 00009 00010 namespace SctData { 00011 namespace TestSummary{ 00012 void TimeWalkSummaryWriter::write(const TestResult& t, std::ostream& out) const throw(Sct::IoError, Sct::LogicError) 00013 { 00014 const TimeWalkTestResult& result = dynamic_cast<const TimeWalkTestResult&>(t); 00015 out << ios::fixed; 00016 00017 out << "#\n%TimeWalkTest\n#\n"; 00018 00019 out << "#\n#TW\n#\n#"; 00020 for (unsigned ichip=0; ichip<nChipLink; ichip+=1){ 00021 out << getChipName(ichip) << "\t"; 00022 } 00023 out << endl; 00024 for (unsigned ichip=0; ichip<nChipLink; ichip+=1){ 00025 out << setprecision(3) << result.getChipResult(ichip).timewalk << "\t"; 00026 } 00027 out << "\n#\n#"; 00028 for (unsigned ichip=nChipLink; ichip<nChipModule; ichip+=1){ 00029 out << getChipName(ichip) << "\t"; 00030 } 00031 out << endl; 00032 for (unsigned ichip=nChipLink; ichip<nChipModule; ichip+=1){ 00033 out << setprecision(3) << result.getChipResult(ichip).timewalk << "\t"; 00034 } 00035 out << "\n#\n#TCAL\n#"; 00036 for (unsigned ichip=0; ichip<nChipLink; ichip+=1){ 00037 out << getChipName(ichip) << "\t"; 00038 } 00039 out << endl; 00040 for (unsigned ichip=0; ichip<nChipLink; ichip+=1){ 00041 out << setprecision(3) << result.getChipResult(ichip).calibration << "\t"; 00042 } 00043 out << "\n#\n#"; 00044 for (unsigned ichip=nChipLink; ichip<nChipModule; ichip+=1){ 00045 out << getChipName(ichip) << "\t"; 00046 } 00047 out << endl; 00048 for (unsigned ichip=nChipLink; ichip<nChipModule; ichip+=1){ 00049 out << setprecision(3) << result.getChipResult(ichip).calibration << "\t"; 00050 } 00051 out << "\n#" << endl; 00052 00053 SummaryWriter::write(t.getDefects(), out); 00054 } 00055 00056 bool TimeWalkSummaryWriter::inMap = SummaryManager::instance().addWriter("SctData::TimeWalkTestResult", shared_ptr<SummaryWriter>(new TimeWalkSummaryWriter())); 00057 } 00058 }