File indexing completed on 2024-04-06 12:21:38
0001 #ifndef RBCCHAMBERORLOGIC_H
0002 #define RBCCHAMBERORLOGIC_H 1
0003
0004
0005
0006 #include "L1Trigger/RPCTechnicalTrigger/interface/RBCLogic.h"
0007 #include "L1Trigger/RPCTechnicalTrigger/interface/RBCInput.h"
0008
0009 #include <iostream>
0010 #include <vector>
0011 #include <map>
0012 #include <array>
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 class RBCChamberORLogic : public RBCLogic {
0028 public:
0029
0030 RBCChamberORLogic();
0031
0032 void process(const RBCInput &, std::bitset<2> &) override;
0033
0034 void setBoardSpecs(const RBCBoardSpecs::RBCBoardConfig &) override;
0035
0036 std::bitset<6> *getlayersignal(int _idx) override { return &m_layersignal[_idx]; };
0037
0038 typedef std::vector<std::string>::iterator itr2names;
0039 typedef std::map<std::string, bool>::iterator itr2chambers;
0040
0041 void copymap(const std::bitset<15> &);
0042
0043 void createmap(const std::bitset<15> &);
0044
0045 void reset();
0046
0047 bool evaluateLayerOR(const char *, const char *);
0048
0049 void setmaxlevel(int _mx) { m_maxlevel = _mx; };
0050
0051 std::array<std::bitset<6>, 2> m_layersignal;
0052
0053 protected:
0054 private:
0055 std::vector<std::string> m_rbname;
0056
0057 std::map<std::string, bool> m_chamber;
0058
0059 int m_maxcb;
0060
0061 int m_maxlevel;
0062 };
0063 #endif