Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-12 23:41:42

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