CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 //-------------------------------------------------
00002 //
00019 //
00020 //--------------------------------------------------
00021 #ifndef L1MUDT_ETA_PROCESSOR_H
00022 #define L1MUDT_ETA_PROCESSOR_H
00023 
00024 //---------------
00025 // C++ Headers --
00026 //---------------
00027 
00028 #include <vector>
00029 
00030 //----------------------
00031 // Base Class Headers --
00032 //----------------------
00033 
00034 //------------------------------------
00035 // Collaborating Class Declarations --
00036 //------------------------------------
00037 
00038 #include <DataFormats/Common/interface/Handle.h>
00039 #include <FWCore/Framework/interface/Event.h>
00040 #include <FWCore/Framework/interface/ESHandle.h>
00041 #include <FWCore/Framework/interface/EventSetup.h>
00042 #include "L1Trigger/DTTrackFinder/src/L1MuDTAddressArray.h"
00043 class L1MuDTTrackSegEta;
00044 class L1MuDTTrackFinder;
00045 class L1MuDTTrack;
00046 class L1MuDTEtaPatternLut;
00047 class L1MuDTQualPatternLut;
00048 class L1MuDTTFMasks;
00049 
00050 //              ---------------------
00051 //              -- Class Interface --
00052 //              ---------------------
00053 
00054 class L1MuDTEtaProcessor {
00055 
00056   public:
00057 
00059     L1MuDTEtaProcessor(const L1MuDTTrackFinder&, int id );
00060 
00062     virtual ~L1MuDTEtaProcessor();
00063 
00065     inline int id() const { return m_epid; }
00066     
00068     virtual void run(int bx, const edm::Event& e, const edm::EventSetup& c);
00069 
00071     virtual void reset();
00072 
00074     void print() const;
00075 
00077     inline const L1MuDTTrackFinder& tf() const { return m_tf; }
00078 
00080     inline int eta(int id) const { return m_eta[id]; }
00081     
00083     inline bool fineBit(int id) const { return m_fine[id]; }
00084      
00085   private:
00086     
00088     void receiveData(int bx, const edm::Event& e, const edm::EventSetup& c);
00089     
00091     void receiveAddresses();
00092     
00094     void runEtaTrackFinder(const edm::EventSetup& c);
00095     
00097     void runEtaMatchingUnit(const edm::EventSetup& c);
00098     
00100     void assign(); 
00101 
00103     static int quality(int id, int stat);     
00104 
00105   private:
00106 
00107     const L1MuDTTrackFinder&                  m_tf;
00108     int                                       m_epid;
00109 
00110     int                                       m_mask;
00111 
00112     int                                       m_eta[12];
00113     bool                                      m_fine[12];
00114     
00115     std::vector<int>                          m_foundPattern;    
00116     int                                       m_pattern[12];
00117 
00118     int                                       m_address[12];
00119     L1MuDTTrack*                              m_TrackCand[12];    
00120     L1MuDTTrack*                              m_TracKCand[12];    
00121     std::vector<const L1MuDTTrackSegEta*>     m_tseta;
00122     
00123     edm::ESHandle< L1MuDTEtaPatternLut >  theEtaPatternLUT;  // ETF look-up table
00124     edm::ESHandle< L1MuDTQualPatternLut > theQualPatternLUT; // EMU look-up tables
00125     edm::ESHandle< L1MuDTTFMasks >        msks;
00126  
00127 };
00128 
00129 #endif