File indexing completed on 2023-03-17 10:59:20
0001 #ifndef EventFilter_CSCRawToDigi_CSCDMBTrailer_h
0002 #define EventFilter_CSCRawToDigi_CSCDMBTrailer_h
0003
0004 #include <cassert>
0005 #include <iosfwd>
0006 #include <cstring> // bzero
0007 #include <memory>
0008 #include "FWCore/Utilities/interface/Exception.h"
0009 #include "DataFormats/CSCDigi/interface/CSCDMBStatusDigi.h"
0010 #include "EventFilter/CSCRawToDigi/interface/CSCVDMBTrailerFormat.h"
0011 #include "EventFilter/CSCRawToDigi/interface/CSCDMBHeader.h"
0012
0013 struct CSCDMBTrailer2005;
0014 struct CSCDMBTrailer2013;
0015
0016 class CSCDMBTrailer {
0017 public:
0018 CSCDMBTrailer(uint16_t firmware_version = 2005);
0019
0020 CSCDMBTrailer(const uint16_t* buf, uint16_t firmware_version = 2005);
0021
0022
0023 void setEventInformation(const CSCDMBHeader& header) { return theTrailerFormat->setEventInformation(header); };
0024
0025 unsigned crateID() const { return theTrailerFormat->crateID(); };
0026 unsigned dmbID() const { return theTrailerFormat->dmbID(); };
0027
0028 unsigned dmb_l1a() const { return theTrailerFormat->dmb_l1a(); };
0029 unsigned dmb_bxn() const { return theTrailerFormat->dmb_bxn(); };
0030
0031 unsigned alct_endtimeout() const { return theTrailerFormat->alct_endtimeout(); };
0032 unsigned tmb_endtimeout() const { return theTrailerFormat->tmb_endtimeout(); };
0033 unsigned cfeb_endtimeout() const { return theTrailerFormat->cfeb_endtimeout(); };
0034
0035 unsigned alct_starttimeout() const { return theTrailerFormat->alct_starttimeout(); };
0036 unsigned tmb_starttimeout() const { return theTrailerFormat->tmb_starttimeout(); };
0037 unsigned cfeb_starttimeout() const { return theTrailerFormat->cfeb_starttimeout(); };
0038
0039 unsigned cfeb_movlp() const { return theTrailerFormat->cfeb_movlp(); };
0040 unsigned dmb_l1pipe() const { return theTrailerFormat->dmb_l1pipe(); };
0041
0042 unsigned alct_empty() const { return theTrailerFormat->alct_empty(); };
0043 unsigned tmb_empty() const { return theTrailerFormat->tmb_empty(); };
0044 unsigned cfeb_empty() const { return theTrailerFormat->cfeb_empty(); };
0045
0046 unsigned alct_half() const { return theTrailerFormat->alct_half(); };
0047 unsigned tmb_half() const { return theTrailerFormat->tmb_half(); };
0048 unsigned cfeb_half() const { return theTrailerFormat->cfeb_half(); };
0049
0050 unsigned alct_full() const { return theTrailerFormat->alct_full(); };
0051 unsigned tmb_full() const { return theTrailerFormat->tmb_full(); };
0052 unsigned cfeb_full() const { return theTrailerFormat->cfeb_full(); };
0053
0054 unsigned crc22() const { return theTrailerFormat->crc22(); };
0055 unsigned crc_lo_parity() const { return theTrailerFormat->crc_lo_parity(); };
0056 unsigned crc_hi_parity() const { return theTrailerFormat->crc_hi_parity(); };
0057
0058 unsigned short* data() { return theTrailerFormat->data(); };
0059 unsigned short* data() const { return theTrailerFormat->data(); };
0060
0061 unsigned sizeInWords() const { return theTrailerFormat->sizeInWords(); };
0062
0063 bool check() const { return theTrailerFormat->check(); };
0064
0065
0066 CSCDMBTrailer2005 dmbTrailer2005() const;
0067 CSCDMBTrailer2013 dmbTrailer2013() const;
0068
0069 private:
0070 std::shared_ptr<CSCVDMBTrailerFormat> theTrailerFormat;
0071 int theFirmwareVersion;
0072 };
0073
0074 #endif