|
||||
File indexing completed on 2024-04-06 12:15:15
0001 #ifndef Geometry_MTDGeometryBuilder_MTDGeomDetUnit_H 0002 #define Geometry_MTDGeometryBuilder_MTDGeomDetUnit_H 0003 0004 #include "Geometry/CommonDetUnit/interface/MTDGeomDet.h" 0005 #include "DataFormats/DetId/interface/DetId.h" 0006 #include "Geometry/MTDGeometryBuilder/interface/ProxyMTDTopology.h" 0007 0008 class MTDGeomDetType; 0009 class PixelTopology; 0010 class SurfaceDeformation; 0011 /** 0012 * The base PixelGeomDetUnit. Specialized in SiPixelGeomDetUnit. 0013 */ 0014 0015 class MTDGeomDetUnit final : public MTDGeomDet { 0016 public: 0017 MTDGeomDetUnit(BoundPlane* sp, MTDGeomDetType const* type, DetId id); 0018 0019 // DetUnit interface 0020 0021 /// NOTE (A.M.): The actual pointer to PixelGeomDetType is now a member of the 0022 /// proxy topology. As PixelGeomDetType has the actual topology as a pointer, 0023 /// it is possible to access this topology in two different ways. Once via 0024 /// the proxy topology (through topology() and specificTopology()) which includes 0025 /// corrections for the surface deformations, and once via the GeomDetType 0026 /// (through type().topology() and the like). 0027 const GeomDetType& type() const override; 0028 0029 /// Returns a reference to the pixel proxy topology 0030 const Topology& topology() const override; 0031 0032 /// NOTE (A.M.): The actual pointer to PixelGeomDetType is now a member of the 0033 /// proxy topology. As PixelGeomDetType has the actual topology as a pointer, 0034 /// it is possible to access this topology in two different ways. Once via 0035 /// the proxy topology (through topology() and specificTopology()) which includes 0036 /// corrections for the surface deformations, and once via the GeomDetType 0037 /// (through type().topology() and the like). 0038 virtual const MTDGeomDetType& specificType() const; 0039 0040 /// Returns a reference to the pixel proxy topology 0041 virtual const PixelTopology& specificTopology() const; 0042 0043 /// Return pointer to surface deformation. 0044 const SurfaceDeformation* surfaceDeformation() const override { return theTopology->surfaceDeformation(); } 0045 0046 bool isLeaf() const override { return true; } 0047 0048 private: 0049 /// set the SurfaceDeformation for this StripGeomDetUnit to proxy topology. 0050 void setSurfaceDeformation(const SurfaceDeformation* deformation) override; 0051 0052 std::unique_ptr<ProxyMTDTopology> theTopology; 0053 }; 0054 0055 #endif // MTD_MTDGeomDetUnit_H
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |