Go to the documentation of this file.00001 #ifndef Geometry_TrackerGeometryBuilder_PlaneBuilderForGluedDet_H
00002 #define Geometry_TrackerGeometryBuilder_PlaneBuilderForGluedDet_H
00003
00004 #include "DataFormats/GeometrySurface/interface/Plane.h"
00005 #include "DataFormats/GeometrySurface/interface/ReferenceCounted.h"
00006 #include "DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h"
00007 #include "DataFormats/GeometrySurface/interface/TrapezoidalPlaneBounds.h"
00008 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h"
00009 #include <utility>
00010 #include <vector>
00011
00012
00016 class PlaneBuilderForGluedDet {
00017 public:
00018
00021 typedef ReferenceCountingPointer<Plane> ResultType;
00022
00023 ResultType plane( const std::vector<const GeomDetUnit*> & dets) const;
00024
00025 private:
00026 std::pair<RectangularPlaneBounds*, GlobalVector>
00027 computeRectBounds( const std::vector<const GeomDetUnit*> & dets, const Plane& plane) const;
00028
00029 Surface::RotationType
00030 computeRotation( const std::vector<GeomDetUnit*> & dets,
00031 const Surface::PositionType& meanPos) const;
00032
00033 };
00034
00035 #endif