RPCPackingModule

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
#ifndef RPCRawToDigi_RPCPackingModule_H
#define RPCRawToDigi_RPCPackingModule_H

/** \class RPCPackingModule
 *  Driver class for digi to raw data conversions 
 */

#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "EventFilter/RPCRawToDigi/interface/EventRecords.h"
#include "FWCore/Utilities/interface/InputTag.h"
#include "DataFormats/RPCDigi/interface/RPCDigiCollection.h"
#include "FWCore/Utilities/interface/ESGetToken.h"

#include "CondFormats/RPCObjects/interface/RPCEMap.h"
#include "CondFormats/DataRecord/interface/RPCEMapRcd.h"
#include "FWCore/Framework/interface/ESWatcher.h"

#include <vector>

namespace edm {
  class ParameterSet;
}
namespace edm {
  class EventSetup;
}
namespace edm {
  class Event;
}

class FEDRawData;
class RPCRecordFormatter;
class RPCReadOutMapping;

class RPCPackingModule : public edm::stream::EDProducer<> {
public:
  /// ctor
  explicit RPCPackingModule(const edm::ParameterSet&);

  /// dtor
  ~RPCPackingModule() override;

  /// get data, convert to raw event, attach again to Event
  void produce(edm::Event&, const edm::EventSetup&) override;

  static std::vector<rpcrawtodigi::EventRecords> eventRecords(int fedId,
                                                              int trigger_BX,
                                                              const RPCDigiCollection*,
                                                              const RPCRecordFormatter&);

private:
  FEDRawData* rawData(int fedId, unsigned int lvl1_ID, const RPCDigiCollection*, const RPCRecordFormatter&) const;

private:
  edm::EDGetTokenT<RPCDigiCollection> dataLabel_;
  edm::ESWatcher<RPCEMapRcd> recordWatcher_;
  const RPCReadOutMapping* theCabling;
  edm::ESGetToken<RPCEMap, RPCEMapRcd> readoutMappingToken_;
};
#endif