00001 #ifndef DCCSCBLOCK_HH 00002 #define DCCSCBLOCK_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 DCCSCBlock : public DCCFEBlock { 00023 00024 //to implement 00025 00026 public : 00027 00028 DCCSCBlock(DCCDataUnpacker * u, EcalElectronicsMapper *m, DCCEventBlock * e, bool unpack, bool forceToKeepFRdata); 00029 00030 void updateCollectors(); 00031 00032 00033 protected : 00034 00035 int unpackXtalData(unsigned int stripID, unsigned int xtalID); 00036 void fillEcalElectronicsError( std::auto_ptr<EcalElectronicsIdCollection> * ); 00037 00038 EEDetId * pDetId_; 00039 EEDataFrame * pDFId_; 00040 00041 std::auto_ptr<EEDigiCollection> * digis_; 00042 00043 // to restructure as common collections to DCCTowerBlock, to inherit from DCCFEBlock 00044 std::auto_ptr<EEDetIdCollection> * invalidGains_; 00045 std::auto_ptr<EEDetIdCollection> * invalidGainsSwitch_ ; 00046 std::auto_ptr<EEDetIdCollection> * invalidChIds_; 00047 00048 }; 00049 00050 00051 #endif