CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
L1MuDTSectorProcessor.h
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
18 //
19 //--------------------------------------------------
20 #ifndef L1MUDT_SECTOR_PROCESSOR_H
21 #define L1MUDT_SECTOR_PROCESSOR_H
22 
23 //---------------
24 // C++ Headers --
25 //---------------
26 
27 #include <vector>
28 
29 //----------------------
30 // Base Class Headers --
31 //----------------------
32 
34 
35 //------------------------------------
36 // Collaborating Class Declarations --
37 //------------------------------------
38 
42 class L1MuDTDataBuffer;
46 class L1MuDTTrackFinder;
47 class L1MuDTTrack;
48 
49 // ---------------------
50 // -- Class Interface --
51 // ---------------------
52 
54 
55  public:
56 
59 
61  virtual ~L1MuDTSectorProcessor();
62 
64  virtual void run(int bx, const edm::Event& e, const edm::EventSetup& c);
65 
67  virtual void reset();
68 
70  void print() const;
71 
73  const L1MuDTSectorProcessor* neighbour() const;
74 
76  inline const L1MuDTSecProcId& id() const { return m_spid; }
77 
79  inline const L1MuDTTrackFinder& tf() const { return m_tf; }
80 
82  inline bool brl() const { return !m_spid.ovl(); }
83 
85  inline bool ovl() const { return m_spid.ovl(); }
86 
88  inline const L1MuDTDataBuffer* data() const { return m_DataBuffer; }
89  inline L1MuDTDataBuffer* data() { return m_DataBuffer; }
90 
92  inline const L1MuDTExtrapolationUnit* EU() const { return m_EU; }
93 
95  inline const L1MuDTTrackAssembler* TA() const { return m_TA; }
96 
98  inline const L1MuDTAssignmentUnit* AU(int id) const { return m_AUs[id]; }
99 
101  inline L1MuDTTrack* track(int id) const { return m_TrackCands[id]; }
102 
104  inline L1MuDTTrack* tracK(int id) const { return m_TracKCands[id]; }
105 
106  private:
107 
109  bool anyTrack() const;
110 
111  private:
112 
115 
120  std::vector<L1MuDTAssignmentUnit*> m_AUs;
121 
122  std::vector<L1MuDTTrack*> m_TrackCands;
123  std::vector<L1MuDTTrack*> m_TracKCands;
124 
125 };
126 
127 #endif
const L1MuDTAssignmentUnit * AU(int id) const
return pointer to Assignment Unit, index [0,1]
L1MuDTTrack * tracK(int id) const
return pointer to muon candidate, index [0,1]
L1MuDTSectorReceiver * m_SectorReceiver
const L1MuDTSectorProcessor * neighbour() const
return pointer to the next wheel neighbour
std::vector< L1MuDTAssignmentUnit * > m_AUs
bool anyTrack() const
are there any non-empty muon candidates?
virtual void reset()
reset the Sector Processor
const L1MuDTDataBuffer * data() const
return pointer to Data Buffer
const L1MuDTTrackAssembler * TA() const
return pointer to Track Assembler
bool brl() const
is it a barrel-only Sector Processor?
std::vector< L1MuDTTrack * > m_TracKCands
L1MuDTExtrapolationUnit * m_EU
bool ovl() const
is it an overlap region Sector Processor?
L1MuDTSectorProcessor(const L1MuDTTrackFinder &, const L1MuDTSecProcId &, edm::ConsumesCollector &&)
constructor
const L1MuDTSecProcId & id() const
return Sector Processor identifier
void print() const
print muon candidates found by the Sector Processor
L1MuDTDataBuffer * data()
virtual void run(int bx, const edm::Event &e, const edm::EventSetup &c)
run the Sector Processor
const L1MuDTTrackFinder & tf() const
return reference to barrel MTTF
L1MuDTDataBuffer * m_DataBuffer
L1MuDTTrackAssembler * m_TA
const L1MuDTTrackFinder & m_tf
const L1MuDTExtrapolationUnit * EU() const
return pointer to Extrapolation Unit
L1MuDTTrack * track(int id) const
return pointer to muon candidate, index [0,1]
virtual ~L1MuDTSectorProcessor()
destructor
std::vector< L1MuDTTrack * > m_TrackCands
bool ovl() const
is it an overlap region Sector Processor?