Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:11:02

0001 #ifndef EventFilter_SiStripRawToDigi_SiStripRawToDigiModule_H
0002 #define EventFilter_SiStripRawToDigi_SiStripRawToDigiModule_H
0003 
0004 #include "FWCore/Framework/interface/stream/EDProducer.h"
0005 #include "FWCore/Framework/interface/Event.h"
0006 #include "FWCore/Framework/interface/EventSetup.h"
0007 #include "FWCore/Framework/interface/ESWatcher.h"
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"
0010 #include "FWCore/Utilities/interface/Visibility.h"
0011 #include "CondFormats/DataRecord/interface/SiStripFedCablingRcd.h"
0012 #include <string>
0013 #include <cstdint>
0014 
0015 namespace sistrip {
0016   class RawToDigiModule;
0017 }
0018 namespace sistrip {
0019   class RawToDigiUnpacker;
0020 }
0021 class SiStripFedCabling;
0022 class TrackerTopology;
0023 
0024 /**
0025    @file EventFilter/SiStripRawToDigi/interface/SiStripRawToDigiModule.h
0026    @class SiStripRawToDigiModule 
0027    
0028    @brief A plug-in module that takes a FEDRawDataCollection as input
0029    from the Event and creates EDProducts containing StripDigis.
0030 */
0031 
0032 namespace sistrip {
0033 
0034   class dso_hidden RawToDigiModule final : public edm::stream::EDProducer<> {
0035   public:
0036     RawToDigiModule(const edm::ParameterSet&);
0037     ~RawToDigiModule() override;
0038 
0039     void produce(edm::Event&, const edm::EventSetup&) override;
0040     void endStream() override;
0041 
0042   private:
0043     void updateCabling(const edm::EventSetup&);
0044 
0045     RawToDigiUnpacker* rawToDigi_;
0046     edm::EDGetTokenT<FEDRawDataCollection> token_;
0047     const SiStripFedCabling* cabling_ = nullptr;
0048     bool extractCm_;
0049     bool doFullCorruptBufferChecks_;
0050 
0051     //March 2012: add flag for disabling APVe check in configuration
0052     bool doAPVEmulatorCheck_;
0053 
0054     edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> tTopoToken_;
0055     edm::ESGetToken<SiStripFedCabling, SiStripFedCablingRcd> fedCablingToken_;
0056     edm::ESWatcher<SiStripFedCablingRcd> fedCablingWatcher_;
0057   };
0058 
0059 }  // namespace sistrip
0060 
0061 #endif  // EventFilter_SiStripRawToDigi_SiStripRawToDigiModule_H