CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_7_hltpatch2/src/L1Trigger/DTTrackFinder/src/L1MuDTSEU.h

Go to the documentation of this file.
00001 //-------------------------------------------------
00002 //
00017 //
00018 //--------------------------------------------------
00019 #ifndef L1MUDT_SEU_H
00020 #define L1MUDT_SEU_H
00021 
00022 //---------------
00023 // C++ Headers --
00024 //---------------
00025 
00026 #include <utility>
00027 #include <vector>
00028 #include <bitset>
00029 
00030 //----------------------
00031 // Base Class Headers --
00032 //----------------------
00033 
00034 #include "L1Trigger/DTTrackFinder/interface/L1AbstractProcessor.h"
00035 
00036 //------------------------------------
00037 // Collaborating Class Declarations --
00038 //------------------------------------
00039 
00040 #include "CondFormats/L1TObjects/interface/L1MuDTExtParam.h"
00041 class L1MuDTSectorProcessor;
00042 class L1MuDTTrackSegPhi;
00043 class L1MuDTEUX;
00044 class L1MuDTERS;
00045 
00046 //              ---------------------
00047 //              -- Class Interface --
00048 //              ---------------------
00049 
00050 class L1MuDTSEU : public L1AbstractProcessor {
00051 
00052   public:
00053 
00055     L1MuDTSEU(const L1MuDTSectorProcessor& sp, Extrapolation ext, unsigned int tsId );
00056 
00058     virtual ~L1MuDTSEU();
00059 
00061     virtual void run(const edm::EventSetup& c);
00062    
00064     virtual void reset();
00065 
00067     void reset(unsigned int relAdr);
00068     
00070     inline void load(const L1MuDTTrackSegPhi* startTS) { m_startTS = startTS; }
00071 
00073     const std::bitset<12>& exTable() const { return m_EXtable; }
00074 
00076     const std::bitset<12>& qsTable() const { return m_QStable; }
00077     
00079     int numberOfExt() const;
00080     
00082     inline Extrapolation ext() const { return m_ext; }
00083 
00085     inline unsigned int tsId() const { return m_startTS_Id; }
00086     
00088     inline bool isOwnWheelSEU() const { return ( m_startTS_Id == 0 || m_startTS_Id == 1 ); }
00089     
00091     inline bool isNextWheelSEU() const { return ( m_startTS_Id == 2 || m_startTS_Id == 3 ); }
00092     
00094     inline const std::vector<L1MuDTEUX*>& eux() const { return m_EUXs; }
00095     
00097     inline const L1MuDTERS* ers() const { return m_ERS; }
00098 
00099   private:
00100 
00101     const L1MuDTSectorProcessor& m_sp;
00102     Extrapolation                m_ext;         // Extrapolation type
00103     unsigned int                 m_startTS_Id;  // rel. address of start TS
00104   
00105     const L1MuDTTrackSegPhi*     m_startTS;     // start track segment
00106     std::vector<L1MuDTEUX*>      m_EUXs;        // vector of Extrapolators
00107     L1MuDTERS*                   m_ERS;         // Extrapolation Result Selector
00108 
00109     std::bitset<12>              m_EXtable;     // Extrapolator table
00110     std::bitset<12>              m_QStable;     // Quality Selector table         
00111 };
00112 
00113 #endif