00001 #include "DataFormats/SiPixelRawData/interface/SiPixelRawDataError.h" 00002 00003 //--------------------------------------------------------------------------- 00011 //--------------------------------------------------------------------------- 00012 00013 //Constructors 00014 00015 SiPixelRawDataError::SiPixelRawDataError() {} 00016 00017 SiPixelRawDataError::SiPixelRawDataError(cms_uint32_t errorWord32, const int errorType, int fedId) : 00018 errorWord32_(errorWord32), 00019 errorType_(errorType), 00020 fedId_(fedId) 00021 { 00022 setMessage(); 00023 } 00024 00025 SiPixelRawDataError::SiPixelRawDataError(cms_uint64_t errorWord64, const int errorType, int fedId) : 00026 errorWord64_(errorWord64), 00027 errorType_(errorType), 00028 fedId_(fedId) 00029 { 00030 setMessage(); 00031 } 00032 00033 //Destructor 00034 00035 SiPixelRawDataError::~SiPixelRawDataError() {} 00036 00037 //functions to get error words and types 00038 00039 void SiPixelRawDataError::setWord32(cms_uint32_t errorWord32) { 00040 errorWord32_ = errorWord32; 00041 } 00042 00043 void SiPixelRawDataError::setWord64(cms_uint64_t errorWord64) { 00044 errorWord64_ = errorWord64; 00045 } 00046 00047 void SiPixelRawDataError::setType(int errorType) { 00048 errorType_ = errorType; 00049 setMessage(); 00050 } 00051 00052 void SiPixelRawDataError::setFedId(int fedId) { 00053 fedId_ = fedId; 00054 } 00055 00056 void SiPixelRawDataError::setMessage() { 00057 switch (errorType_) { 00058 case(25) : { 00059 errorMessage_ = "Error: ROC=25"; 00060 break; 00061 } 00062 case(26) : { 00063 errorMessage_ = "Error: Gap word"; 00064 break; 00065 } 00066 case(27) : { 00067 errorMessage_ = "Error: Dummy word"; 00068 break; 00069 } 00070 case(28) : { 00071 errorMessage_ = "Error: FIFO nearly full"; 00072 break; 00073 } 00074 case(29) : { 00075 errorMessage_ = "Error: Timeout"; 00076 break; 00077 } 00078 case(30) : { 00079 errorMessage_ = "Error: Trailer"; 00080 break; 00081 } 00082 case(31) : { 00083 errorMessage_ = "Error: Event number mismatch"; 00084 break; 00085 } 00086 case(32) : { 00087 errorMessage_ = "Error: Invalid or missing header"; 00088 break; 00089 } 00090 case(33) : { 00091 errorMessage_ = "Error: Invalid or missing trailer"; 00092 break; 00093 } 00094 case(34) : { 00095 errorMessage_ = "Error: Size mismatch"; 00096 break; 00097 } 00098 case(35) : { 00099 errorMessage_ = "Error: Invalid channel"; 00100 break; 00101 } 00102 case(36) : { 00103 errorMessage_ = "Error: Invalid ROC number"; 00104 break; 00105 } 00106 case(37) : { 00107 errorMessage_ = "Error: Invalid dcol/pixel address"; 00108 break; 00109 } 00110 default: errorMessage_ = "Error: Unknown error type"; 00111 }; 00112 }