00001 // $Id: RPCWheel.h,v 1.4 2009/06/17 15:27:24 aosorio Exp $ 00002 #ifndef RPCWHEEL_H 00003 #define RPCWHEEL_H 1 00004 00005 // Include files 00006 #include "L1Trigger/RPCTechnicalTrigger/interface/RBCEmulator.h" 00007 #include "L1Trigger/RPCTechnicalTrigger/interface/TTUInput.h" 00008 #include "CondFormats/RPCObjects/interface/RBCBoardSpecs.h" 00009 00010 #include<vector> 00011 #include<map> 00012 00022 void print_wheel( const TTUInput & ); 00023 00024 class RPCWheel { 00025 public: 00027 RPCWheel( ); 00028 00029 virtual ~RPCWheel( ); 00030 00031 void setProperties( int ); 00032 00033 void setProperties( int , const char * ); 00034 00035 void setProperties( int , const char *, const char * ); 00036 00037 void setSpecifications( const RBCBoardSpecs * ); 00038 00039 bool initialise(); 00040 00041 void emulate(); 00042 00043 bool process( int , const std::map<int,RBCInput*> & ); 00044 00045 bool process( int , const std::map<int,TTUInput*> & ); 00046 00047 void createWheelMap(); 00048 00049 void retrieveWheelMap( TTUInput & ); 00050 00051 int getid() { return m_id; }; 00052 00053 void printinfo(); 00054 00055 void print_wheel(const TTUInput & ); 00056 00057 std::vector<RBCEmulator*> m_RBCE; 00058 00059 protected: 00060 00061 private: 00062 00063 int m_id; 00064 int m_maxrbc; 00065 int m_maxlayers; 00066 int m_maxsectors; 00067 00068 std::vector<int> m_sec1id; 00069 std::vector<int> m_sec2id; 00070 00071 //... 00072 00073 std::bitset<12> m_rbcDecision; 00074 std::bitset<6> * m_wheelmap; 00075 00076 bool m_debug; 00077 00078 }; 00079 00080 #endif // RPCWHEEL_H