RawToDigiModule

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 60 61 62 63 64 65 66
#ifndef EventFilter_SiStripRawToDigi_SiStripRawToDigiModule_H
#define EventFilter_SiStripRawToDigi_SiStripRawToDigiModule_H

#include "CondFormats/DataRecord/interface/SiStripFedCablingRcd.h"
#include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"
#include "FWCore/Framework/interface/ESWatcher.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
#include "FWCore/Utilities/interface/Visibility.h"

#include <string>
#include <cstdint>

namespace sistrip {
  class RawToDigiModule;
}
namespace sistrip {
  class RawToDigiUnpacker;
}
class SiStripFedCabling;
class TrackerTopology;

/**
   @file EventFilter/SiStripRawToDigi/interface/SiStripRawToDigiModule.h
   @class SiStripRawToDigiModule 
   
   @brief A plug-in module that takes a FEDRawDataCollection as input
   from the Event and creates EDProducts containing StripDigis.
*/

namespace sistrip {

  class dso_hidden RawToDigiModule final : public edm::stream::EDProducer<> {
  public:
    RawToDigiModule(const edm::ParameterSet&);
    ~RawToDigiModule() override;

    void produce(edm::Event&, const edm::EventSetup&) override;
    void endStream() override;

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

  private:
    void updateCabling(const edm::EventSetup&);

    RawToDigiUnpacker* rawToDigi_;
    edm::EDGetTokenT<FEDRawDataCollection> token_;
    const SiStripFedCabling* cabling_ = nullptr;
    bool extractCm_;
    bool doFullCorruptBufferChecks_;

    //March 2012: add flag for disabling APVe check in configuration
    bool doAPVEmulatorCheck_;

    edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> tTopoToken_;
    edm::ESGetToken<SiStripFedCabling, SiStripFedCablingRcd> fedCablingToken_;
    edm::ESWatcher<SiStripFedCablingRcd> fedCablingWatcher_;
  };

}  // namespace sistrip

#endif  // EventFilter_SiStripRawToDigi_SiStripRawToDigiModule_H