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