CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/EventFilter/EcalRawToDigi/interface/DCCSRPBlock.h

Go to the documentation of this file.
00001 #ifndef DCCSRPBLOCK_HH
00002 #define DCCSRPBLOCK_HH
00003 
00004 
00005 /*
00006  *\ Class DCCSRPBlock
00007  *
00008  * Class responsible for SR flag unpacking.
00009  *
00010  * \file DCCSRPBlock.h
00011  *
00012  * $Date: 2010/10/13 16:03:34 $
00013  * $Revision: 1.3 $
00014  *
00015  * \author N. Almeida
00016  *
00017 */
00018 
00019 
00020 #include <iostream>
00021 #include <memory>
00022 #include <stdint.h>
00023 #include <string>
00024 #include <vector>
00025 #include <map>
00026 #include <utility>
00027 
00028 #include "DCCDataBlockPrototype.h"
00029 
00030 #include <DataFormats/EcalDigi/interface/EcalDigiCollections.h>
00031 #include <DataFormats/EcalRawData/interface/EcalRawDataCollections.h>
00032 #include <DataFormats/EcalDetId/interface/EcalDetIdCollections.h>
00033 
00034 
00035 class DCCSRPBlock : public DCCDataBlockPrototype {
00036         
00037   public :
00038 
00039     DCCSRPBlock( DCCDataUnpacker * u,EcalElectronicsMapper * m, DCCEventBlock * e, bool unpack);
00040          
00041     void display(std::ostream & o); 
00042 
00043     int unpack(uint64_t ** data, unsigned int * dwToEnd, unsigned int numbFlags = SRP_NUMBFLAGS);        
00044 
00045     unsigned short srFlag(unsigned int feChannel){ return srFlags_[feChannel-1]; }
00046                         
00047   protected :
00048     
00049     virtual void addSRFlagToCollection(){};
00050          
00051     virtual bool checkSrpIdAndNumbSRFlags(){ return true; };
00052          
00053     unsigned int srpId_         ;  
00054     unsigned int bx_            ;  
00055     unsigned int l1_            ;   
00056     unsigned int nSRFlags_      ; 
00057     unsigned int expNumbSrFlags_;
00058          
00059     unsigned short srFlags_[SRP_NUMBFLAGS]; 
00060          
00061          
00062          
00063 };
00064 
00065 
00066 #endif