CMS 3D CMS Logo

CompositeTECWedge.h

Go to the documentation of this file.
00001 #ifndef TkDetLayers_CompositeTECWedge_h
00002 #define TkDetLayers_CompositeTECWedge_h
00003 
00004 
00005 #include "RecoTracker/TkDetLayers/interface/TECWedge.h"
00006 #include "RecoTracker/TkDetLayers/interface/SubLayerCrossings.h"
00007 
00008 
00013 class CompositeTECWedge : public TECWedge{
00014  public:
00015   CompositeTECWedge(std::vector<const GeomDet*>& innerDets,
00016                     std::vector<const GeomDet*>& outerDets);
00017 
00018   ~CompositeTECWedge();
00019   
00020   // GeometricSearchDet interface
00021   virtual const std::vector<const GeomDet*>& basicComponents() const {return theDets;}
00022 
00023   virtual const std::vector<const GeometricSearchDet*>& components() const;
00024   
00025   virtual std::pair<bool, TrajectoryStateOnSurface>
00026   compatible( const TrajectoryStateOnSurface& ts, const Propagator&, 
00027               const MeasurementEstimator&) const;
00028 
00029   virtual void
00030   groupedCompatibleDetsV( const TrajectoryStateOnSurface& startingState,
00031                          const Propagator& prop,
00032                          const MeasurementEstimator& est,
00033                          std::vector<DetGroup> & result) const;
00034 
00035  private:
00036   // private methods for the implementation of groupedCompatibleDets()
00037   SubLayerCrossings computeCrossings( const TrajectoryStateOnSurface& tsos,
00038                                       PropagationDirection propDir) const;
00039 
00040   bool addClosest( const TrajectoryStateOnSurface& tsos,
00041                    const Propagator& prop,
00042                    const MeasurementEstimator& est,
00043                    const SubLayerCrossing& crossing,
00044                    std::vector<DetGroup>& result) const;
00045   
00046   void searchNeighbors( const TrajectoryStateOnSurface& tsos,
00047                         const Propagator& prop,
00048                         const MeasurementEstimator& est,
00049                         const SubLayerCrossing& crossing,
00050                         float window, 
00051                         std::vector<DetGroup>& result,
00052                         bool checkClosest) const;
00053   
00054   int findClosestDet( const GlobalPoint& startPos,int sectorId) const;
00055 
00056   const std::vector<const GeomDet*>& subWedge( int ind) const {
00057     return (ind==0 ? theFrontDets : theBackDets);
00058   }
00059 
00060 
00061  private:
00062   std::vector<const GeomDet*> theFrontDets;
00063   std::vector<const GeomDet*> theBackDets;
00064   std::vector<const GeomDet*> theDets;
00065   
00066   ReferenceCountingPointer<BoundDiskSector>  theFrontSector;
00067   ReferenceCountingPointer<BoundDiskSector>  theBackSector;
00068   
00069 };
00070 
00071 
00072 #endif 

Generated on Tue Jun 9 17:45:46 2009 for CMSSW by  doxygen 1.5.4