Go to the documentation of this file.00001 #ifndef EventFilter_L1GlobalTriggerRawToDigi_L1GTEvmDigiToRaw_h
00002 #define EventFilter_L1GlobalTriggerRawToDigi_L1GTEvmDigiToRaw_h
00003
00020
00021 #include <memory>
00022
00023
00024 #include "FWCore/Framework/interface/Frameworkfwd.h"
00025 #include "FWCore/Framework/interface/EDProducer.h"
00026
00027 #include "FWCore/Framework/interface/Event.h"
00028 #include "FWCore/Framework/interface/MakerMacros.h"
00029
00030 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00031 #include "FWCore/Utilities/interface/InputTag.h"
00032 #include "FWCore/Utilities/interface/typedefs.h"
00033
00034
00035 class FEDRawDataCollection;
00036
00037 class L1GtfeWord;
00038 class L1GtfeExtWord;
00039 class L1TcsWord;
00040 class L1GtFdlWord;
00041
00042
00043 class L1GTEvmDigiToRaw : public edm::EDProducer
00044 {
00045
00046 public:
00047
00049 explicit L1GTEvmDigiToRaw(const edm::ParameterSet&);
00050
00052 virtual ~L1GTEvmDigiToRaw();
00053
00054 private:
00055
00057 virtual void beginJob();
00058
00060 virtual void produce(edm::Event&, const edm::EventSetup&);
00061
00063
00065 void packHeader(unsigned char*, edm::Event&);
00066
00070 void packGTFE(const edm::EventSetup&, unsigned char*, L1GtfeExtWord&,
00071 cms_uint16_t activeBoardsGtValue);
00072
00074 void packTCS(const edm::EventSetup& evSetup, unsigned char* ptrGt,
00075 L1TcsWord& tcsBlock);
00076
00078 void packFDL(const edm::EventSetup&, unsigned char*, L1GtFdlWord&);
00079
00081 void packTrailer(unsigned char*, unsigned char*, int);
00082
00084 virtual void endJob();
00085
00086 private:
00087
00090 int m_evmGtFedId;
00091
00093 edm::InputTag m_evmGtInputTag;
00094
00096 cms_uint16_t m_activeBoardsMaskGt;
00097
00099 int m_totalBxInEvent;
00100
00103 int m_minBxInEvent;
00104
00107 int m_maxBxInEvent;
00108
00110 int m_bstLengthBytes;
00111
00112 private:
00113
00115 int m_verbosity;
00116 bool m_isDebugEnabled;
00117
00118 };
00119
00120 #endif // EventFilter_L1GlobalTriggerRawToDigi_L1GTEvmDigiToRaw_h