CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_1/src/L1Trigger/DTTrackFinder/src/L1MuDTExtrapolationUnit.h

Go to the documentation of this file.
00001 //-------------------------------------------------
00002 //
00021 //
00022 //--------------------------------------------------
00023 #ifndef L1MUDT_EXTRAPOLATION_UNIT_H
00024 #define L1MUDT_EXTRAPOLATION_UNIT_H
00025 
00026 //---------------
00027 // C++ Headers --
00028 //---------------
00029 
00030 #include <utility>
00031 #include <map>
00032 #include <bitset>
00033 
00034 //----------------------
00035 // Base Class Headers --
00036 //----------------------
00037 
00038 #include "L1Trigger/DTTrackFinder/interface/L1AbstractProcessor.h"
00039 
00040 //------------------------------------
00041 // Collaborating Class Declarations --
00042 //------------------------------------
00043 
00044 #include "CondFormats/L1TObjects/interface/L1MuDTExtParam.h"
00045 #include <FWCore/Framework/interface/ESHandle.h>
00046 class L1MuDTSectorProcessor;
00047 class L1MuDTSEU;
00048 class L1MuDTTFParameters;
00049 
00050 //              ---------------------
00051 //              -- Class Interface --
00052 //              ---------------------
00053 
00054 class L1MuDTExtrapolationUnit : public L1AbstractProcessor {
00055 
00056   public:
00057 
00058     typedef std::pair<Extrapolation, unsigned int> SEUId;
00059     typedef std::map<SEUId, L1MuDTSEU*, std::less<SEUId> > SEUmap;
00060 
00062     L1MuDTExtrapolationUnit(const L1MuDTSectorProcessor& );
00063 
00065     virtual ~L1MuDTExtrapolationUnit();
00066 
00068     virtual void run(const edm::EventSetup& c);
00069     
00071     virtual void reset();
00072 
00074     void reset(Extrapolation ext, unsigned int startAdr, unsigned int relAdr );
00075  
00077     unsigned short int getAddress(Extrapolation ext, unsigned int startAdr, int id) const;
00078     
00080     unsigned short int getQuality(Extrapolation ext, unsigned int startAdr, int id) const;
00081 
00083     const std::bitset<12>& getEXTable(Extrapolation ext, unsigned int startAdr) const;
00084 
00086     const std::bitset<12>& getQSTable(Extrapolation ext, unsigned int startAdr) const;
00087         
00089     int numberOfExt() const;
00090     
00092     void print(int level=0) const;
00093     
00095     static std::pair<int,int> which_ext(Extrapolation ext);
00096 
00097   private:
00098 
00099     const L1MuDTSectorProcessor& m_sp;   // reference to Sector Processor
00100 
00101     mutable SEUmap m_SEUs;               // Single Extrapolation Units
00102 
00103     edm::ESHandle< L1MuDTTFParameters > pars;
00104  
00105 };
00106 
00107 #endif