CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
L1MuBMSectorProcessor.h
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
18 //
19 //--------------------------------------------------
20 #ifndef L1MUBM_SECTOR_PROCESSOR_H
21 #define L1MUBM_SECTOR_PROCESSOR_H
22 
23 //---------------
24 // C++ Headers --
25 //---------------
26 
27 #include <vector>
28 
29 //----------------------
30 // Base Class Headers --
31 //----------------------
32 
35 
36 //------------------------------------
37 // Collaborating Class Declarations --
38 //------------------------------------
39 
43 class L1MuBMDataBuffer;
47 class L1MuBMTrackFinder;
48 class L1MuBMTrack;
49 
50 // ---------------------
51 // -- Class Interface --
52 // ---------------------
53 
55 
56  public:
57 
60 
62  virtual ~L1MuBMSectorProcessor();
63 
65  virtual void run(int bx, const edm::Event& e, const edm::EventSetup& c);
66 
68  virtual void reset();
69 
71  void print() const;
72 
74  const L1MuBMSectorProcessor* neighbour() const;
75 
77  inline const L1MuBMSecProcId& id() const { return m_spid; }
78 
80  inline const L1MuBMTrackFinder& tf() const { return m_tf; }
81 
83  inline bool brl() const { return !m_spid.ovl(); }
84 
86  inline bool ovl() const { return m_spid.ovl(); }
87 
89  inline const L1MuBMDataBuffer* data() const { return m_DataBuffer; }
90  inline L1MuBMDataBuffer* data() { return m_DataBuffer; }
91 
93  inline const L1MuBMExtrapolationUnit* EU() const { return m_EU; }
94 
96  inline const L1MuBMTrackAssembler* TA() const { return m_TA; }
97 
99  inline const L1MuBMAssignmentUnit* AU(int id) const { return m_AUs[id]; }
100 
102  inline L1MuBMTrack* track(int id) const { return m_TrackCands[id]; }
103 
105  inline L1MuBMTrack* tracK(int id) const { return m_TracKCands[id]; }
106 
107  private:
108 
110  bool anyTrack() const;
111 
112  private:
113 
116 
121  std::vector<L1MuBMAssignmentUnit*> m_AUs;
122 
123  std::vector<L1MuBMTrack*> m_TrackCands;
124  std::vector<L1MuBMTrack*> m_TracKCands;
125 
126 };
127 
128 #endif
const L1MuBMTrackFinder & tf() const
return reference to barrel MTTF
const L1MuBMSectorProcessor * neighbour() const
return pointer to the next wheel neighbour
bool anyTrack() const
are there any non-empty muon candidates?
L1MuBMDataBuffer * data()
virtual ~L1MuBMSectorProcessor()
destructor
std::vector< L1MuBMTrack * > m_TracKCands
bool ovl() const
is it an overlap region Sector Processor?
const L1MuBMExtrapolationUnit * EU() const
return pointer to Extrapolation Unit
L1MuBMTrack * tracK(int id) const
return pointer to muon candidate, index [0,1]
std::vector< L1MuBMTrack * > m_TrackCands
const L1MuBMTrackFinder & m_tf
const L1MuBMTrackAssembler * TA() const
return pointer to Track Assembler
const L1MuBMSecProcId & id() const
return Sector Processor identifier
L1MuBMTrack * track(int id) const
return pointer to muon candidate, index [0,1]
void print() const
print muon candidates found by the Sector Processor
bool ovl() const
is it an overlap region Sector Processor?
L1MuBMSectorProcessor(const L1MuBMTrackFinder &, const L1MuBMSecProcId &, edm::ConsumesCollector &&)
constructor
bool brl() const
is it a barrel-only Sector Processor?
L1MuBMSectorReceiver * m_SectorReceiver
L1MuBMTrackAssembler * m_TA
const L1MuBMDataBuffer * data() const
return pointer to Data Buffer
L1MuBMDataBuffer * m_DataBuffer
std::vector< L1MuBMAssignmentUnit * > m_AUs
L1MuBMExtrapolationUnit * m_EU
virtual void run(int bx, const edm::Event &e, const edm::EventSetup &c)
run the Sector Processor
const L1MuBMAssignmentUnit * AU(int id) const
return pointer to Assignment Unit, index [0,1]
virtual void reset()
reset the Sector Processor