CMS 3D CMS Logo

L1MuDTEtaProcessor.h
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
17 //
18 //--------------------------------------------------
19 #ifndef L1MUDT_ETA_PROCESSOR_H
20 #define L1MUDT_ETA_PROCESSOR_H
21 
22 //---------------
23 // C++ Headers --
24 //---------------
25 
26 #include <vector>
27 
28 //----------------------
29 // Base Class Headers --
30 //----------------------
31 
32 //------------------------------------
33 // Collaborating Class Declarations --
34 //------------------------------------
35 
44 class L1MuDTTrackSegEta;
45 class L1MuDTTrackFinder;
46 class L1MuDTTrack;
49 class L1MuDTTFMasks;
50 
51 // ---------------------
52 // -- Class Interface --
53 // ---------------------
54 
56 public:
59 
61  virtual ~L1MuDTEtaProcessor();
62 
64  inline int id() const { return m_epid; }
65 
67  virtual void run(int bx, const edm::Event& e, const edm::EventSetup& c);
68 
70  virtual void reset();
71 
73  void print() const;
74 
76  inline const L1MuDTTrackFinder& tf() const { return m_tf; }
77 
79  inline int eta(int id) const { return m_eta[id]; }
80 
82  inline bool fineBit(int id) const { return m_fine[id]; }
83 
84 private:
86  void receiveData(int bx, const edm::Event& e, const edm::EventSetup& c);
87 
89  void receiveAddresses();
90 
92  void runEtaTrackFinder(const edm::EventSetup& c);
93 
95  void runEtaMatchingUnit(const edm::EventSetup& c);
96 
98  void assign();
99 
101  static int quality(int id, int stat);
102 
103 private:
105  int m_epid;
106 
107  int m_mask;
108 
109  int m_eta[12];
110  bool m_fine[12];
111 
112  std::vector<int> m_foundPattern;
113  int m_pattern[12];
114 
115  int m_address[12];
118  std::vector<const L1MuDTTrackSegEta*> m_tseta;
120 
124 };
125 
126 #endif
L1MuDTEtaProcessor(const L1MuDTTrackFinder &, int id, edm::ConsumesCollector &&iC)
constructor
const L1MuDTTrackFinder & tf() const
return reference to barrel MTTF
void runEtaTrackFinder(const edm::EventSetup &c)
run Eta Track Finder (ETF)
const L1MuDTTrackFinder & m_tf
virtual ~L1MuDTEtaProcessor()
destructor
L1MuDTTrack * m_TracKCand[12]
void assign()
assign eta and etaFineBit
static int quality(int id, int stat)
get quality code; id [0,26], stat [1,3]
edm::ESHandle< L1MuDTTFMasks > msks
bool fineBit(int id) const
return fine bit, index [0,11]
virtual void run(int bx, const edm::Event &e, const edm::EventSetup &c)
run the Eta Processor
edm::ESHandle< L1MuDTEtaPatternLut > theEtaPatternLUT
std::vector< const L1MuDTTrackSegEta * > m_tseta
void receiveAddresses()
receive addresses (from 6 Sector Processors)
int id() const
return Eta Processor identifier (0-11)
void runEtaMatchingUnit(const edm::EventSetup &c)
run Eta Matching Unit (EMU)
std::vector< int > m_foundPattern
void receiveData(int bx, const edm::Event &e, const edm::EventSetup &c)
receive data (eta trigger primitives)
virtual void reset()
reset the Eta Processor
int eta(int id) const
return eta values, index [0,11]
edm::ESHandle< L1MuDTQualPatternLut > theQualPatternLUT
L1MuDTTrack * m_TrackCand[12]
edm::EDGetTokenT< L1MuDTChambThContainer > m_DTDigiToken
void print() const
print muon candidates found by the Eta Processor