00001 #ifndef RPCRawToDigi_RPCPackingModule_H 00002 #define RPCRawToDigi_RPCPackingModule_H 00003 00008 #include "FWCore/Framework/interface/EDProducer.h" 00009 #include "EventFilter/RPCRawToDigi/interface/EventRecords.h" 00010 #include "FWCore/Utilities/interface/InputTag.h" 00011 #include "DataFormats/RPCDigi/interface/RPCDigiCollection.h" 00012 00013 #include <vector> 00014 00015 namespace edm {class ParameterSet;} 00016 namespace edm {class EventSetup; } 00017 namespace edm {class Event; } 00018 00019 class FEDRawData; 00020 class RPCRecordFormatter; 00021 class RPCReadOutMapping; 00022 00023 class RPCPackingModule : public edm::EDProducer { 00024 public: 00025 00027 explicit RPCPackingModule( const edm::ParameterSet& ); 00028 00030 virtual ~RPCPackingModule(); 00031 00033 virtual void produce( edm::Event&, const edm::EventSetup& ); 00034 00035 static std::vector<rpcrawtodigi::EventRecords> eventRecords( 00036 int fedId, int trigger_BX, const RPCDigiCollection* , const RPCRecordFormatter& ); 00037 00038 private: 00039 FEDRawData * rawData( int fedId, unsigned int lvl1_ID, const RPCDigiCollection* , const RPCRecordFormatter& ); 00040 00041 private: 00042 edm::InputTag dataLabel_; 00043 unsigned long eventCounter_; 00044 const RPCReadOutMapping * theCabling; 00045 00046 }; 00047 #endif