CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/src/L1Trigger/DTTrackFinder/src/L1MuDTAssignmentUnit.h

Go to the documentation of this file.
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