Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:10:26

0001 #include "EventFilter/CSCRawToDigi/interface/CSCDMBTrailer.h"
0002 #include "EventFilter/CSCRawToDigi/interface/CSCDMBTrailer2005.h"
0003 #include "EventFilter/CSCRawToDigi/interface/CSCDMBTrailer2013.h"
0004 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0005 #include <iostream>
0006 
0007 CSCDMBTrailer::CSCDMBTrailer(uint16_t firmware_version) : theTrailerFormat(), theFirmwareVersion(firmware_version) {
0008   if (theFirmwareVersion == 2013) {
0009     theTrailerFormat = std::make_shared<CSCDMBTrailer2013>();
0010   } else {
0011     theTrailerFormat = std::make_shared<CSCDMBTrailer2005>();
0012   }
0013 }
0014 
0015 CSCDMBTrailer::CSCDMBTrailer(const uint16_t *buf, uint16_t firmware_version)
0016     : theTrailerFormat(), theFirmwareVersion(firmware_version) {
0017   if (theFirmwareVersion == 2013) {
0018     theTrailerFormat = std::make_shared<CSCDMBTrailer2013>(buf);
0019   } else {
0020     theTrailerFormat = std::make_shared<CSCDMBTrailer2005>(buf);
0021   }
0022 }
0023 
0024 CSCDMBTrailer2005 CSCDMBTrailer::dmbTrailer2005() const {
0025   const CSCDMBTrailer2005 *result = dynamic_cast<const CSCDMBTrailer2005 *>(theTrailerFormat.get());
0026   if (result == nullptr) {
0027     throw cms::Exception("Could not get 2005 DMB trailer format");
0028   }
0029   return *result;
0030 }
0031 
0032 CSCDMBTrailer2013 CSCDMBTrailer::dmbTrailer2013() const {
0033   const CSCDMBTrailer2013 *result = dynamic_cast<const CSCDMBTrailer2013 *>(theTrailerFormat.get());
0034   if (result == nullptr) {
0035     throw cms::Exception("Could not get 2013 DMB trailer format");
0036   }
0037   return *result;
0038 }