RPCUnpackingModule

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
#ifndef RPCUnpackingModule_H
#define RPCUnpackingModule_H

/** \class RPCUnpackingModule
 ** unpacking RPC raw data
 **/

#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "FWCore/Utilities/interface/InputTag.h"
#include "FWCore/Framework/interface/ESWatcher.h"
#include "CondFormats/DataRecord/interface/RPCEMapRcd.h"
#include "CondFormats/RPCObjects/interface/RPCEMap.h"
#include "RPCReadOutMappingWithFastSearch.h"
#include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"

class RPCReadOutMapping;
namespace edm {
  class Event;
  class EventSetup;
  class Run;
}  // namespace edm

class RPCUnpackingModule : public edm::stream::EDProducer<> {
public:
  ///Constructor
  RPCUnpackingModule(const edm::ParameterSet& pset);

  ///Destructor
  ~RPCUnpackingModule() override;

  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);

  /** Retrieves a RPCDigiCollection from the Event, creates a
      FEDRawDataCollection (EDProduct) using the DigiToRaw converter,
      and attaches it to the Event. */
  void produce(edm::Event& ev, const edm::EventSetup& es) override;

  void beginRun(const edm::Run& run, const edm::EventSetup& es) override;

private:
  edm::InputTag dataLabel_;
  bool doSynchro_;
  unsigned long eventCounter_;

  edm::ESWatcher<RPCEMapRcd> theRecordWatcher;
  edm::ESGetToken<RPCEMap, RPCEMapRcd> theReadoutMappingToken;
  const RPCReadOutMapping* theCabling;
  RPCReadOutMappingWithFastSearch theReadoutMappingSearch;
  edm::EDGetTokenT<FEDRawDataCollection> fedToken_;
};

#endif