File indexing completed on 2023-03-17 11:05:23
0001 #ifndef Geometry_TrackerGeometryBuilder_PlaneBuilderForGluedDet_H
0002 #define Geometry_TrackerGeometryBuilder_PlaneBuilderForGluedDet_H
0003
0004 #include "DataFormats/GeometrySurface/interface/Plane.h"
0005 #include "DataFormats/GeometrySurface/interface/ReferenceCounted.h"
0006 #include "DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h"
0007 #include "DataFormats/GeometrySurface/interface/TrapezoidalPlaneBounds.h"
0008 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0009 #include <utility>
0010 #include <vector>
0011
0012
0013
0014
0015 class PlaneBuilderForGluedDet {
0016 public:
0017
0018
0019 typedef ReferenceCountingPointer<Plane> ResultType;
0020
0021 ResultType plane(const std::vector<const GeomDetUnit*>& dets) const;
0022
0023 private:
0024 std::pair<RectangularPlaneBounds*, GlobalVector> computeRectBounds(const std::vector<const GeomDetUnit*>& dets,
0025 const Plane& plane) const;
0026
0027 Surface::RotationType computeRotation(const std::vector<const GeomDetUnit*>& dets,
0028 const Surface::PositionType& meanPos) const;
0029 };
0030
0031 #endif