CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/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 #include "FWCore/Utilities/interface/typedefs.h"
00035 
00036 // forward declarations
00037 class L1GtfeWord;
00038 class L1GtFdlWord;
00039 class L1GtPsbWord;
00040 
00041 class L1MuGMTReadoutCollection;
00042 
00043 class FEDHeader;
00044 class FEDTrailer;
00045 
00046 class L1MuTriggerScales;
00047 class L1MuTriggerPtScale;
00048 
00049 
00050 // class declaration
00051 class L1GlobalTriggerRawToDigi : public edm::EDProducer
00052 {
00053 
00054 public:
00055 
00057     explicit L1GlobalTriggerRawToDigi(const edm::ParameterSet&);
00058 
00060     virtual ~L1GlobalTriggerRawToDigi();
00061 
00062 private:
00063 
00064     virtual void beginJob();
00065 
00066     virtual void produce(edm::Event&, const edm::EventSetup&);
00067 
00069 
00071     void unpackHeader(const unsigned char*, FEDHeader&);
00072 
00077     void unpackPSB(const edm::EventSetup&, const unsigned char*, L1GtPsbWord&);
00078 
00080     void unpackGMT(const unsigned char*, std::auto_ptr<L1MuGMTReadoutCollection>&,edm::Event&);
00081 
00083     void unpackTrailer(const unsigned char*, FEDTrailer&);
00084 
00085 
00087     void produceEmptyProducts(edm::Event&);
00088 
00089 
00091     void dumpFedRawData(const unsigned char*, int, std::ostream&);
00092 
00094     virtual void endJob();
00095 
00096 private:
00097 
00098     L1GtfeWord* m_gtfeWord;
00099     L1GtPsbWord* m_gtPsbWord;
00100     L1GtFdlWord* m_gtFdlWord;
00101 
00103     edm::InputTag m_daqGtInputTag;
00104 
00107     int m_daqGtFedId;
00108 
00110     cms_uint16_t m_activeBoardsMaskGt;
00111 
00112     // number of bunch crossing to be unpacked
00113     int m_unpackBxInEvent;
00114 
00117     int m_lowSkipBxInEvent;
00118 
00121     int m_uppSkipBxInEvent;
00122 
00124     //
00126     int m_recordLength0;
00127 
00129     int m_recordLength1;
00130 
00132     int m_totalBxInEvent;
00133 
00134 
00136     const L1MuTriggerScales* m_TriggerScales;
00137     const L1MuTriggerPtScale* m_TriggerPtScale;
00138 
00139 private:
00140 
00142     int m_verbosity;
00143     bool m_isDebugEnabled;
00144 
00145 
00146 };
00147 
00148 #endif // EventFilter_L1GlobalTriggerRawToDigi_L1GlobalTriggerRawToDigi_h