00001 #ifndef BLOCKFORMATTER_H 00002 #define BLOCKFORMATTER_H 00003 00004 #include <iostream> 00005 #include <vector> 00006 #include <map> 00007 00008 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h" 00009 #include <DataFormats/FEDRawData/interface/FEDRawDataCollection.h> 00010 #include <DataFormats/FEDRawData/interface/FEDRawData.h> 00011 #include <DataFormats/FEDRawData/interface/FEDRawDataCollection.h> 00012 00013 00014 00015 class EcalDigiToRaw; 00016 00017 00018 class BlockFormatter { 00019 public : 00020 typedef uint64_t Word64; 00021 typedef uint16_t Word16; 00022 00023 BlockFormatter(); 00024 ~BlockFormatter(); 00025 void SetParam(EcalDigiToRaw* base); 00026 static const int kCardsPerTower = 5; // Number of VFE cards per trigger tower 00027 void DigiToRaw(FEDRawDataCollection* productRawData); 00028 void print(FEDRawData& rawdata); 00029 // void CleanUp(FEDRawDataCollection* productRawData); 00030 void CleanUp(FEDRawDataCollection* productRawData, 00031 std::map<int, std::map<int,int> >* FEDorder); 00032 void PrintSizes(FEDRawDataCollection* productRawData); 00033 00034 protected : 00035 bool debug_; 00036 00037 bool doBarrel_; 00038 bool doEndCap_; 00039 bool doTCC_; 00040 bool doSR_; 00041 bool doTower_; 00042 00043 std::vector<int32_t> * plistDCCId_; 00044 00045 int* pcounter_; 00046 int* porbit_number_; 00047 int* pbx_; 00048 int* plv1_; 00049 int* prunnumber_; 00050 00051 00052 }; 00053 00054 00055 00056 #endif 00057 00058