Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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