00001 //------------------------------------------------- 00002 // 00012 // 00013 // $Date: 2007/04/12 13:21:14 $ 00014 // $Revision: 1.3 $ 00015 // 00016 // Author : 00017 // N. Neumeister CERN EP 00018 // 00019 // Migrated to CMSSW: 00020 // I. Mikulec 00021 // 00022 //-------------------------------------------------- 00023 #ifndef L1TriggerGlobalMuonTrigger_L1MuGMTPSB_h 00024 #define L1TriggerGlobalMuonTrigger_L1MuGMTPSB_h 00025 00026 //--------------- 00027 // C++ Headers -- 00028 //--------------- 00029 00030 #include <vector> 00031 00032 //---------------------- 00033 // Base Class Headers -- 00034 //---------------------- 00035 00036 #include "FWCore/Framework/interface/Event.h" 00037 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h" 00038 #include "L1Trigger/GlobalMuonTrigger/src/L1MuGMTMatrix.h" 00039 00040 //------------------------------------ 00041 // Collaborating Class Declarations -- 00042 //------------------------------------ 00043 00044 class L1MuGlobalMuonTrigger; 00045 00046 // --------------------- 00047 // -- Class Interface -- 00048 // --------------------- 00049 00050 class L1MuGMTPSB { 00051 00052 public: 00053 00055 L1MuGMTPSB(const L1MuGlobalMuonTrigger& gmt); 00056 00058 virtual ~L1MuGMTPSB(); 00059 00061 void receiveData(edm::Event& e, int bx); 00062 00064 void reset(); 00065 00067 void print() const; 00068 00070 const L1MuRegionalCand* RPCMuon(int index) const; 00071 00073 const L1MuRegionalCand* DTBXMuon(int index) const; 00074 00076 const L1MuRegionalCand* CSCMuon(int index) const; 00077 00079 int numberRPC() const; 00080 00082 int numberDTBX() const; 00083 00085 int numberCSC() const; 00086 00088 bool empty() const; 00089 00091 const L1MuGMTMatrix<bool>& isolBits() const { return m_Isol; } 00092 00094 const L1MuGMTMatrix<bool>& mipBits() const { return m_Mip; } 00095 00096 private: 00097 00099 void getRPCb(std::vector<L1MuRegionalCand> const* data, int bx); 00100 00102 void getRPCf(std::vector<L1MuRegionalCand> const* data, int bx); 00103 00105 void getDTBX(std::vector<L1MuRegionalCand> const* data, int bx); 00106 00108 void getCSC(std::vector<L1MuRegionalCand> const* data, int bx); 00109 00111 void getCalo(edm::Event& e); 00112 00114 void printRPCbarrel() const; 00115 00117 void printRPCendcap() const; 00118 00120 void printDTBX() const; 00121 00123 void printCSC() const; 00124 00125 private: 00126 00127 const L1MuGlobalMuonTrigger& m_gmt; 00128 00129 std::vector<L1MuRegionalCand> m_RpcMuons; 00130 std::vector<L1MuRegionalCand> m_DtbxMuons; 00131 std::vector<L1MuRegionalCand> m_CscMuons; 00132 00133 L1MuGMTMatrix<bool> m_Isol; 00134 L1MuGMTMatrix<bool> m_Mip; 00135 00136 }; 00137 00138 #endif