CMS 3D CMS Logo

CSCDMBHeader.cc
Go to the documentation of this file.
5 #include <iostream>
6 
7 
8 CSCDMBHeader::CSCDMBHeader(uint16_t firmware_version)
9 : theHeaderFormat(), theFirmwareVersion(firmware_version)
10 {
11 
12  if (theFirmwareVersion == 2013) {
13  theHeaderFormat = boost::shared_ptr<CSCVDMBHeaderFormat>(new CSCDMBHeader2013());
14  } else {
15  theHeaderFormat = boost::shared_ptr<CSCVDMBHeaderFormat>(new CSCDMBHeader2005());
16  }
17 
18 }
19 
20 CSCDMBHeader::CSCDMBHeader(unsigned short * buf, uint16_t firmware_version)
21 : theHeaderFormat(), theFirmwareVersion(firmware_version)
22 {
23  if (theFirmwareVersion == 2013) {
24  theHeaderFormat = boost::shared_ptr<CSCVDMBHeaderFormat>(new CSCDMBHeader2013(buf));
25  } else {
26  theHeaderFormat = boost::shared_ptr<CSCVDMBHeaderFormat>(new CSCDMBHeader2005(buf));
27  }
28 }
29 
31  CSCDMBHeader2005 * result = dynamic_cast<CSCDMBHeader2005 *>(theHeaderFormat.get());
32  if(result == 0)
33  {
34  throw cms::Exception("Could not get 2005 DMB header format");
35  }
36  return *result;
37 }
38 
39 
41  CSCDMBHeader2013 * result = dynamic_cast<CSCDMBHeader2013 *>(theHeaderFormat.get());
42  if(result == 0)
43  {
44  throw cms::Exception("Could not get 2013 DMB header format");
45  }
46  return *result;
47 }
48 
49 
50 
int theFirmwareVersion
Definition: CSCDMBHeader.h:77
boost::shared_ptr< CSCVDMBHeaderFormat > theHeaderFormat
Definition: CSCDMBHeader.h:76
CSCDMBHeader2005 dmbHeader2005() const
will throw if the cast fails
Definition: CSCDMBHeader.cc:30
CSCDMBHeader2013 dmbHeader2013() const
Definition: CSCDMBHeader.cc:40
CSCDMBHeader(uint16_t firmware_version=2005)
Definition: CSCDMBHeader.cc:8