CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/RecoTracker/TkDetLayers/interface/TIDLayer.h

Go to the documentation of this file.
00001 #ifndef TkDetLayers_TIDLayer_h
00002 #define TkDetLayers_TIDLayer_h
00003 
00004 
00005 #include "TrackingTools/DetLayers/interface/RingedForwardLayer.h"
00006 #include "RecoTracker/TkDetLayers/interface/TIDRing.h"
00007 
00008 
00013 class TIDLayer : public RingedForwardLayer, public GeometricSearchDetWithGroups {
00014  public:
00015   TIDLayer(std::vector<const TIDRing*>& rings);
00016   ~TIDLayer();
00017   
00018   // GeometricSearchDet interface
00019   
00020   virtual const std::vector<const GeomDet*>& basicComponents() const {return theBasicComps;}
00021   
00022   virtual const std::vector<const GeometricSearchDet*>& components() const {return theComps;}
00023 
00024   void groupedCompatibleDetsV( const TrajectoryStateOnSurface& tsos,
00025                                const Propagator& prop,
00026                                const MeasurementEstimator& est,
00027                                std::vector<DetGroup> & result) const;
00028 
00029   // DetLayer interface
00030   virtual SubDetector subDetector() const {return GeomDetEnumerators::TID;}
00031 
00032 
00033  private:
00034   // private methods for the implementation of groupedCompatibleDets()
00035   virtual BoundDisk* computeDisk( const std::vector<const TIDRing*>& rings) const;
00036 
00037   virtual std::vector<int> ringIndicesByCrossingProximity(const TrajectoryStateOnSurface& startingState,
00038                                                           const Propagator& prop ) const;
00039 
00040  protected:  
00041   //  bool isCompatible( const TrajectoryStateOnSurface& ms,
00042   //         const MeasurementEstimator& est) const;
00043 
00044   int findClosest( const GlobalPoint[3] ) const;
00045   
00046   int findNextIndex( const GlobalPoint[3] , int ) const;
00047   
00048   bool overlapInR( const TrajectoryStateOnSurface& tsos, int i, double ymax) const;
00049   
00050   
00051   float computeWindowSize( const GeomDet* det, 
00052                            const TrajectoryStateOnSurface& tsos, 
00053                            const MeasurementEstimator& est) const;
00054   
00055   static void
00056   orderAndMergeLevels(const TrajectoryStateOnSurface& tsos,
00057                       const Propagator& prop,
00058                       const std::vector<std::vector<DetGroup> > & groups,
00059                       const std::vector<int> & indices,
00060                       std::vector<DetGroup> & result );
00061 
00062 
00063  protected:
00064   std::vector<const GeometricSearchDet*> theComps;
00065   std::vector<const GeomDet*> theBasicComps;
00066   
00067 };
00068 
00069 
00070 #endif