CMS 3D CMS Logo

L1GTDigiToRaw.h

Go to the documentation of this file.
00001 #ifndef EventFilter_L1GlobalTriggerRawToDigi_L1GTDigiToRaw_h
00002 #define EventFilter_L1GlobalTriggerRawToDigi_L1GTDigiToRaw_h
00003 
00021 // system include files
00022 #include <memory>
00023 
00024 #include <boost/cstdint.hpp>
00025 
00026 // user include files
00027 #include "FWCore/Framework/interface/Frameworkfwd.h"
00028 #include "FWCore/Framework/interface/EDProducer.h"
00029 
00030 #include "FWCore/Framework/interface/Event.h"
00031 #include "FWCore/Framework/interface/MakerMacros.h"
00032 
00033 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00034 #include "FWCore/ParameterSet/interface/InputTag.h"
00035 
00036 // forward declarations
00037 class FEDRawDataCollection;
00038 class L1MuGMTReadoutRecord;
00039 class L1MuGMTReadoutCollection;
00040 
00041 class L1GtfeWord;
00042 class L1GtFdlWord;
00043 class L1GtPsbWord;
00044 
00045 // class declaration
00046 class L1GTDigiToRaw : public edm::EDProducer
00047 {
00048 
00049 public:
00050 
00052     explicit L1GTDigiToRaw(const edm::ParameterSet&);
00053 
00055     virtual ~L1GTDigiToRaw();
00056 
00057 private:
00058 
00060     virtual void beginJob(const edm::EventSetup&);
00061 
00063     virtual void produce(edm::Event&, const edm::EventSetup&);
00064 
00066 
00068     void packHeader(unsigned char*, edm::Event&);
00069 
00073     void packGTFE(const edm::EventSetup&, unsigned char*, L1GtfeWord&,
00074                   boost::uint16_t activeBoardsGtValue);
00075 
00077     void packFDL(const edm::EventSetup&, unsigned char*, L1GtFdlWord&);
00078 
00081     void packPSB(const edm::EventSetup&, unsigned char*, L1GtPsbWord&);
00082 
00084     unsigned int packGmtCollection(
00085         unsigned char* ptrGt,
00086         L1MuGMTReadoutCollection const* digis);
00087 
00089     unsigned int packGMT(L1MuGMTReadoutRecord const&, unsigned char*);
00090     unsigned int flipPtQ(unsigned int);
00091 
00093     void packTrailer(unsigned char*, unsigned char*, int);
00094 
00096     virtual void endJob();
00097 
00098 private:
00099 
00102     int m_daqGtFedId;
00103 
00105     edm::InputTag m_daqGtInputTag;
00106 
00108     edm::InputTag m_muGmtInputTag;
00109 
00111     boost::uint16_t m_activeBoardsMaskGt;
00112 
00114     int m_totalBxInEvent;
00115 
00118     int m_minBxInEvent;
00119 
00122     int m_maxBxInEvent;
00123 
00124 private:
00125 
00127     int m_verbosity;
00128     bool m_isDebugEnabled;
00129 
00130 };
00131 
00132 #endif // EventFilter_L1GlobalTriggerRawToDigi_L1GTDigiToRaw_h

Generated on Tue Jun 9 17:34:42 2009 for CMSSW by  doxygen 1.5.4