CMS 3D CMS Logo

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 #include <memory>
29 
30 //----------------------
31 // Base Class Headers --
32 //----------------------
33 
35 
36 //------------------------------------
37 // Collaborating Class Declarations --
38 //------------------------------------
39 
42 
47 
50 class L1MuDTTrackFinder;
51 
52 // ---------------------
53 // -- Class Interface --
54 // ---------------------
55 
57 public:
60 
62  virtual ~L1MuDTSectorProcessor();
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 L1MuDTSectorProcessor* neighbour() const;
75 
77  inline const L1MuDTSecProcId& id() const { return m_spid; }
78 
80  inline const L1MuDTTrackFinder& 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 L1MuDTDataBuffer* data() const { return &m_DataBuffer; }
90  inline L1MuDTDataBuffer* data() { return &m_DataBuffer; }
91 
93  inline const L1MuDTExtrapolationUnit* EU() const { return &m_EU; }
94 
96  inline const L1MuDTTrackAssembler* TA() const { return &m_TA; }
97 
99  inline const L1MuDTAssignmentUnit* AU(int id) const { return &m_AUs[id]; }
100 
102  inline const L1MuDTTrack* track(int id) const { return &m_TrackCands[id]; }
103  inline L1MuDTTrack* track(int id) { return &m_TrackCands[id]; }
104 
106  inline const L1MuDTTrack* tracK(int id) const { return &m_TracKCands[id]; }
107  inline L1MuDTTrack* tracK(int id) { return &m_TracKCands[id]; }
108 
109 private:
111  bool anyTrack() const;
112 
113 private:
116 
121  std::array<L1MuDTAssignmentUnit, 2> m_AUs;
122 
123  std::array<L1MuDTTrack, 2> m_TrackCands;
124  std::array<L1MuDTTrack, 2> m_TracKCands;
125 };
126 
127 #endif
L1MuDTTrackAssembler m_TA
const L1MuDTTrackFinder & tf() const
return reference to barrel MTTF
const L1MuDTSectorProcessor * neighbour() const
return pointer to the next wheel neighbour
bool ovl() const
is it an overlap region Sector Processor?
const L1MuDTExtrapolationUnit * EU() const
return pointer to Extrapolation Unit
const L1MuDTTrack * tracK(int id) const
return pointer to muon candidate, index [0,1]
std::array< L1MuDTTrack, 2 > m_TrackCands
L1MuDTTrack * tracK(int id)
virtual void reset()
reset the Sector Processor
const L1MuDTDataBuffer * data() const
return pointer to Data Buffer
std::array< L1MuDTAssignmentUnit, 2 > m_AUs
const L1MuDTSecProcId & id() const
return Sector Processor identifier
L1MuDTExtrapolationUnit m_EU
const L1MuDTAssignmentUnit * AU(int id) const
return pointer to Assignment Unit, index [0,1]
std::array< L1MuDTTrack, 2 > m_TracKCands
bool ovl() const
is it an overlap region Sector Processor?
L1MuDTSectorProcessor(const L1MuDTTrackFinder &, const L1MuDTSecProcId &, edm::ConsumesCollector)
constructor
L1MuDTDataBuffer * data()
bool anyTrack() const
are there any non-empty muon candidates?
virtual void run(int bx, const edm::Event &e, const edm::EventSetup &c)
run the Sector Processor
L1MuDTTrack * track(int id)
L1MuDTSectorReceiver m_SectorReceiver
const L1MuDTTrackAssembler * TA() const
return pointer to Track Assembler
const L1MuDTTrackFinder & m_tf
bool brl() const
is it a barrel-only Sector Processor?
void print() const
print muon candidates found by the Sector Processor
const L1MuDTTrack * track(int id) const
return pointer to muon candidate, index [0,1]
virtual ~L1MuDTSectorProcessor()
destructor