00001 #ifndef DCCTowerBLOCK_HH 00002 #define DCCTowerBLOCK_HH 00003 00004 #include <iostream> 00005 #include <memory> 00006 #include <stdint.h> 00007 #include <string> 00008 #include <vector> 00009 #include <map> 00010 #include <utility> 00011 00012 #include <DataFormats/EcalDigi/interface/EcalDigiCollections.h> 00013 #include <DataFormats/EcalRawData/interface/EcalRawDataCollections.h> 00014 #include <DataFormats/EcalDetId/interface/EcalDetIdCollections.h> 00015 #include <FWCore/MessageLogger/interface/MessageLogger.h> 00016 00017 #include "DCCFEBlock.h" 00018 00019 class DCCEventBlock; 00020 class DCCDataUnpacker; 00021 00022 class DCCTowerBlock : public DCCFEBlock { 00023 00024 //to implement 00025 00026 public : 00027 00028 DCCTowerBlock(DCCDataUnpacker * u,EcalElectronicsMapper * m, DCCEventBlock * e, bool unpack, bool forceToKeepFRdata ); 00029 00030 void updateCollectors(); 00031 00032 protected: 00033 00034 int unpackXtalData(unsigned int stripID, unsigned int xtalID); 00035 void fillEcalElectronicsError( std::auto_ptr<EcalElectronicsIdCollection> * ); 00036 00037 std::auto_ptr<EBDigiCollection> * digis_; 00038 00039 EBDetId * pDetId_; 00040 00041 // to restructure as common collections to DCCSCBlock, to inherit from DCCFEBlock 00042 std::auto_ptr<EBDetIdCollection> * invalidGains_; 00043 std::auto_ptr<EBDetIdCollection> * invalidGainsSwitch_ ; 00044 std::auto_ptr<EBDetIdCollection> * invalidChIds_; 00045 00046 }; 00047 00048 00049 #endif