CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/EventFilter/EcalTBRawToDigi/src/DCCTowerBlock.h

Go to the documentation of this file.
00001 // Date   : 02/03/2004
00002 // Author : N.Almeida (LIP)
00003 
00004 
00005 #ifndef DCCTBTOWERBLOCK_HH
00006 #define DCCTBTOWERBLOCK_HH
00007 
00008 #include <iostream>
00009 #include <string>
00010 #include <vector>
00011 #include <map>
00012 #include <utility>
00013 
00014 
00015 #include "DCCBlockPrototype.h"
00016 
00017 class DCCTBEventBlock;
00018 class DCCTBXtalBlock;
00019 class DCCTBDataParser;
00020 
00021 class DCCTBTowerBlock : public DCCTBBlockPrototype {
00022         
00023         public :
00024                 
00025                 DCCTBTowerBlock(
00026                         DCCTBEventBlock * dccBlock,
00027                         DCCTBDataParser * parser, 
00028                         uint32_t * buffer, 
00029                         uint32_t numbBytes, 
00030                         uint32_t wordsToEnd,
00031                         uint32_t wordEventOffset,
00032                         uint32_t expectedTowerID
00033                 );
00034                 
00035                 ~DCCTBTowerBlock();
00036                 
00037                 void parseXtalData();
00038                 int towerID();
00039 
00040                 std::vector< DCCTBXtalBlock * > & xtalBlocks();
00041                 
00042                 std::vector< DCCTBXtalBlock * > xtalBlocksById(uint32_t stripId, uint32_t xtalId);
00043                 
00044         protected :
00045                 
00046                 void dataCheck();
00047                 
00048                 enum towerFields{ BXMASK = 0xFFF,L1MASK = 0xFFF };
00049                 
00050                 std::vector<DCCTBXtalBlock * > xtalBlocks_;
00051                 DCCTBEventBlock * dccBlock_;
00052                 uint32_t expectedTowerID_;
00053                 
00054                 
00055 };
00056 
00057 inline std::vector<DCCTBXtalBlock *> & DCCTBTowerBlock::xtalBlocks(){ return xtalBlocks_; }
00058 
00059 #endif