221 constexpr
bool same(
char const *
x,
char const *
y) {
return !*
x && !*
y ?
true : (*
x == *
y && same(
x + 1,
y + 1)); }
224 return !entries->
name ? nullptr : entries->
type ==
type ? entries->
name : objectIdToString(
type, entries + 1);
230 : stringToObjectId(
name, entries + 1);
254 throw cms::Exception(
"LogicError") <<
"@SUB=AlignableObjectId::ctor\n" 255 <<
"trying to create AlignableObjectId with unspecified geometry";
277 throw cms::Exception(
"AlignableObjectIdError") <<
"Unknown alignableObjectId " <<
type;
287 throw cms::Exception(
"AlignableObjectIdError") <<
"Unknown alignableObjectId " <<
name;
311 throw cms::Exception(
"AlignableObjectIdError") <<
"@SUB=AlignableObjectId::trackerGeometry\n" 312 <<
"unknown version of TrackerGeometry";
331 throw cms::Exception(
"AlignableObjectIdError") <<
"@SUB=AlignableObjectId::commonGeometry\n" 332 <<
"impossible to find common geometry because the two geometries are " 333 <<
"different and none of them is 'General'";
static Geometry trackerGeometry(const TrackerGeometry *)
static Geometry commonGeometry(Geometry, Geometry)
static AlignableObjectId commonObjectIdProvider(const AlignableObjectId &, const AlignableObjectId &)
align::StructureType nameToType(const std::string &name) const
Convert name to type.
std::string typeToName(align::StructureType type) const
Convert type to name.
static Geometry muonGeometry(const DTGeometry *, const CSCGeometry *, const GEMGeometry *)
U second(std::pair< T, U > const &p)
Class Geometry Contains vector for fit parameters (mean, sigma, etc.) obtained from multiple IOVs See...
AlignableObjectId(Geometry)
Allows conversion between type and name, and vice-versa.
align::StructureType type
const char * idToString(align::StructureType type) const
align::StructureType stringToId(const char *) const