File indexing completed on 2023-10-25 09:56:04
0001 #ifndef RBCLOGICUNIT_H
0002 #define RBCLOGICUNIT_H 1
0003
0004
0005 #include "L1Trigger/RPCTechnicalTrigger/interface/LogicTool.h"
0006 #include "L1Trigger/RPCTechnicalTrigger/interface/RPCLogicUnit.h"
0007 #include "L1Trigger/RPCTechnicalTrigger/interface/RBCLogic.h"
0008 #include "L1Trigger/RPCTechnicalTrigger/interface/RBCInput.h"
0009
0010 #include <bitset>
0011
0012
0013
0014
0015
0016
0017
0018
0019 class RBCLogicUnit : public RPCLogicUnit {
0020 public:
0021
0022 RBCLogicUnit();
0023
0024 RBCLogicUnit(const char*);
0025
0026 ~RBCLogicUnit() override;
0027
0028 bool initialise();
0029
0030 void setlogic(const char*);
0031
0032 void setBoardSpecs(const RBCBoardSpecs::RBCBoardConfig&);
0033
0034 void run(const RBCInput&, std::bitset<2>&);
0035
0036 std::bitset<6>* getlayersignal(int _idx) { return m_layersignal[_idx]; };
0037
0038 bool isTriggered() { return m_logic->m_triggersignal; };
0039
0040 protected:
0041 private:
0042 std::string m_logtype;
0043
0044 std::bitset<6>* m_layersignal[2];
0045
0046 std::unique_ptr<RBCLogic> m_logic;
0047
0048 bool m_debug;
0049 };
0050 #endif