CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/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 
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