![]() |
![]() |
00001 #ifndef EventFilter_CSCDigiToRaw_h 00002 #define EventFilter_CSCDigiToRaw_h 00003 00011 #include "FWCore/Framework/interface/EDProducer.h" 00012 #include "DataFormats/CSCDigi/interface/CSCStripDigiCollection.h" 00013 #include "DataFormats/CSCDigi/interface/CSCWireDigiCollection.h" 00014 #include "DataFormats/CSCDigi/interface/CSCComparatorDigiCollection.h" 00015 #include "DataFormats/CSCDigi/interface/CSCALCTDigiCollection.h" 00016 #include "DataFormats/CSCDigi/interface/CSCCLCTDigiCollection.h" 00017 #include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h" 00018 #include "FWCore/Framework/interface/Event.h" 00019 #include "DataFormats/Common/interface/Handle.h" 00020 #include "EventFilter/CSCRawToDigi/interface/CSCEventData.h" 00021 00022 class FEDRawDataCollection; 00023 class CSCReadoutMappingFromFile; 00024 class CSCChamberMap; 00025 00026 class CSCDigiToRaw { 00027 public: 00029 CSCDigiToRaw(); 00030 00032 void createFedBuffers(const CSCStripDigiCollection& stripDigis, 00033 const CSCWireDigiCollection& wireDigis, 00034 const CSCComparatorDigiCollection& comparatorDigis, 00035 const CSCALCTDigiCollection& alctDigis, 00036 const CSCCLCTDigiCollection& clctDigis, 00037 const CSCCorrelatedLCTDigiCollection& correlatedLCTDigis, 00038 FEDRawDataCollection& fed_buffers, 00039 const CSCChamberMap* theMapping, 00040 edm::Event & e); 00041 00042 private: 00043 void beginEvent(const CSCChamberMap* electronicsMap); 00044 00045 // specialized because it reverses strip direction 00046 void add(const CSCStripDigiCollection& stripDigis); 00047 void add(const CSCWireDigiCollection& wireDigis); 00048 void add(const CSCComparatorDigiCollection & comparatorDigis); 00049 void add(const CSCALCTDigiCollection & alctDigis); 00050 void add(const CSCCLCTDigiCollection & clctDigis); 00051 void add(const CSCCorrelatedLCTDigiCollection & corrLCTDigis); 00052 00054 CSCEventData & findEventData(const CSCDetId & cscDetId); 00055 00056 std::map<CSCDetId, CSCEventData> theChamberDataMap; 00057 const CSCChamberMap* theElectronicsMap; 00058 }; 00059 00060 00061 00062 00063 #endif