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 }