Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:31:31

0001 #ifndef DetLayers_RodPlaneBuilderFromDet_H
0002 #define DetLayers_RodPlaneBuilderFromDet_H
0003 
0004 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0005 #include "DataFormats/GeometrySurface/interface/Plane.h"
0006 
0007 #include <utility>
0008 #include <vector>
0009 
0010 class RectangularPlaneBounds;
0011 
0012 /** Builds the minimal rectangular box that contains all input Dets fully.
0013  */
0014 
0015 class RodPlaneBuilderFromDet {
0016 public:
0017   typedef GeomDet Det;
0018 
0019   /// Warning, remember to assign this pointer to a ReferenceCountingPointer!
0020   /// Should be changed to return a ReferenceCountingPointer<Plane>
0021   Plane* operator()(const std::vector<const Det*>& dets) const;
0022 
0023   std::pair<RectangularPlaneBounds*, GlobalVector> computeBounds(const std::vector<const Det*>& dets,
0024                                                                  const Plane& plane) const;
0025 
0026   Surface::RotationType computeRotation(const std::vector<const Det*>& dets,
0027                                         const Surface::PositionType& meanPos) const;
0028 };
0029 
0030 #endif