CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/DataFormats/L1CSCTrackFinder/interface/L1CSCSPStatusDigi.h

Go to the documentation of this file.
00001 #ifndef L1CSCSPStatusDigi_h
00002 #define L1CSCSPStatusDigi_h
00003 
00004 #include <string.h>
00005 
00006 class CSCTFUnpacker;
00007 
00008 class L1CSCSPStatusDigi {
00009 private:
00010         unsigned short sp_slot;    //
00011         unsigned short l1a_bxn;    // Take from the SP header
00012         unsigned short fmm_status; // Take from the SP header
00013 
00014         unsigned short se; // Make logical OR of all tbins for each of 15(endcap) SE bits
00015         unsigned short sm; // Make logical OR of all tbins for each of 15(endcap) SM bits
00016         unsigned long  bx; // Make logical OR of all tbins for each of 15(endcap)+2(barrel) BX bits
00017         unsigned long  af; // Make logical OR of all tbins for each of 15(endcap)+2(barrel) AF bits
00018         unsigned long  vp; // Make logical OR of all tbins for each of 15(endcap)+2(barrel) VP/VQ bits
00019         enum {IDLE=1, CARRIER=2, NORMAL=4, ERROR=8, FIFO=16}; // States of optical receivers + Alignment FIFO full OR empty status
00020         unsigned short link_status[15]; // Optical receiver status ORed for all tbins
00021         unsigned short mpc_link_id; // MPC_id and link# from MEx Data Record ORed for all tbins
00022 
00023         unsigned long track_cnt;
00024         unsigned long orbit_cnt;
00025 
00026         friend class CSCTFUnpacker;
00027 
00028 public:
00029 
00030         unsigned short slot(void) const throw() { return sp_slot; }
00031         unsigned short BXN (void) const throw() { return l1a_bxn;  }
00032         unsigned short FMM (void) const throw() { return fmm_status; }
00033         unsigned short SEs (void) const throw() { return se; }
00034         unsigned short SMs (void) const throw() { return sm; }
00035         unsigned long  BXs (void) const throw() { return bx; }
00036         unsigned long  AFs (void) const throw() { return af; }
00037         unsigned long  VPs (void) const throw() { return vp; }
00038         unsigned short link(int link) const throw() { return link_status[link]; }
00039 
00040         unsigned long track_counter(void) const throw() { return track_cnt; }
00041         unsigned long orbit_counter(void) const throw() { return orbit_cnt; }
00042 
00043         L1CSCSPStatusDigi(void){ bzero(this,sizeof(L1CSCSPStatusDigi)); }
00044         ~L1CSCSPStatusDigi(void){}
00045 };
00046 
00047 #endif