00001 // $Id: RBCChamberORLogic.h,v 1.2 2009/06/07 21:18:50 aosorio Exp $ 00002 #ifndef RBCCHAMBERORLOGIC_H 00003 #define RBCCHAMBERORLOGIC_H 1 00004 00005 // Include files 00006 00007 #include "L1Trigger/RPCTechnicalTrigger/interface/RBCLogic.h" 00008 #include "L1Trigger/RPCTechnicalTrigger/interface/RBCInput.h" 00009 00010 #include <iostream> 00011 #include <vector> 00012 #include <map> 00013 00014 00028 class RBCChamberORLogic : public RBCLogic { 00029 public: 00031 RBCChamberORLogic( ); 00032 00033 virtual ~RBCChamberORLogic( ); 00034 00035 void process ( const RBCInput & , std::bitset<2> & ); 00036 00037 void setBoardSpecs( const RBCBoardSpecs::RBCBoardConfig & ); 00038 00039 std::bitset<6> * getlayersignal(int _idx) { return & m_layersignal[_idx]; }; 00040 00041 typedef std::vector<std::string>::iterator itr2names; 00042 typedef std::map<std::string,bool>::iterator itr2chambers; 00043 00044 void copymap( const std::bitset<15> & ); 00045 00046 void createmap( const std::bitset<15> & ); 00047 00048 void reset(); 00049 00050 bool evaluateLayerOR( const char *, const char * ); 00051 00052 void setmaxlevel( int _mx ) { m_maxlevel = _mx;}; 00053 00054 std::bitset<6> * m_layersignal; 00055 00056 protected: 00057 00058 private: 00059 00060 std::vector<std::string> m_rbname; 00061 00062 std::map<std::string, bool> m_chamber; 00063 00064 int m_maxcb; 00065 00066 int m_maxlevel; 00067 00068 }; 00069 #endif // RBCCHAMBERORLOGIC_H