CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/EventFilter/L1GlobalTriggerRawToDigi/interface/L1GlobalTriggerRawToDigi.h

Go to the documentation of this file.
00001 #ifndef EventFilter_L1GlobalTriggerRawToDigi_L1GlobalTriggerRawToDigi_h
00002 #define EventFilter_L1GlobalTriggerRawToDigi_L1GlobalTriggerRawToDigi_h
00003 
00021 // system include files
00022 #include <memory>
00023 #include <iostream>
00024 
00025 // user include files
00026 #include "FWCore/Framework/interface/Frameworkfwd.h"
00027 #include "FWCore/Framework/interface/EDProducer.h"
00028 
00029 #include "FWCore/Framework/interface/Event.h"
00030 #include "FWCore/Framework/interface/MakerMacros.h"
00031 
00032 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00033 #include "FWCore/Utilities/interface/InputTag.h"
00034 
00035 // forward declarations
00036 class L1GtfeWord;
00037 class L1GtFdlWord;
00038 class L1GtPsbWord;
00039 
00040 class L1MuGMTReadoutCollection;
00041 
00042 class FEDHeader;
00043 class FEDTrailer;
00044 
00045 class L1MuTriggerScales;
00046 class L1MuTriggerPtScale;
00047 
00048 
00049 // class declaration
00050 class L1GlobalTriggerRawToDigi : public edm::EDProducer
00051 {
00052 
00053 public:
00054 
00056     explicit L1GlobalTriggerRawToDigi(const edm::ParameterSet&);
00057 
00059     virtual ~L1GlobalTriggerRawToDigi();
00060 
00061 private:
00062 
00063     virtual void beginJob();
00064 
00065     virtual void produce(edm::Event&, const edm::EventSetup&);
00066 
00068 
00070     void unpackHeader(const unsigned char*, FEDHeader&);
00071 
00076     void unpackPSB(const edm::EventSetup&, const unsigned char*, L1GtPsbWord&);
00077 
00079     void unpackGMT(const unsigned char*, std::auto_ptr<L1MuGMTReadoutCollection>&,edm::Event&);
00080 
00082     void unpackTrailer(const unsigned char*, FEDTrailer&);
00083 
00084 
00086     void produceEmptyProducts(edm::Event&);
00087 
00088 
00090     void dumpFedRawData(const unsigned char*, int, std::ostream&);
00091 
00093     virtual void endJob();
00094 
00095 private:
00096 
00097     L1GtfeWord* m_gtfeWord;
00098     L1GtPsbWord* m_gtPsbWord;
00099     L1GtFdlWord* m_gtFdlWord;
00100 
00102     edm::InputTag m_daqGtInputTag;
00103 
00106     int m_daqGtFedId;
00107 
00109     boost::uint16_t m_activeBoardsMaskGt;
00110 
00111     // number of bunch crossing to be unpacked
00112     int m_unpackBxInEvent;
00113 
00116     int m_lowSkipBxInEvent;
00117 
00120     int m_uppSkipBxInEvent;
00121 
00123     //
00125     int m_recordLength0;
00126 
00128     int m_recordLength1;
00129 
00131     int m_totalBxInEvent;
00132 
00133 
00135     const L1MuTriggerScales* m_TriggerScales;
00136     const L1MuTriggerPtScale* m_TriggerPtScale;
00137 
00138 private:
00139 
00141     int m_verbosity;
00142     bool m_isDebugEnabled;
00143 
00144 
00145 };
00146 
00147 #endif // EventFilter_L1GlobalTriggerRawToDigi_L1GlobalTriggerRawToDigi_h