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
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
00030 virtual SubDetector subDetector() const {return GeomDetEnumerators::TID;}
00031
00032
00033 private:
00034
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
00042
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