Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef Geometry_GEMGeometry_ME0GeometryParsFromDD_H
0002 #define Geometry_GEMGeometry_ME0GeometryParsFromDD_H
0003 
0004 /* Implementation of the  ME0GeometryParsFromDD Class
0005  *  Build the ME0Geometry from the DDD and DD4hep description
0006  *  
0007  *  DD4hep part added to the original old file (DD version) made by M. Maggi (INFN Bari)
0008  *  Author:  Sergio Lo Meo (sergio.lo.meo@cern.ch) 
0009  *  Created:  Thu, 25 Feb 2021 
0010  *
0011  */
0012 
0013 #include <vector>
0014 
0015 class DDCompactView;
0016 class DDFilteredView;
0017 namespace cms {  // DD4hep
0018   class DDFilteredView;
0019   class DDCompactView;
0020 }  // namespace cms
0021 class MuonGeometryConstants;
0022 class RecoIdealGeometry;
0023 class ME0DetId;
0024 
0025 class ME0GeometryParsFromDD {
0026 public:
0027   ME0GeometryParsFromDD(void) {}
0028 
0029   ~ME0GeometryParsFromDD(void) {}
0030   // DD
0031   void build(const DDCompactView*, const MuonGeometryConstants&, RecoIdealGeometry&);
0032   // DD4hep
0033   void build(const cms::DDCompactView*, const MuonGeometryConstants&, RecoIdealGeometry&);
0034 
0035 private:
0036   // DD
0037   void buildGeometry(DDFilteredView&, const MuonGeometryConstants&, RecoIdealGeometry&);
0038 
0039   void buildChamber(DDFilteredView& fv, ME0DetId detId, RecoIdealGeometry& rgeo);
0040   void buildLayer(DDFilteredView& fv, ME0DetId detId, RecoIdealGeometry& rgeo);
0041   void buildEtaPartition(DDFilteredView& fv, ME0DetId detId, RecoIdealGeometry& rgeo);
0042 
0043   std::vector<double> getDimension(DDFilteredView& fv);
0044   std::vector<double> getTranslation(DDFilteredView& fv);
0045   std::vector<double> getRotation(DDFilteredView& fv);
0046 
0047   //DD4hep
0048 
0049   void buildGeometry(cms::DDFilteredView&, const MuonGeometryConstants&, RecoIdealGeometry&);
0050 
0051   void buildChamber(cms::DDFilteredView& fv, ME0DetId detId, RecoIdealGeometry& rgeo);
0052   void buildLayer(cms::DDFilteredView& fv, ME0DetId detId, RecoIdealGeometry& rgeo);
0053   void buildEtaPartition(cms::DDFilteredView& fv, ME0DetId detId, RecoIdealGeometry& rgeo);
0054 
0055   std::vector<double> getDimension(cms::DDFilteredView& fv);
0056   std::vector<double> getTranslation(cms::DDFilteredView& fv);
0057   std::vector<double> getRotation(cms::DDFilteredView& fv);
0058 };
0059 #endif