Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:27:43

0001 #ifndef RecoTracker_TkDetLayers_ForwardDiskSectorBuilderFromDet_h
0002 #define RecoTracker_TkDetLayers_ForwardDiskSectorBuilderFromDet_h
0003 
0004 #include "DataFormats/GeometrySurface/interface/BoundDiskSector.h"
0005 #include "DataFormats/GeometrySurface/interface/DiskSectorBounds.h"
0006 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0007 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0008 #include <utility>
0009 #include <vector>
0010 #include <iostream>
0011 
0012 /** As it's name indicates, it's a builder of a BoundDiskSector from a collection of
0013  *  Dets. The disk sector has the minimal size fully containing all Dets.
0014  */
0015 
0016 #pragma GCC visibility push(hidden)
0017 class ForwardDiskSectorBuilderFromDet {
0018 public:
0019   /// Warning, remember to assign this pointer to a ReferenceCountingPointer!
0020   /// Should be changed to return a ReferenceCountingPointer<BoundDisk>
0021   BoundDiskSector* operator()(const std::vector<const GeomDet*>& dets) const;
0022 
0023   std::pair<DiskSectorBounds*, GlobalVector> computeBounds(const std::vector<const GeomDet*>& dets) const;
0024 
0025 private:
0026   Surface::RotationType computeRotation(const std::vector<const GeomDet*>& dets, Surface::PositionType pos) const;
0027 
0028   std::vector<GlobalPoint> computeTrapezoidalCorners(const GeomDet* detu) const;
0029 };
0030 
0031 #pragma GCC visibility pop
0032 #endif