CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/L1Trigger/DTTrackFinder/interface/L1MuDTTrackFinder.h

Go to the documentation of this file.
00001 //-------------------------------------------------
00002 //
00020 //
00021 //--------------------------------------------------
00022 #ifndef L1MUDT_TRACK_FINDER_H 
00023 #define L1MUDT_TRACK_FINDER_H
00024 
00025 //---------------
00026 // C++ Headers --
00027 //---------------
00028 
00029 #include <vector>
00030 
00031 //----------------------
00032 // Base Class Headers --
00033 //----------------------
00034 
00035 
00036 //------------------------------------
00037 // Collaborating Class Declarations --
00038 //------------------------------------
00039 
00040 #include <FWCore/Framework/interface/Event.h>
00041 #include <FWCore/ParameterSet/interface/ParameterSet.h>
00042 class L1MuDTTFConfig;
00043 class L1MuDTSecProcMap;
00044 class L1MuDTSecProcId;
00045 class L1MuDTSectorProcessor;
00046 class L1MuDTEtaProcessor;
00047 class L1MuDTWedgeSorter;
00048 class L1MuDTMuonSorter;
00049 class L1MuDTTrackCand;
00050 class L1MuRegionalCand;
00051 
00052 //              ---------------------
00053 //              -- Class Interface --
00054 //              ---------------------
00055  
00056 
00057 class L1MuDTTrackFinder {
00058 
00059   public:
00060 
00062     typedef std::vector<L1MuRegionalCand>::const_iterator TFtracks_const_iter;
00063     typedef std::vector<L1MuRegionalCand>::iterator       TFtracks_iter;
00064 
00066     L1MuDTTrackFinder(const edm::ParameterSet & ps);
00067 
00069     virtual ~L1MuDTTrackFinder();
00070 
00072     void setup();
00073 
00075     void run(const edm::Event& e, const edm::EventSetup& c);
00076 
00078     void reset();
00079 
00081     const L1MuDTSectorProcessor* sp(const L1MuDTSecProcId&) const;
00082 
00084     inline const L1MuDTEtaProcessor* ep(int id) const { return m_epvec[id]; }
00085 
00087     inline const L1MuDTWedgeSorter* ws(int id) const { return m_wsvec[id]; }
00088 
00090     inline const L1MuDTMuonSorter* ms() const { return m_ms; }
00091 
00093     int numberOfTracks();
00094 
00095     TFtracks_const_iter begin();
00096 
00097     TFtracks_const_iter end();
00098 
00099     void clear();
00100 
00102     int numberOfTracks(int bx);
00103 
00105     static L1MuDTTFConfig* config() { return m_config; }
00106 
00107     std::vector<L1MuDTTrackCand>& getcache0() { return _cache0; }
00108 
00109     std::vector<L1MuRegionalCand>& getcache() { return _cache; }
00110 
00111   private:
00112   
00114     virtual void reconstruct(const edm::Event& e, const edm::EventSetup& c) { reset(); run(e,c); }
00115 
00116   private:
00117 
00118     std::vector<L1MuDTTrackCand>     _cache0;
00119     std::vector<L1MuRegionalCand>    _cache;
00120     L1MuDTSecProcMap*                m_spmap;        
00121     std::vector<L1MuDTEtaProcessor*> m_epvec;        
00122     std::vector<L1MuDTWedgeSorter*>  m_wsvec;        
00123     L1MuDTMuonSorter*                m_ms;           
00124 
00125     static L1MuDTTFConfig*           m_config;       
00126 
00127 };
00128 
00129 #endif