00001 // $Id: RBCLogicUnit.h,v 1.4 2009/06/07 21:18:50 aosorio Exp $ 00002 #ifndef RBCLOGICUNIT_H 00003 #define RBCLOGICUNIT_H 1 00004 00005 // Include files 00006 #include "L1Trigger/RPCTechnicalTrigger/interface/LogicTool.h" 00007 #include "L1Trigger/RPCTechnicalTrigger/interface/RPCLogicUnit.h" 00008 #include "L1Trigger/RPCTechnicalTrigger/interface/RBCLogic.h" 00009 #include "L1Trigger/RPCTechnicalTrigger/interface/RBCInput.h" 00010 00011 #include <bitset> 00012 00020 class RBCLogicUnit : public RPCLogicUnit { 00021 public: 00023 RBCLogicUnit( ); 00024 00025 RBCLogicUnit( const char * ); 00026 00027 virtual ~RBCLogicUnit( ); 00028 00029 bool initialise(); 00030 00031 void setlogic( const char * ); 00032 00033 void setBoardSpecs( const RBCBoardSpecs::RBCBoardConfig & ); 00034 00035 void run( const RBCInput & , std::bitset<2> & ); 00036 00037 std::bitset<6> * getlayersignal(int _idx) { return m_layersignal[_idx]; }; 00038 00039 bool isTriggered() { 00040 return m_logic->m_triggersignal; 00041 }; 00042 00043 protected: 00044 00045 private: 00046 00047 std::string m_logtype; 00048 00049 std::bitset<6> * m_layersignal[2]; 00050 00051 RBCLogic * m_logic; 00052 00053 LogicTool<RBCLogic> * m_logtool; 00054 00055 bool m_debug; 00056 00057 }; 00058 #endif // RBCLOGICUNIT_H