#include <RawVarcErrorInTfBlock.h>
Inheritance diagram for RawVarcErrorInTfBlock:

Public Member Functions | |
| RawVarcErrorInTfBlock () | |
| RawVarcErrorInTfBlock (const Int_t *block) | |
| virtual | ~RawVarcErrorInTfBlock () |
| Int_t | GetRun () const |
| Short_t | GetSubRun () const |
| Short_t | GetRunType () const |
| VldTimeStamp | GetTimeStamp () const |
| Int_t | GetCrateId () const |
| Int_t | GetTimeFrame () const |
| Int_t | GetNumberOfSparsErrors () const |
| Int_t | GetNumberOfEtcErrors () const |
| const Int_t * | GetErrorValues () const |
| Bool_t | UnpackSparsError (UInt_t indx, UShort_t &timeBlock, UShort_t &varcId, UShort_t &errCode) const |
| Bool_t | UnpackEtcError (UInt_t indx, UShort_t &timeBlock, UShort_t &varcId, UShort_t &etcNum, UShort_t &errRegister) const |
| virtual std::ostream & | FormatToOStream (std::ostream &os, Option_t *option="") const |
| RawVarcErrorInTfBlock (const RawVarcErrorInTfBlock &rhs) | |
| RawVarcErrorInTfBlock & | operator= (const RawVarcErrorInTfBlock &rhs) |
Static Public Member Functions | |
| void | SetDebugFlags (const UInt_t dbgflgs) |
| UInt_t | GetDebugFlags () |
Protected Member Functions | |
| void | BuildIndxToOffset () const |
Protected Attributes | |
| Bool_t | fIndxToOffsetBuilt |
| std::vector< Int_t > | fIndxToOffsetSpars |
| not written out | |
| std::vector< Int_t > | fIndxToOffsetEtc |
| not written out | |
Static Private Attributes | |
| UInt_t | fgDebugFlags = 0 |
| not written out | |
|
|
Definition at line 60 of file RawVarcErrorInTfBlock.cxx. 00061 : fIndxToOffsetBuilt(false) 00062 { 00063 // Default constructor 00064 }
|
|
|
Definition at line 67 of file RawVarcErrorInTfBlock.cxx. 00068 : RawDataBlock(block), fIndxToOffsetBuilt(false) 00069 { 00070 // stored block format is: 00071 //--------------------- 00072 // 0 # words in block 00073 // 1 checksum 00074 // 2 Block Id 00075 //----- 00076 // 3 run # 00077 // 4 {subrun#| run type} 00078 // 5 time (sec) 00079 // 6 time (nsec) 00080 // 7 time frame # 00081 // 8 # of sparse errors 00082 // 9 # of etc errors 00083 // * Followed by (for 2nd version of block): 00084 // * numSparsErrorValues + numEtcErrorValues longs packed as follows 00085 // * NOTE: these are interspersed!!! 00086 // * 00087 // * [0:15] ETC_ERR : error code from ETC/sparsifier error register, 16 bits 00088 // * [16:18] ETC_NUM : ETC number, 3 bits (0 for sparsifier errors) 00089 // * [19:20] VARC_ID : VARC ID, 2 bits 00090 // * [21:22] : unused, 2 bits 00091 // * [23:23] : error source 0=ETC 1=sparsifier 00092 // * [24:31] TB_ID : time block ID, 16 bits 00093 }
|
|
|
Definition at line 96 of file RawVarcErrorInTfBlock.cxx. 00097 {
00098 // dtor
00099 }
|
|
|
Definition at line 56 of file RawVarcErrorInTfBlock.h. References fIndxToOffsetBuilt, fIndxToOffsetEtc, and fIndxToOffsetSpars. 00057 : RawDataBlock(rhs), fIndxToOffsetBuilt(false) 00058 { fIndxToOffsetSpars.clear(); fIndxToOffsetEtc.clear(); }
|
|
|
Definition at line 324 of file RawVarcErrorInTfBlock.cxx. References fIndxToOffsetBuilt, fIndxToOffsetEtc, fIndxToOffsetSpars, GetNumberOfEtcErrors(), GetNumberOfSparsErrors(), MSG, and zzzz_last. Referenced by FormatToOStream(), UnpackEtcError(), and UnpackSparsError(). 00325 {
00326 // build lookup so we can map "indx" to "offset" in error value
00327 // region for Spars and Etc errors
00328 if (fIndxToOffsetBuilt) return; // already done
00329
00330 fIndxToOffsetBuilt = true;
00331
00332 UInt_t nspars = GetNumberOfSparsErrors();
00333 UInt_t netc = GetNumberOfEtcErrors();
00334
00335 UInt_t n = nspars + netc;
00336 for (UInt_t i=0; i<n; i++) {
00337 Int_t offset = zzzz_last + i;
00338 if (offset >= fSize) {
00339 // this shouldn't happen
00340 MSG("RawData",Msg::kError)
00341 << "BuildIndxToOffset i " << i << " offset " << offset
00342 << " fSize " << fSize << endl;
00343 }
00344 Int_t value = fRawBlock[offset];
00345 Int_t errSrc = (value>>errSrcShift)&errSrcMask;
00346 if (errSrc == errSrcWasSpars)
00347 fIndxToOffsetSpars.push_back(offset);
00348 else if (errSrc == errSrcWasEtc)
00349 fIndxToOffsetEtc.push_back(offset);
00350 else
00351 MSG("RawData",Msg::kError)
00352 << "BuildIndxToOffset entry " << i
00353 << " was neither Spars nor Etc" << endl;
00354 }
00355
00356 if (fIndxToOffsetSpars.size() != nspars ||
00357 fIndxToOffsetEtc.size() != netc )
00358 MSG("RawData",Msg::kError)
00359 << endl
00360 << "BuildIndxToOffset size mismatch (unpacked,expected)"
00361 << " Spars (" << fIndxToOffsetSpars.size() << "," << nspars << ")"
00362 << " Etc (" << fIndxToOffsetEtc.size() << "," << netc << ")"
00363 << endl;
00364
00365 return;
00366 }
|
|
||||||||||||
|
Reimplemented from RawDataBlock. Definition at line 254 of file RawVarcErrorInTfBlock.cxx. References VldTimeStamp::AsString(), BuildIndxToOffset(), fgDebugFlags, fIndxToOffsetEtc, fIndxToOffsetSpars, RawDataBlock::FormatToOStream(), GetCrateId(), GetNumberOfEtcErrors(), GetNumberOfSparsErrors(), GetRun(), GetRunType(), GetSubRun(), GetTimeFrame(), GetTimeStamp(), option, UnpackEtcError(), and UnpackSparsError(). 00256 {
00257
00258 if (fgDebugFlags & kdbg_ForceHexDump) option = "x";
00259
00260 RawDataBlock::FormatToOStream(os,option);
00261 if (option[0] == 'X') return os;
00262
00263 // additional block specific formatted output is done here
00264
00265 os << " TimeStamp " << GetTimeStamp().AsString("c")
00266 << " TimeFrame " << GetTimeFrame() << endl;
00267 os << " Run " << GetRun()
00268 << " SubRun " << GetSubRun()
00269 << " RunType " << GetRunType();
00270 int crateid = GetCrateId();
00271
00272 // force everything unpacked in case of sizing errors
00273 if (!fIndxToOffsetBuilt) BuildIndxToOffset();
00274
00275 int nerrSpars = TMath::Max(GetNumberOfSparsErrors(),
00276 (Int_t)fIndxToOffsetSpars.size());;
00277 int nerrEtc = TMath::Max(GetNumberOfEtcErrors(),
00278 (Int_t)fIndxToOffsetEtc.size());
00279 os << " Crate " << (crateid&0x3f)
00280 << " (0x" << hex << crateid << dec << ") had: "
00281 << endl;
00282
00283
00284 if (nerrSpars) {
00285 os << " SparsErrors: " << endl;
00286 for (int indxs = 0; indxs < nerrSpars; indxs++) {
00287 UShort_t timeBlock, varcId, errCode;
00288 Bool_t unpk_ok =
00289 UnpackSparsError(indxs,timeBlock,varcId,errCode);
00290 os << " [" << setw(3) << indxs << "] "
00291 << ((unpk_ok) ? " " : "?")
00292 << " TB " << setw(5) << timeBlock
00293 << " VarcId " << varcId
00294 << " ErrorCode " << setw(5) << errCode
00295 << " ( 0x" << hex << setw(4) << errCode << " )" << dec << endl;
00296 }
00297 }
00298 else {
00299 os << " No Spars Errors" << endl;
00300 }
00301
00302 if (nerrEtc) {
00303 os << " EtcErrors: " << endl;
00304 for (int indxe = 0; indxe < nerrEtc; indxe++) {
00305 UShort_t timeBlock, varcId, etcNum, errCode;
00306 Bool_t unpk_ok =
00307 UnpackEtcError(indxe,timeBlock,varcId,etcNum,errCode);
00308 os << " [" << setw(3) << indxe << "] "
00309 << ((unpk_ok) ? " " : "?")
00310 << " TB " << setw(5) << timeBlock
00311 << " VarcId " << varcId << " etcNum " << etcNum
00312 << " ErrorCode " << setw(5) << errCode
00313 << " ( 0x" << hex << setw(4) << errCode << " )" << dec << endl;
00314 }
00315 }
00316 else {
00317 os << " No Etc Errors" << endl;
00318 }
00319
00320 return os;
00321 }
|
|
|
Definition at line 150 of file RawVarcErrorInTfBlock.cxx. Referenced by FarDetVarcErrorsDump::Ana(), FormatToOStream(), and FarDetDataQualityModule::ProcessBlock(). 00151 {
00152 // get the crate id
00153 if (fSize > indx_crateid) return fRawBlock[indx_crateid];
00154 return -1;
00155 }
|
|
|
Definition at line 53 of file RawVarcErrorInTfBlock.h. 00053 { return fgDebugFlags; }
|
|
|
Definition at line 182 of file RawVarcErrorInTfBlock.cxx. 00183 {
00184 // get ptr to the raw list of error values
00185 // since Spars and Etc errors are intermingled this is all we
00186 // can do at this level
00187 if (fSize >= zzzz_last) return fRawBlock + zzzz_last;
00188 return 0;
00189 }
|
|
|
Definition at line 174 of file RawVarcErrorInTfBlock.cxx. Referenced by FarPlaneCheckout::Ana(), FarDetVarcErrorsDump::Ana(), BuildIndxToOffset(), FormatToOStream(), and FarDetDataQualityModule::ProcessBlock(). 00175 {
00176 // get the # of Etc errors
00177 if (fSize > indx_netcerr) return fRawBlock[indx_netcerr];
00178 return -1;
00179 }
|
|
|
Definition at line 166 of file RawVarcErrorInTfBlock.cxx. Referenced by FarPlaneCheckout::Ana(), FarDetVarcErrorsDump::Ana(), BuildIndxToOffset(), AlgCalDetSI::FillVarcErrs(), FormatToOStream(), and FarDetDataQualityModule::ProcessBlock(). 00167 {
00168 // get the # of Sparsification errors
00169 if (fSize > indx_nsparserr) return fRawBlock[indx_nsparserr];
00170 return -1;
00171 }
|
|
|
Definition at line 126 of file RawVarcErrorInTfBlock.cxx. Referenced by FormatToOStream(). 00127 {
00128 // get the run number
00129 if (fSize > indx_run) return fRawBlock[indx_run];
00130 return -1;
00131 }
|
|
|
Definition at line 142 of file RawVarcErrorInTfBlock.cxx. Referenced by FormatToOStream(). 00143 {
00144 // get the run type
00145 if (fSize > indx_runtype) return fRawBlock[indx_runtype]&0xffff;
00146 return -1;
00147 }
|
|
|
Definition at line 134 of file RawVarcErrorInTfBlock.cxx. Referenced by FormatToOStream(). 00135 {
00136 // get the subrun number
00137 if (fSize > indx_subrun) return (fRawBlock[indx_subrun]>>16)&0xffff;
00138 return -1;
00139 }
|
|
|
Definition at line 158 of file RawVarcErrorInTfBlock.cxx. Referenced by AlgCalDetSI::FillVarcErrs(), and FormatToOStream(). 00159 {
00160 // get the time frame
00161 if (fSize > indx_tf) return fRawBlock[indx_tf];
00162 return -1;
00163 }
|
|
|
Definition at line 116 of file RawVarcErrorInTfBlock.cxx. References indx_nsec, and indx_sec. Referenced by FormatToOStream(). 00117 {
00118 // get the timestamp
00119 if (fSize > indx_nsec)
00120 return VldTimeStamp(fRawBlock[indx_sec],fRawBlock[indx_nsec]);
00121
00122 return VldTimeStamp((time_t)0,(Int_t)0);
00123 }
|
|
|
Definition at line 102 of file RawVarcErrorInTfBlock.cxx. References fIndxToOffsetBuilt, fIndxToOffsetEtc, fIndxToOffsetSpars, and RawDataBlock::operator=(). 00103 {
00104 // deep copy assignment
00105 if (this != &rhs) {
00106 RawDataBlock::operator=(rhs);
00107 // clear the unpacked info to allow it to be re-filled
00108 fIndxToOffsetBuilt = false;
00109 fIndxToOffsetSpars.clear();
00110 fIndxToOffsetEtc.clear();
00111 }
00112 return *this;
00113 }
|
|
|
Definition at line 52 of file RawVarcErrorInTfBlock.h. References fgDebugFlags. 00052 {fgDebugFlags=dbgflgs;}
|
|
||||||||||||||||||||||||
|
Definition at line 221 of file RawVarcErrorInTfBlock.cxx. References BuildIndxToOffset(), and fIndxToOffsetEtc. Referenced by FarDetVarcErrorsDump::Ana(), FormatToOStream(), and FarDetDataQualityModule::ProcessBlock(). 00224 {
00225 // unpack the spars error at index "indx"
00226 // return "false" if there was a problem
00227 // (indx out-of-range or source tagging wasn't as expected)
00228
00229 if (!fIndxToOffsetBuilt) BuildIndxToOffset();
00230 Int_t offset = fSize+1; // in case of bad indx
00231 if (indx < fIndxToOffsetEtc.size())
00232 offset = fIndxToOffsetEtc[indx];
00233
00234 if (fSize >= offset) {
00235 Int_t value = fRawBlock[offset];
00236 timeBlock = ( value >> tbIdShift ) & tbIdMask;
00237 varcId = ( value >> varcIdShift ) & varcIdMask;
00238 etcNum = ( value >> etcNumShift ) & etcNumMask;
00239 errCode = value & errCodeMask;
00240
00241 return ( ((value>>errSrcShift)&errSrcMask) == errSrcWasEtc );
00242 }
00243 else {
00244 timeBlock = (UShort_t) -1;
00245 varcId = (UShort_t) -1;
00246 etcNum = (UShort_t) -1;
00247 errCode = (UShort_t) -1;
00248 return false;
00249 }
00250
00251 }
|
|
||||||||||||||||||||
|
Definition at line 192 of file RawVarcErrorInTfBlock.cxx. References BuildIndxToOffset(), and fIndxToOffsetSpars. Referenced by FarDetVarcErrorsDump::Ana(), FormatToOStream(), and FarDetDataQualityModule::ProcessBlock(). 00194 {
00195 // unpack the spars error at index "indx"
00196 // return "false" if there was a problem
00197 // (indx out-of-range or source tagging wasn't as expected)
00198
00199 if (!fIndxToOffsetBuilt) BuildIndxToOffset();
00200 Int_t offset = fSize+1; // in case of bad indx
00201 if (indx < fIndxToOffsetSpars.size())
00202 offset = fIndxToOffsetSpars[indx];
00203
00204 if (fSize >= offset) {
00205 Int_t value = fRawBlock[offset];
00206 timeBlock = ( value >> tbIdShift ) & tbIdMask;
00207 varcId = ( value >> varcIdShift ) & varcIdMask;
00208 errCode = value & errCodeMask;
00209
00210 return ( ((value>>errSrcShift)&errSrcMask) == errSrcWasSpars );
00211 }
00212 else {
00213 timeBlock = (UShort_t) -1;
00214 varcId = (UShort_t) -1;
00215 errCode = (UShort_t) -1;
00216 return false;
00217 }
00218 }
|
|
|
not written out
Definition at line 14 of file RawVarcErrorInTfBlock.cxx. Referenced by FormatToOStream(), and SetDebugFlags(). |
|
|
Definition at line 66 of file RawVarcErrorInTfBlock.h. Referenced by BuildIndxToOffset(), operator=(), and RawVarcErrorInTfBlock(). |
|
|
not written out
Definition at line 68 of file RawVarcErrorInTfBlock.h. Referenced by BuildIndxToOffset(), FormatToOStream(), operator=(), RawVarcErrorInTfBlock(), and UnpackEtcError(). |
|
|
not written out
Definition at line 67 of file RawVarcErrorInTfBlock.h. Referenced by BuildIndxToOffset(), FormatToOStream(), operator=(), RawVarcErrorInTfBlock(), and UnpackSparsError(). |
1.3.9.1