00001
00002
00021
00022
00023 #ifndef L1MUDT_EXTRAPOLATION_UNIT_H
00024 #define L1MUDT_EXTRAPOLATION_UNIT_H
00025
00026
00027
00028
00029
00030 #include <utility>
00031 #include <map>
00032 #include <bitset>
00033
00034
00035
00036
00037
00038 #include "L1Trigger/DTTrackFinder/interface/L1AbstractProcessor.h"
00039
00040
00041
00042
00043
00044 #include "CondFormats/L1TObjects/interface/L1MuDTExtParam.h"
00045 class L1MuDTSectorProcessor;
00046 class L1MuDTSEU;
00047
00048
00049
00050
00051
00052 class L1MuDTExtrapolationUnit : public L1AbstractProcessor {
00053
00054 public:
00055
00056 typedef std::pair<Extrapolation, unsigned int> SEUId;
00057 typedef std::map<SEUId, L1MuDTSEU*, std::less<SEUId> > SEUmap;
00058
00060 L1MuDTExtrapolationUnit(const L1MuDTSectorProcessor& );
00061
00063 virtual ~L1MuDTExtrapolationUnit();
00064
00066 virtual void run(const edm::EventSetup& c);
00067
00069 virtual void reset();
00070
00072 void reset(Extrapolation ext, unsigned int startAdr, unsigned int relAdr );
00073
00075 unsigned short int getAddress(Extrapolation ext, unsigned int startAdr, int id) const;
00076
00078 unsigned short int getQuality(Extrapolation ext, unsigned int startAdr, int id) const;
00079
00081 const std::bitset<12>& getEXTable(Extrapolation ext, unsigned int startAdr) const;
00082
00084 const std::bitset<12>& getQSTable(Extrapolation ext, unsigned int startAdr) const;
00085
00087 int numberOfExt() const;
00088
00090 void print(int level=0) const;
00091
00093 static std::pair<int,int> which_ext(Extrapolation ext);
00094
00095 private:
00096
00097 const L1MuDTSectorProcessor& m_sp;
00098
00099 mutable SEUmap m_SEUs;
00100
00101 };
00102
00103 #endif