00001 //------------------------------------------------- 00002 // 00018 // 00019 //-------------------------------------------------- 00020 #ifndef L1MUDT_ASSIGNMENT_UNIT_H 00021 #define L1MUDT_ASSIGNMENT_UNIT_H 00022 00023 //--------------- 00024 // C++ Headers -- 00025 //--------------- 00026 00027 #include <vector> 00028 #include <iosfwd> 00029 00030 //---------------------- 00031 // Base Class Headers -- 00032 //---------------------- 00033 00034 #include "L1Trigger/DTTrackFinder/interface/L1AbstractProcessor.h" 00035 00036 //------------------------------------ 00037 // Collaborating Class Declarations -- 00038 //------------------------------------ 00039 00040 #include <FWCore/Framework/interface/ESHandle.h> 00041 #include "CondFormats/L1TObjects/interface/L1MuDTAssParam.h" 00042 #include "L1Trigger/DTTrackFinder/src/L1MuDTAddressArray.h" 00043 class L1MuDTPhiLut; 00044 class L1MuDTPtaLut; 00045 class L1MuDTTrackSegPhi; 00046 class L1MuDTSectorProcessor; 00047 00048 // --------------------- 00049 // -- Class Interface -- 00050 // --------------------- 00051 00052 class L1MuDTAssignmentUnit : public L1AbstractProcessor { 00053 00054 public: 00055 00057 L1MuDTAssignmentUnit(L1MuDTSectorProcessor& sp, int id ); 00058 00060 virtual ~L1MuDTAssignmentUnit(); 00061 00063 virtual void run(const edm::EventSetup& c); 00064 00066 virtual void reset(); 00067 00069 void PhiAU(const edm::EventSetup& c); 00070 00072 void PtAU(const edm::EventSetup& c); 00073 00075 void QuaAU(); 00076 00078 static void setPrecision(); 00079 00080 private: 00081 00083 void TSR(); 00084 00086 const L1MuDTTrackSegPhi* getTSphi(int station) const; 00087 00089 static int convertSector(int); 00090 00092 static int getCharge(PtAssMethod); 00093 00095 PtAssMethod getPtMethod() const; 00096 00098 int getPtAddress(PtAssMethod, int bendcharge=0) const; 00099 00101 int phiDiff(int stat1, int stat2) const; 00102 00103 private: 00104 00105 L1MuDTSectorProcessor& m_sp; 00106 int m_id; 00107 00108 L1MuDTAddressArray m_addArray; 00109 std::vector<const L1MuDTTrackSegPhi*> m_TSphi; 00110 PtAssMethod m_ptAssMethod; 00111 00112 edm::ESHandle< L1MuDTPhiLut > thePhiLUTs; 00113 edm::ESHandle< L1MuDTPtaLut > thePtaLUTs; 00114 static unsigned short nbit_phi; 00115 static unsigned short nbit_phib; 00116 00117 }; 00118 00119 #endif