Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef DTROS25Unpacker_h
0002 #define DTROS25Unpacker_h
0003 
0004 /** \class DTROS25Unpacker
0005  *  The unpacker for DTs' ROS25: 
0006  *  final version of Read Out Sector board with 25 channels.
0007  *
0008  * \author M. Zanetti INFN Padova
0009  * FRC 060906
0010  */
0011 
0012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0013 
0014 #include <EventFilter/DTRawToDigi/plugins/DTUnpacker.h>
0015 
0016 class DTROS25Data;
0017 
0018 class DTROS25Unpacker : public DTUnpacker {
0019 public:
0020   /// Constructor
0021   DTROS25Unpacker(const edm::ParameterSet& ps);
0022 
0023   /// Destructor
0024   ~DTROS25Unpacker() override;
0025 
0026   // Unpacking method
0027   void interpretRawData(const unsigned int* index,
0028                         int datasize,
0029                         int dduID,
0030                         edm::ESHandle<DTReadOutMapping>& mapping,
0031                         std::unique_ptr<DTDigiCollection>& product,
0032                         std::unique_ptr<DTLocalTriggerCollection>& product2,
0033                         uint16_t rosList = 0) override;
0034 
0035   inline const std::vector<DTROS25Data>& getROSsControlData() const { return controlDataFromAllROS; }
0036 
0037 private:
0038   int swap(int x);
0039 
0040   /// if reading data locally, words, being assembled as 32-bits, do not need to be swapped
0041   bool localDAQ;
0042 
0043   /// if data are read from ROS directly, no information on the ROS Id is present
0044   bool readingDDU;
0045 
0046   /// since June 2007, local DAQ, provides FED number
0047   bool readDDUIDfromDDU;
0048   /// to analyze older data..
0049   int hardcodedDDUID;
0050 
0051   /// make the local SC spy data persistent
0052   bool writeSC;
0053 
0054   /// perform DQM on ROS data
0055   bool performDataIntegrityMonitor;
0056 
0057   bool debug;
0058 
0059   std::vector<DTROS25Data> controlDataFromAllROS;
0060 };
0061 
0062 #endif