![]() |
|
|||
File indexing completed on 2024-04-06 12:20:52
0001 //------------------------------------------------- 0002 // 0003 /** \class L1MuBMWedgeSorter 0004 * 0005 * Wedge Sorter: 0006 * 0007 * A Wedge Sorter receives 2 muon candidates 0008 * from each of the 6 Sector Processors of a 0009 * wedge and forwards the 2 highest rank 0010 * candidates per wedge to the BM Muon Sorter 0011 * 0012 * 0013 * 0014 * N. Neumeister CERN EP 0015 */ 0016 // 0017 //-------------------------------------------------- 0018 #ifndef L1MUBM_WEDGE_SORTER_H 0019 #define L1MUBM_WEDGE_SORTER_H 0020 0021 //--------------- 0022 // C++ Headers -- 0023 //--------------- 0024 0025 #include <vector> 0026 0027 //---------------------- 0028 // Base Class Headers -- 0029 //---------------------- 0030 0031 //------------------------------------ 0032 // Collaborating Class Declarations -- 0033 //------------------------------------ 0034 0035 class L1MuBMTrackFinder; 0036 class L1MuBMTrack; 0037 class L1MuBMSecProcId; 0038 0039 // --------------------- 0040 // -- Class Interface -- 0041 // --------------------- 0042 0043 class L1MuBMWedgeSorter { 0044 public: 0045 /// constructor 0046 L1MuBMWedgeSorter(const L1MuBMTrackFinder&, int id); 0047 0048 /// destructor 0049 ~L1MuBMWedgeSorter(); 0050 0051 /// return Wedge Sorter identifier (0-11) 0052 inline int id() const { return m_wsid; } 0053 0054 /// run Wedge Sorter 0055 void run(); 0056 0057 /// reset Wedge Sorter 0058 void reset(); 0059 0060 /// print results after sorting 0061 void print() const; 0062 0063 /// return vector of muon candidates 0064 inline const std::vector<const L1MuBMTrack*>& tracks() const { return m_TrackCands; } 0065 0066 /// return number of muon candidates 0067 inline bool anyMuonCands() const { return anyTrack(); } 0068 0069 private: 0070 /// run the Cancel Out Logic of the wedge sorter 0071 void runCOL(std::vector<L1MuBMTrack*>&) const; 0072 0073 /// are there any non-empty muon candidates in the Wedge Sorter? 0074 bool anyTrack() const; 0075 0076 /// find out if two Sector Processors are neighbours in the same wedge 0077 static bool neighbour(const L1MuBMSecProcId& spid1, const L1MuBMSecProcId& spid2); 0078 0079 private: 0080 const L1MuBMTrackFinder& m_tf; 0081 int m_wsid; 0082 0083 std::vector<const L1MuBMTrack*> m_TrackCands; 0084 }; 0085 0086 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |