CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/EventFilter/L1GlobalTriggerRawToDigi/interface/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 // user include files
00025 #include "FWCore/Framework/interface/Frameworkfwd.h"
00026 #include "FWCore/Framework/interface/EDProducer.h"
00027 
00028 #include "FWCore/Framework/interface/Event.h"
00029 #include "FWCore/Framework/interface/MakerMacros.h"
00030 
00031 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00032 #include "FWCore/Utilities/interface/InputTag.h"
00033 #include "FWCore/Utilities/interface/typedefs.h"
00034 
00035 // forward declarations
00036 class FEDRawDataCollection;
00037 class L1MuGMTReadoutRecord;
00038 class L1MuGMTReadoutCollection;
00039 
00040 class L1GtfeWord;
00041 class L1GtFdlWord;
00042 class L1GtPsbWord;
00043 
00044 // class declaration
00045 class L1GTDigiToRaw : public edm::EDProducer
00046 {
00047 
00048 public:
00049 
00051     explicit L1GTDigiToRaw(const edm::ParameterSet&);
00052 
00054     virtual ~L1GTDigiToRaw();
00055 
00056 private:
00057 
00059     virtual void beginJob();
00060 
00062     virtual void produce(edm::Event&, const edm::EventSetup&);
00063 
00065 
00067     void packHeader(unsigned char*, edm::Event&);
00068 
00072     void packGTFE(const edm::EventSetup&, unsigned char*, L1GtfeWord&,
00073                   cms_uint16_t activeBoardsGtValue);
00074 
00076     void packFDL(const edm::EventSetup&, unsigned char*, L1GtFdlWord&);
00077 
00080     void packPSB(const edm::EventSetup&, unsigned char*, L1GtPsbWord&);
00081 
00083     unsigned int packGmtCollection(
00084         unsigned char* ptrGt,
00085         L1MuGMTReadoutCollection const* digis);
00086 
00088     unsigned int packGMT(L1MuGMTReadoutRecord const&, unsigned char*);
00089     unsigned int flipPtQ(unsigned int);
00090 
00092     void packTrailer(unsigned char*, unsigned char*, int);
00093 
00095     virtual void endJob();
00096 
00097 private:
00098 
00101     int m_daqGtFedId;
00102 
00104     edm::InputTag m_daqGtInputTag;
00105 
00107     edm::InputTag m_muGmtInputTag;
00108 
00110     cms_uint16_t m_activeBoardsMaskGt;
00111 
00113     int m_totalBxInEvent;
00114 
00117     int m_minBxInEvent;
00118 
00121     int m_maxBxInEvent;
00122 
00123 private:
00124 
00126     int m_verbosity;
00127     bool m_isDebugEnabled;
00128 
00129 };
00130 
00131 #endif // EventFilter_L1GlobalTriggerRawToDigi_L1GTDigiToRaw_h