CMS 3D CMS Logo

CSCVTMBHeaderFormat.h

Go to the documentation of this file.
00001 #ifndef CSCVTMBHeaderFormat_h
00002 #define CSCVTMBHeaderFormat_h
00003 
00004 #include "DataFormats/CSCDigi/interface/CSCCLCTDigi.h"
00005 #include "DataFormats/CSCDigi/interface/CSCALCTDigi.h"
00006 #include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigi.h"
00007 #include "DataFormats/MuonDetId/interface/CSCDetId.h"
00008 #include <vector>
00009 #include <iosfwd>
00010 class CSCDMBHeader;
00011 
00012 
00013 class CSCVTMBHeaderFormat {
00014 public:
00015   virtual ~CSCVTMBHeaderFormat() {}
00016   void init() {
00017     bzero(this, sizeInWords()*2);
00018   }
00019   
00020   virtual void setEventInformation(const CSCDMBHeader &) = 0;
00021   virtual uint16_t BXNCount() const = 0;
00022   virtual uint16_t ALCTMatchTime() const = 0;
00023   virtual uint16_t CLCTOnly() const = 0;
00024   virtual uint16_t ALCTOnly() const = 0;
00025   virtual uint16_t TMBMatch() const = 0;
00026   virtual uint16_t Bxn0Diff() const = 0;
00027   virtual uint16_t Bxn1Diff() const = 0;
00028   virtual uint16_t L1ANumber() const = 0;
00029   uint16_t sizeInBytes() const {
00030     return sizeInWords()*2;
00031   }
00032   virtual uint16_t NTBins() const = 0;
00033   virtual uint16_t NCFEBs() const = 0;
00034   virtual uint16_t firmwareRevision() const = 0;
00036   virtual std::vector<CSCCLCTDigi> CLCTDigis(uint32_t idlayer) = 0;
00038   virtual std::vector<CSCCorrelatedLCTDigi> CorrelatedLCTDigis(uint32_t idlayer) const = 0;
00039  
00040   
00043   virtual unsigned short int sizeInWords() const = 0;
00044 
00045   virtual unsigned short int NHeaderFrames() const = 0;
00046   virtual unsigned short * data() = 0;
00047   virtual bool check() const = 0;
00048 
00050   //void setChamberId(const CSCDetId & detId) {theChamberId = detId;}
00051 
00053   virtual void addCLCT0(const CSCCLCTDigi & digi) = 0;
00054   virtual void addCLCT1(const CSCCLCTDigi & digi) = 0;
00055   virtual void addALCT0(const CSCALCTDigi & digi) = 0;
00056   virtual void addALCT1(const CSCALCTDigi & digi) = 0;
00057   virtual void addCorrelatedLCT0(const CSCCorrelatedLCTDigi & digi) = 0;
00058   virtual void addCorrelatedLCT1(const CSCCorrelatedLCTDigi & digi) = 0;
00059 
00060 
00061   virtual void print(std::ostream & os) const = 0;
00062 protected:
00063 
00064   void swapCLCTs(CSCCLCTDigi& digi1, CSCCLCTDigi& digi2);
00065 };
00066 
00067 #endif
00068 

Generated on Tue Jun 9 17:34:22 2009 for CMSSW by  doxygen 1.5.4