CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/L1Trigger/GlobalMuonTrigger/src/L1MuGMTPSB.h

Go to the documentation of this file.
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