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