CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/Geometry/TrackerGeometryBuilder/interface/PlaneBuilderForGluedDet.h

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