Go to the documentation of this file.00001 #ifndef EventFilter_L1GlobalTriggerRawToDigi_L1GTDigiToRaw_h
00002 #define EventFilter_L1GlobalTriggerRawToDigi_L1GTDigiToRaw_h
00003
00021
00022 #include <memory>
00023
00024
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
00036 class FEDRawDataCollection;
00037 class L1MuGMTReadoutRecord;
00038 class L1MuGMTReadoutCollection;
00039
00040 class L1GtfeWord;
00041 class L1GtFdlWord;
00042 class L1GtPsbWord;
00043
00044
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