Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:22

0001 #include "SimG4Core/Geometry/interface/DD4hep2DDDName.h"
0002 
0003 std::string DD4hep2DDDName::noNameSpace(const std::string& name) {
0004   std::size_t found = name.find(':');
0005   std::string nam = (found == std::string::npos) ? name : name.substr(found + 1, (name.size() - found));
0006   return nam;
0007 }
0008 
0009 std::string DD4hep2DDDName::nameMatterLV(const std::string& name, bool dd4hep) {
0010   return (dd4hep ? (DD4hep2DDDName::noNameSpace(name)) : name);
0011 }
0012 
0013 std::string DD4hep2DDDName::nameSolid(const std::string& name, bool dd4hep) {
0014   if (!dd4hep)
0015     return name;
0016   std::string nam = DD4hep2DDDName::noNameSpace(name);
0017   auto n = nam.find("_shape");
0018   if (n != std::string::npos)
0019     nam = nam.substr(0, n);
0020   if (name.find("_refl") != std::string::npos)
0021     nam += "_refl";
0022   return nam;
0023 }
0024 
0025 std::string DD4hep2DDDName::namePV(const std::string& name, bool dd4hep) {
0026   if (!dd4hep)
0027     return name;
0028   std::string nam = DD4hep2DDDName::noNameSpace(name);
0029   auto n = nam.rfind('_');
0030   return ((n != std::string::npos) ? nam.substr(0, n) : nam);
0031 }