CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/src/L1Trigger/GlobalTrigger/interface/L1GlobalTriggerFDL.h

Go to the documentation of this file.
00001 #ifndef GlobalTrigger_L1GlobalTriggerFDL_h
00002 #define GlobalTrigger_L1GlobalTriggerFDL_h
00003 
00020 // system include files
00021 #include <vector>
00022 
00023 #include <boost/cstdint.hpp>
00024 
00025 // user include files
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 // forward declarations
00035 class L1GlobalTriggerReadoutRecord;
00036 class L1GlobalTriggerEvmReadoutRecord;
00037 
00038 class L1GtFdlWord;
00039 class L1GlobalTriggerGTL;
00040 class L1GlobalTriggerPSB;
00041 
00042 // class declaration
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