Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:15:20

0001 #ifndef RPCGeometry_RPCGeometryBuilder_H
0002 #define RPCGeometry_RPCGeometryBuilder_H
0003 /*
0004 //\class RPCGeometryBuilder
0005 
0006  Description: RPC Geometry builder from DD & DD4hep
0007               DD4hep part added to the original old file (DD version) made by M. Maggi (INFN Bari)
0008 //
0009 // Author:  Sergio Lo Meo (sergio.lo.meo@cern.ch) following what Ianna Osborne made for DTs (DD4hep migration)
0010 //          Created:  Fri, 20 Sep 2019 
0011 //          Modified: Fri, 29 May 2020, following what Sunanda Banerjee made in PR #29842 PR #29943 and Ianna Osborne in PR #29954    
0012 */
0013 #include <string>
0014 #include <map>
0015 #include <list>
0016 #include <memory>
0017 #include "DataFormats/MuonDetId/interface/RPCDetId.h"
0018 
0019 class DDCompactView;
0020 class DDFilteredView;
0021 namespace cms {
0022   class DDFilteredView;
0023   class DDCompactView;
0024 }  // namespace cms
0025 class RPCGeometry;
0026 class RPCRoll;
0027 class MuonGeometryConstants;
0028 
0029 class RPCGeometryBuilder {
0030 public:
0031   RPCGeometryBuilder();
0032 
0033   // for DDD
0034   std::unique_ptr<RPCGeometry> build(const DDCompactView* cview, const MuonGeometryConstants& muonConstants);
0035   // for DD4hep
0036   std::unique_ptr<RPCGeometry> build(const cms::DDCompactView* cview, const MuonGeometryConstants& muonConstants);
0037 
0038 private:
0039   // for DDD
0040   std::unique_ptr<RPCGeometry> buildGeometry(DDFilteredView& fview, const MuonGeometryConstants& muonConstants);
0041   // for DD4hep
0042   std::unique_ptr<RPCGeometry> buildGeometry(cms::DDFilteredView& fview, const MuonGeometryConstants& muonConstants);
0043   std::map<RPCDetId, std::list<RPCRoll*> > chids;
0044 };
0045 
0046 #endif