Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:14:27

0001 #ifndef DTGeometryBuilder_DTGeometryBuilderFromDD4hep_h
0002 #define DTGeometryBuilder_DTGeometryBuilderFromDD4hep_h
0003 // -*- C++ -*-
0004 //
0005 // Package:    Gemetry/DTGeometryBuilder
0006 // Class:      DTGeometryBuilderFromDD4hep
0007 //
0008 /**\class DTGeometryBuilderFromDD4hep
0009 
0010  Description: DT Geometry builder from DD4hep
0011 
0012  Implementation:
0013      DT Geometry Builder iterates over a Detector Tree and
0014      retrvieves DT chambers, super layers, layers and wires.
0015 */
0016 //
0017 // Original Author:  Ianna Osborne
0018 //         Created:  Wed, 16 Jan 2019 10:19:37 GMT
0019 //         Modified by Sergio Lo Meo (sergio.lo.meo@cern.ch) Mon, 31 August 2020
0020 //
0021 //
0022 
0023 #include "DataFormats/GeometrySurface/interface/ReferenceCounted.h"
0024 #include "DataFormats/GeometrySurface/interface/Plane.h"
0025 #include "DetectorDescription/DDCMS/interface/DDDetector.h"
0026 #include "DetectorDescription/DDCMS/interface/DDFilteredView.h"
0027 #include "Geometry/MuonNumbering/interface/DTNumberingScheme.h"
0028 
0029 #include <DD4hep/SpecParRegistry.h>
0030 
0031 namespace dd4hep {
0032   class Detector;
0033 }
0034 
0035 class DTGeometry;
0036 class DTChamber;
0037 class DTSuperLayer;
0038 class DTLayer;
0039 class MuonGeometryConstants;
0040 class MuonGeometryNumbering;
0041 
0042 class DTGeometryBuilderFromDD4hep {
0043 public:
0044   DTGeometryBuilderFromDD4hep() {}
0045 
0046   void build(DTGeometry&, const cms::DDDetector*, const MuonGeometryConstants&, const dd4hep::SpecParRefs&);
0047 
0048 private:
0049   void buildGeometry(cms::DDFilteredView&, DTGeometry&, const MuonGeometryConstants&) const;
0050 
0051   DTChamber* buildChamber(cms::DDFilteredView&, const MuonGeometryConstants&) const;
0052 
0053   DTSuperLayer* buildSuperLayer(cms::DDFilteredView&, DTChamber*, const MuonGeometryConstants&) const;
0054 
0055   DTLayer* buildLayer(cms::DDFilteredView&, DTSuperLayer*, const MuonGeometryConstants&) const;
0056 
0057   using RCPPlane = ReferenceCountingPointer<Plane>;
0058 
0059   RCPPlane plane(const cms::DDFilteredView&, Bounds* bounds) const;
0060 };
0061 
0062 #endif