CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/RecoTracker/TkDetLayers/src/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 "TIDRing.h"
00007 
00008 
00013 #pragma GCC visibility push(hidden)
00014 class TIDLayer GCC11_FINAL : public RingedForwardLayer, public GeometricSearchDetWithGroups {
00015  public:
00016   TIDLayer(std::vector<const TIDRing*>& rings);
00017   ~TIDLayer();
00018   
00019   // GeometricSearchDet interface
00020   
00021   virtual const std::vector<const GeomDet*>& basicComponents() const {return theBasicComps;}
00022   
00023   virtual const std::vector<const GeometricSearchDet*>& components() const {return theComps;}
00024 
00025   void groupedCompatibleDetsV( const TrajectoryStateOnSurface& tsos,
00026                                const Propagator& prop,
00027                                const MeasurementEstimator& est,
00028                                std::vector<DetGroup> & result) const;
00029 
00030   // DetLayer interface
00031   virtual SubDetector subDetector() const {return GeomDetEnumerators::TID;}
00032 
00033 
00034  private:
00035   // private methods for the implementation of groupedCompatibleDets()
00036   virtual BoundDisk* computeDisk( const std::vector<const TIDRing*>& rings) const;
00037 
00038   virtual std::vector<int> ringIndicesByCrossingProximity(const TrajectoryStateOnSurface& startingState,
00039                                                           const Propagator& prop ) const;
00040 
00041  protected:  
00042   //  bool isCompatible( const TrajectoryStateOnSurface& ms,
00043   //         const MeasurementEstimator& est) const;
00044 
00045   int findClosest( const GlobalPoint[3] ) const;
00046   
00047   int findNextIndex( const GlobalPoint[3] , int ) const;
00048   
00049   bool overlapInR( const TrajectoryStateOnSurface& tsos, int i, double ymax) const;
00050   
00051   
00052   float computeWindowSize( const GeomDet* det, 
00053                            const TrajectoryStateOnSurface& tsos, 
00054                            const MeasurementEstimator& est) const;
00055   
00056   static void
00057   orderAndMergeLevels(const TrajectoryStateOnSurface& tsos,
00058                       const Propagator& prop,
00059                       const std::vector<std::vector<DetGroup> > & groups,
00060                       const std::vector<int> & indices,
00061                       std::vector<DetGroup> & result );
00062 
00063 
00064  protected:
00065   std::vector<const GeometricSearchDet*> theComps;
00066   std::vector<const GeomDet*> theBasicComps;
00067   
00068 };
00069 
00070 
00071 #pragma GCC visibility pop
00072 #endif