00001 /* CSCDCCHeader 9/24/04 A.Tumanov 00002 * documented at https://www.physics.ohio-state.edu/~cms/ddu/ddu2.html 00003 */ 00004 00005 #ifndef CSCDCCHeader_h 00006 #define CSCDCCHeader_h 00007 00008 #include <string> //for bzero 00009 #include "DataFormats/CSCDigi/interface/CSCDCCStatusDigi.h" 00010 00011 class CSCDCCHeader { 00012 00013 public: 00014 CSCDCCHeader(int bx, int l1a, int sourceId, int version=0); 00015 CSCDCCHeader(); 00016 CSCDCCHeader(const CSCDCCStatusDigi & digi); 00017 00018 int getCDFEventNumber() const; 00019 int getCDFSourceId() const; 00020 int getCDFFOV() const; 00021 int getCDFEventType() const; 00022 int getCDFBunchCounter() const; 00023 void setDAV(int dduSlot); 00024 bool check() const { return true/*dcc_code1==0xD9 && dcc_code2==0x97*/;} 00025 unsigned short * data() {return (short unsigned *)word;} 00026 static unsigned sizeInWords() {return 8;} 00027 00028 // gets some data filled by the event data 00029 friend class CSCDDUEventData; 00030 00031 private: 00032 unsigned long long word[2]; 00033 00034 /* 00035 //first line of DCC header definded by CDF (common data format) 00037 unsigned BOE_1 : 4; 00038 unsigned Evt_ty : 4; 00039 unsigned LV1_id : 24; 00040 unsigned BX_id : 12; 00041 unsigned Source_id : 12; 00042 unsigned FOV : 4; 00043 unsigned Hx : 3; 00044 unsigned dollardollar: 1; 00045 00048 unsigned dcc_code1 : 8; 00049 unsigned orbit_counter : 32; 00050 unsigned fifo_status : 16; 00052 unsigned dcc_code2 : 8; 00053 00054 */ 00055 00056 }; 00057 #endif