|
||||
File indexing completed on 2024-04-06 12:15:26
0001 #ifndef Geometry_TrackerGeometryBuilder_StripGeomDetUnit_H 0002 #define Geometry_TrackerGeometryBuilder_StripGeomDetUnit_H 0003 0004 #include "Geometry/CommonDetUnit/interface/TrackerGeomDet.h" 0005 #include "DataFormats/DetId/interface/DetId.h" 0006 #include "Geometry/TrackerGeometryBuilder/interface/ProxyStripTopology.h" 0007 0008 class StripGeomDetType; 0009 class StripTopology; 0010 class SurfaceDeformation; 0011 /** 0012 * StripGeomDetUnit is the abstract class for SiStripGeomDetUnit. 0013 */ 0014 0015 class StripGeomDetUnit final : public TrackerGeomDet { 0016 public: 0017 StripGeomDetUnit(BoundPlane* sp, StripGeomDetType const* type, DetId id); 0018 0019 // Det interface 0020 0021 /// NOTE (A.M.): The actual pointer to StripGeomDetType is now a member of the 0022 /// proxy topology. As StripGeomDetType 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 strip proxy topology 0030 const Topology& topology() const override; 0031 0032 /// NOTE (A.M.): The actual pointer to StripGeomDetType is now a member of the 0033 /// proxy topology. As StripGeomDetType 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 StripGeomDetType const& specificType() const; 0039 0040 /// Returns a reference to the strip proxy topology 0041 virtual const StripTopology& 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<ProxyStripTopology> theTopology; 0053 }; 0054 0055 #endif // Tracker_StripGeomDetUnit_H
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |