Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 09:56:04

0001 #ifndef RBCLOGICUNIT_H
0002 #define RBCLOGICUNIT_H 1
0003 
0004 // Include files
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 /** @class RBCLogicUnit RBCLogicUnit.h
0013  *  
0014  *
0015  *  @author Andres Osorio
0016  *  @date   2008-10-25
0017  */
0018 
0019 class RBCLogicUnit : public RPCLogicUnit {
0020 public:
0021   /// Standard constructor
0022   RBCLogicUnit();
0023 
0024   RBCLogicUnit(const char*);
0025 
0026   ~RBCLogicUnit() override;  ///< Destructor
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  // RBCLOGICUNIT_H