CMS 3D CMS Logo

L1MuBMSEU.h
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
15 //
16 //--------------------------------------------------
17 #ifndef L1MUBM_SEU_H
18 #define L1MUBM_SEU_H
19 
20 //---------------
21 // C++ Headers --
22 //---------------
23 
24 #include <utility>
25 #include <vector>
26 #include <bitset>
27 
28 //----------------------
29 // Base Class Headers --
30 //----------------------
31 
32 //------------------------------------
33 // Collaborating Class Declarations --
34 //------------------------------------
35 
39 class L1MuBMTFConfig;
41 class L1MuBMTrackSegPhi;
42 class L1MuBMEUX;
43 class L1MuBMERS;
44 
45 // ---------------------
46 // -- Class Interface --
47 // ---------------------
48 
49 class L1MuBMSEU {
50 public:
52  L1MuBMSEU(const L1MuBMSectorProcessor& sp, Extrapolation ext, unsigned int tsId);
53 
55  ~L1MuBMSEU();
56 
58  void run(const L1TMuonBarrelParams& params);
59 
61  void reset();
62 
64  void reset(unsigned int relAdr);
65 
67  inline void load(const L1MuBMTrackSegPhi* startTS) { m_startTS = startTS; }
68 
70  const std::bitset<12>& exTable() const { return m_EXtable; }
71 
73  const std::bitset<12>& qsTable() const { return m_QStable; }
74 
76  int numberOfExt() const;
77 
79  inline Extrapolation ext() const { return m_ext; }
80 
82  inline unsigned int tsId() const { return m_startTS_Id; }
83 
85  inline bool isOwnWheelSEU() const { return (m_startTS_Id == 0 || m_startTS_Id == 1); }
86 
88  inline bool isNextWheelSEU() const { return (m_startTS_Id == 2 || m_startTS_Id == 3); }
89 
91  inline const std::vector<L1MuBMEUX*>& eux() const { return m_EUXs; }
92 
94  inline const L1MuBMERS* ers() const { return m_ERS; }
95 
96  const L1MuBMTFConfig& config() const;
97 
98 private:
100  Extrapolation m_ext; // Extrapolation type
101  unsigned int m_startTS_Id; // rel. address of start TS
102 
103  const L1MuBMTrackSegPhi* m_startTS; // start track segment
104  std::vector<L1MuBMEUX*> m_EUXs; // vector of Extrapolators
105  L1MuBMERS* m_ERS; // Extrapolation Result Selector
106 
107  std::bitset<12> m_EXtable; // Extrapolator table
108  std::bitset<12> m_QStable; // Quality Selector table
109 };
110 
111 #endif
bool isNextWheelSEU() const
is it a next wheel Single Extrapolation Unit
Definition: L1MuBMSEU.h:88
const std::bitset< 12 > & qsTable() const
return Quality Sorter table
Definition: L1MuBMSEU.h:73
const L1MuBMSectorProcessor & m_sp
Definition: L1MuBMSEU.h:99
unsigned int m_startTS_Id
Definition: L1MuBMSEU.h:101
int numberOfExt() const
return number of successful extrapolations
Definition: L1MuBMSEU.cc:173
const L1MuBMERS * ers() const
return pointer to Extrapolation Result Selector
Definition: L1MuBMSEU.h:94
void run(const L1TMuonBarrelParams &params)
run SEU
Definition: L1MuBMSEU.cc:85
const std::vector< L1MuBMEUX * > & eux() const
return pointer to an Extrapolator
Definition: L1MuBMSEU.h:91
unsigned int tsId() const
return start track segment identifier (relative address)
Definition: L1MuBMSEU.h:82
void load(const L1MuBMTrackSegPhi *startTS)
load data into the SEU
Definition: L1MuBMSEU.h:67
std::vector< L1MuBMEUX * > m_EUXs
Definition: L1MuBMSEU.h:104
std::bitset< 12 > m_QStable
Definition: L1MuBMSEU.h:108
void reset()
reset SEU
Definition: L1MuBMSEU.cc:147
L1MuBMSEU(const L1MuBMSectorProcessor &sp, Extrapolation ext, unsigned int tsId)
constructor
Definition: L1MuBMSEU.cc:50
Extrapolation
~L1MuBMSEU()
destructor
Definition: L1MuBMSEU.cc:65
const std::bitset< 12 > & exTable() const
return Extrapolator table
Definition: L1MuBMSEU.h:70
bool isOwnWheelSEU() const
is it a own wheel Single Extrapolation Unit
Definition: L1MuBMSEU.h:85
std::bitset< 12 > m_EXtable
Definition: L1MuBMSEU.h:107
L1MuBMERS * m_ERS
Definition: L1MuBMSEU.h:105
const L1MuBMTrackSegPhi * m_startTS
Definition: L1MuBMSEU.h:103
Definition: memstream.h:15
Extrapolation m_ext
Definition: L1MuBMSEU.h:100
Extrapolation ext() const
return extrapolation type
Definition: L1MuBMSEU.h:79
const L1MuBMTFConfig & config() const
Definition: L1MuBMSEU.cc:184