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 const bool algorithmTriggersUnprescaled,
00073 const bool algorithmTriggersUnmasked,
00074 const bool technicalTriggersUnprescaled,
00075 const bool technicalTriggersUnmasked,
00076 const bool technicalTriggersVetoUnmasked
00077 );
00078
00080 void fillDaqFdlBlock(const int iBxInEvent,
00081 const boost::uint16_t& activeBoardsGtDaq, const int recordLength0,
00082 const int recordLength1, const unsigned int altNrBxBoardDaq,
00083 const std::vector<L1GtBoard>& boardMaps,
00084 std::auto_ptr<L1GlobalTriggerReadoutRecord>& gtDaqReadoutRecord);
00085
00087 void fillEvmFdlBlock(const int iBxInEvent,
00088 const boost::uint16_t& activeBoardsGtEvm, const int recordLength0,
00089 const int recordLength1, const unsigned int altNrBxBoardEvm,
00090 const std::vector<L1GtBoard>& boardMaps,
00091 std::auto_ptr<L1GlobalTriggerEvmReadoutRecord>& gtEvmReadoutRecord);
00092
00094 void reset();
00095
00097 inline L1GtFdlWord* gtFdlWord() const
00098 {
00099 return m_gtFdlWord;
00100 }
00101
00102 public:
00103
00104 inline void setVerbosity(const int verbosity) {
00105 m_verbosity = verbosity;
00106 }
00107
00108 private:
00109
00110 L1GtFdlWord* m_gtFdlWord;
00111
00113 std::vector<std::vector<int> > m_prescaleCounterAlgoTrig;
00114
00116 std::vector<std::vector<int> > m_prescaleCounterTechTrig;
00117
00122 bool m_firstEv;
00123 bool m_firstEvLumiSegment;
00124 bool m_firstEvRun;
00125
00126 private:
00127
00129 int m_verbosity;
00130 bool m_isDebugEnabled;
00131
00132 };
00133
00134 #endif