00001 //------------------------------------------------- 00002 // 00020 // 00021 //-------------------------------------------------- 00022 #ifndef L1MUDT_SECTOR_PROCESSOR_H 00023 #define L1MUDT_SECTOR_PROCESSOR_H 00024 00025 //--------------- 00026 // C++ Headers -- 00027 //--------------- 00028 00029 #include <vector> 00030 00031 //---------------------- 00032 // Base Class Headers -- 00033 //---------------------- 00034 00035 #include "L1Trigger/DTTrackFinder/src/L1MuDTSecProcId.h" 00036 00037 //------------------------------------ 00038 // Collaborating Class Declarations -- 00039 //------------------------------------ 00040 00041 #include <FWCore/Framework/interface/Event.h> 00042 class L1MuDTSectorReceiver; 00043 class L1MuDTDataBuffer; 00044 class L1MuDTExtrapolationUnit; 00045 class L1MuDTTrackAssembler; 00046 class L1MuDTAssignmentUnit; 00047 class L1MuDTTrackFinder; 00048 class L1MuDTTrack; 00049 00050 // --------------------- 00051 // -- Class Interface -- 00052 // --------------------- 00053 00054 class L1MuDTSectorProcessor { 00055 00056 public: 00057 00059 L1MuDTSectorProcessor(const L1MuDTTrackFinder&, const L1MuDTSecProcId& ); 00060 00062 virtual ~L1MuDTSectorProcessor(); 00063 00065 virtual void run(int bx, const edm::Event& e, const edm::EventSetup& c); 00066 00068 virtual void reset(); 00069 00071 void print() const; 00072 00074 const L1MuDTSectorProcessor* neighbour() const; 00075 00077 inline const L1MuDTSecProcId& id() const { return m_spid; } 00078 00080 inline const L1MuDTTrackFinder& tf() const { return m_tf; } 00081 00083 inline bool brl() const { return !m_spid.ovl(); } 00084 00086 inline bool ovl() const { return m_spid.ovl(); } 00087 00089 inline const L1MuDTDataBuffer* data() const { return m_DataBuffer; } 00090 inline L1MuDTDataBuffer* data() { return m_DataBuffer; } 00091 00093 inline const L1MuDTExtrapolationUnit* EU() const { return m_EU; } 00094 00096 inline const L1MuDTTrackAssembler* TA() const { return m_TA; } 00097 00099 inline const L1MuDTAssignmentUnit* AU(int id) const { return m_AUs[id]; } 00100 00102 inline L1MuDTTrack* track(int id) const { return m_TrackCands[id]; } 00103 00105 inline L1MuDTTrack* tracK(int id) const { return m_TracKCands[id]; } 00106 00107 private: 00108 00110 bool anyTrack() const; 00111 00112 private: 00113 00114 const L1MuDTTrackFinder& m_tf; 00115 L1MuDTSecProcId m_spid; 00116 00117 L1MuDTSectorReceiver* m_SectorReceiver; 00118 L1MuDTDataBuffer* m_DataBuffer; 00119 L1MuDTExtrapolationUnit* m_EU; 00120 L1MuDTTrackAssembler* m_TA; 00121 std::vector<L1MuDTAssignmentUnit*> m_AUs; 00122 00123 std::vector<L1MuDTTrack*> m_TrackCands; 00124 std::vector<L1MuDTTrack*> m_TracKCands; 00125 00126 }; 00127 00128 #endif