CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/L1Trigger/DTTrackFinder/src/L1MuDTSectorProcessor.h

Go to the documentation of this file.
00001 //-------------------------------------------------
00002 //
00020 //
00021 //--------------------------------------------------
00022 #ifndef L1MUDT_SECTOR_PROCESSOR_H
00023 #define L1MUDT_SECTOR_PROCESSOR_H
00024 
00025 //---------------
00026 // C++ Headers --
00027 //---------------
00028 
00029 #include <vector>
00030 
00031 //----------------------
00032 // Base Class Headers --
00033 //----------------------
00034 
00035 #include "L1Trigger/DTTrackFinder/src/L1MuDTSecProcId.h"
00036 
00037 //------------------------------------
00038 // Collaborating Class Declarations --
00039 //------------------------------------
00040 
00041 #include <FWCore/Framework/interface/Event.h>
00042 class L1MuDTSectorReceiver;
00043 class L1MuDTDataBuffer;
00044 class L1MuDTExtrapolationUnit;
00045 class L1MuDTTrackAssembler;
00046 class L1MuDTAssignmentUnit;
00047 class L1MuDTTrackFinder;
00048 class L1MuDTTrack;
00049 
00050 //              ---------------------
00051 //              -- Class Interface --
00052 //              ---------------------
00053 
00054 class L1MuDTSectorProcessor {
00055 
00056   public:
00057 
00059     L1MuDTSectorProcessor(const L1MuDTTrackFinder&, const L1MuDTSecProcId& );
00060 
00062     virtual ~L1MuDTSectorProcessor();
00063 
00065     virtual void run(int bx, const edm::Event& e, const edm::EventSetup& c);
00066 
00068     virtual void reset();
00069 
00071     void print() const;
00072 
00074     const L1MuDTSectorProcessor* neighbour() const;
00075     
00077     inline const L1MuDTSecProcId& id() const { return m_spid; }
00078     
00080     inline const L1MuDTTrackFinder& tf() const { return m_tf; }
00081 
00083     inline bool brl() const { return !m_spid.ovl(); }
00084 
00086     inline bool ovl() const { return m_spid.ovl(); }
00087 
00089     inline const L1MuDTDataBuffer* data() const { return m_DataBuffer; }
00090     inline L1MuDTDataBuffer* data() { return m_DataBuffer; }
00091     
00093     inline const L1MuDTExtrapolationUnit* EU() const { return m_EU; }
00094 
00096     inline const L1MuDTTrackAssembler* TA() const { return m_TA; }
00097 
00099     inline const L1MuDTAssignmentUnit* AU(int id) const { return m_AUs[id]; }
00100 
00102     inline L1MuDTTrack* track(int id) const { return m_TrackCands[id]; }
00103 
00105     inline L1MuDTTrack* tracK(int id) const { return m_TracKCands[id]; }
00106     
00107   private:
00108 
00110     bool anyTrack() const;
00111 
00112   private:
00113 
00114     const L1MuDTTrackFinder&            m_tf;
00115     L1MuDTSecProcId                     m_spid;
00116 
00117     L1MuDTSectorReceiver*               m_SectorReceiver;
00118     L1MuDTDataBuffer*                   m_DataBuffer;
00119     L1MuDTExtrapolationUnit*            m_EU;
00120     L1MuDTTrackAssembler*               m_TA;
00121     std::vector<L1MuDTAssignmentUnit*>  m_AUs;
00122 
00123     std::vector<L1MuDTTrack*>           m_TrackCands;
00124     std::vector<L1MuDTTrack*>           m_TracKCands;
00125  
00126 };
00127 
00128 #endif