Go to the documentation of this file.00001 #ifndef GlobalTrigger_L1GlobalTriggerFDL_h
00002 #define GlobalTrigger_L1GlobalTriggerFDL_h
00003
00020
00021 #include <vector>
00022
00023 #include <boost/cstdint.hpp>
00024
00025
00026 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h"
00027 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetup.h"
00028
00029 #include "FWCore/Framework/interface/Event.h"
00030
00031 #include "CondFormats/L1TObjects/interface/L1GtFwd.h"
00032 #include "CondFormats/L1TObjects/interface/L1GtBoard.h"
00033
00034
00035 class L1GlobalTriggerReadoutRecord;
00036 class L1GlobalTriggerEvmReadoutRecord;
00037
00038 class L1GtFdlWord;
00039 class L1GlobalTriggerGTL;
00040 class L1GlobalTriggerPSB;
00041
00042
00043 class L1GlobalTriggerFDL
00044 {
00045
00046 public:
00047
00049 L1GlobalTriggerFDL();
00050
00052 virtual ~L1GlobalTriggerFDL();
00053
00055 void run(
00056 edm::Event& iEvent,
00057 const std::vector<int>& prescaleFactorsAlgoTrig,
00058 const std::vector<int>& prescaleFactorsTechTrig,
00059 const std::vector<unsigned int>& triggerMaskAlgoTrig,
00060 const std::vector<unsigned int>& triggerMaskTechTrig,
00061 const std::vector<unsigned int>& triggerMaskVetoAlgoTrig,
00062 const std::vector<unsigned int>& triggerMaskVetoTechTrig,
00063 const std::vector<L1GtBoard>& boardMaps,
00064 const int totalBxInEvent,
00065 const int iBxInEvent,
00066 const unsigned int numberPhysTriggers, const unsigned int numberTechnicalTriggers,
00067 const unsigned int numberDaqPartitions,
00068 const L1GlobalTriggerGTL* ptrGTL,
00069 const L1GlobalTriggerPSB* ptrPSB,
00070 const int pfAlgoSetIndex,
00071 const int pfTechSetIndex);
00072
00074 void fillDaqFdlBlock(const int iBxInEvent,
00075 const boost::uint16_t& activeBoardsGtDaq, const int recordLength0,
00076 const int recordLength1, const unsigned int altNrBxBoardDaq,
00077 const std::vector<L1GtBoard>& boardMaps,
00078 std::auto_ptr<L1GlobalTriggerReadoutRecord>& gtDaqReadoutRecord);
00079
00081 void fillEvmFdlBlock(const int iBxInEvent,
00082 const boost::uint16_t& activeBoardsGtEvm, const int recordLength0,
00083 const int recordLength1, const unsigned int altNrBxBoardEvm,
00084 const std::vector<L1GtBoard>& boardMaps,
00085 std::auto_ptr<L1GlobalTriggerEvmReadoutRecord>& gtEvmReadoutRecord);
00086
00088 void reset();
00089
00091 inline L1GtFdlWord* gtFdlWord() const
00092 {
00093 return m_gtFdlWord;
00094 }
00095
00096 public:
00097
00098 inline void setVerbosity(const int verbosity) {
00099 m_verbosity = verbosity;
00100 }
00101
00102 private:
00103
00104 L1GtFdlWord* m_gtFdlWord;
00105
00107 std::vector<std::vector<int> > m_prescaleCounterAlgoTrig;
00108
00110 std::vector<std::vector<int> > m_prescaleCounterTechTrig;
00111
00116 bool m_firstEv;
00117 bool m_firstEvLumiSegment;
00118 bool m_firstEvRun;
00119
00120 private:
00121
00123 int m_verbosity;
00124 bool m_isDebugEnabled;
00125
00126 };
00127
00128 #endif