| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

Hardware.cc

Go to the documentation of this file.
00001 #include "Conventions/Hardware.h"
00002 
00003 #include <cctype>
00004 #include <string>
00005 #include <algorithm>
00006 using namespace std;
00007 
00008 
00009 static const char* names[] = {
00010   "Unknown",
00011   "Pmt8inch",
00012   "Pmt2inch",
00013   "Rpc",
00014   "Fee",
00015   "Fec",
00016   "Rot",
00017   "Rom",
00018   "HighVoltage",
00019   0
00020 };
00021 
00022 const char* DayaBay::Hardware::AsString(Hardware_t type)
00023 {
00024     if (type < 0 || type > kHighVoltage) return names[0];
00025     return names[type];        
00026 }
00027 
00028 DayaBay::Hardware::Hardware_t DayaBay::Hardware::FromString(const char* str)
00029 {
00030     string s = str;
00031     transform(s.begin(),s.end(),s.begin(),::toupper);
00032 
00033     for (int ind=1; names[ind]; ++ind) {
00034         if (s == names[ind]) return (Hardware::Hardware_t)ind;
00035     }
00036     return kUnknown;
00037 }
00038 
00039 DayaBay::HardwareId::~HardwareId()
00040 {
00041 }
00042 
00043 bool DayaBay::operator<(const DayaBay::HardwareId& a, 
00044                         const DayaBay::HardwareId& b)
00045 {
00046     return a.fullPackedData() < b.fullPackedData();
00047 }
00048 
00049 std::ostream& DayaBay::operator<<(std::ostream& str, 
00050                                   const DayaBay::HardwareId& hardwareId)
00051 {
00052   return str << DayaBay::Hardware::AsString(hardwareId.type())
00053              << " " << hardwareId.id();
00054 }
00055 
00056 std::ostream& DayaBay::operator<<(std::ostream& str, 
00057                                   const DayaBay::PmtHardwareId& pmtHrdwId)
00058 {
00059   return str << DayaBay::Hardware::AsString(pmtHrdwId.type())
00060              << " " << pmtHrdwId.id();
00061 }
00062 
00063 std::ostream& DayaBay::operator<<(std::ostream& str, 
00064                                   const DayaBay::RpcHardwareId& rpcHrdwId)
00065 {
00066   return str << DayaBay::Hardware::AsString(rpcHrdwId.type())
00067              << " panel: " << rpcHrdwId.panelId()
00068              << " layer: " << rpcHrdwId.layer()
00069              << " strip: " << rpcHrdwId.strip();
00070 }
00071 
00072 std::ostream& DayaBay::operator<<(std::ostream& str, 
00073                                   const DayaBay::FeeHardwareId& feeHrdwId)
00074 {
00075   return str << DayaBay::Hardware::AsString(feeHrdwId.type())
00076              << " board: " << feeHrdwId.boardId()
00077              << " connector: " << feeHrdwId.connector();
00078 }
00079 
00080 std::ostream& DayaBay::operator<<(std::ostream& str, 
00081                                   const DayaBay::FecHardwareId& fecHrdwId)
00082 {
00083   return str << DayaBay::Hardware::AsString(fecHrdwId.type())
00084              << " board: " << fecHrdwId.boardId()
00085              << " connector: " << fecHrdwId.connector();
00086 }
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:14:47 2011 for Conventions by doxygen 1.4.7