Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:10:31

0001 #ifndef DTDDUUnpacker_h
0002 #define DTDDUUnpacker_h
0003 
0004 /** \class DTDDUUnpacker
0005  *  The unpacker for DTs' FED.
0006  *
0007  * \author M. Zanetti INFN Padova
0008  * FRC 060906
0009  */
0010 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0011 
0012 #include <EventFilter/DTRawToDigi/plugins/DTUnpacker.h>
0013 #include <EventFilter/DTRawToDigi/plugins/DTROS25Unpacker.h>
0014 #include "DataFormats/DTDigi/interface/DTControlData.h"
0015 // class DTROS25Unpacker;
0016 
0017 class DTDDUUnpacker : public DTUnpacker {
0018 public:
0019   /// Constructor
0020   DTDDUUnpacker(const edm::ParameterSet& ps);
0021 
0022   /// Destructor
0023   ~DTDDUUnpacker() override;
0024 
0025   // Unpacking method
0026   void interpretRawData(const unsigned int* index,
0027                         int datasize,
0028                         int dduID,
0029                         edm::ESHandle<DTReadOutMapping>& mapping,
0030                         std::unique_ptr<DTDigiCollection>& product,
0031                         std::unique_ptr<DTLocalTriggerCollection>& product2,
0032                         uint16_t rosList = 0) override;
0033 
0034   inline const std::vector<DTROS25Data>& getROSsControlData() const { return ros25Unpacker->getROSsControlData(); }
0035 
0036   inline const DTDDUData& getDDUControlData() const { return controlData; }
0037 
0038 private:
0039   const edm::ParameterSet dduPSet;
0040 
0041   /// if data are read locally, status words are swapped
0042   bool localDAQ;
0043 
0044   /// perform DQM for DDU
0045   bool performDataIntegrityMonitor;
0046 
0047   bool debug;
0048 
0049   DTROS25Unpacker* ros25Unpacker;
0050 
0051   DTDDUData controlData;
0052 };
0053 
0054 #endif