Matching survey constraints from XML broken in dd4hep
The dd4hep framework stores the names of objects in a fundamentally different way to DetDesc. For the VELO sensors and the SciFi modules, the objects are stored with generic names (eg VELO: "ladder0", SciFi: "M4") that are repeated across multiple geometry objects, making it impossible to set individual conditions (surveypars) using the name alone. For example below, both "T3/X1/HL0/Q0/M4" and "T3/X1/HL0/Q0/M4" modules are looking for a condition called "M4".
ToolSvc.updateTool.AlignChisqCon... ERROR Cannot find condition "M4" for alignable FT/T3/X1/HL0/Q0/M4 in survey dictionary.
ToolSvc.updateTool.AlignChisqCon... WARNING Haven't been able to construct survey for FT/T3/X1/HL0/Q0/M4
ToolSvc.updateTool.AlignChisqCon... ERROR Cannot find condition "M4" for alignable FT/T3/X1/HL0/Q2/M4 in survey dictionary.
ToolSvc.updateTool.AlignChisqCon... WARNING Haven't been able to construct survey for FT/T3/X1/HL0/Q0/M4
In AlignChisqConstraintTool, the survey condition names are set using https://gitlab.cern.ch/lhcb/Alignment/-/blob/master/Alignment/AlignKernel/include/AlignKernel/DetectorElement.h#L100
const std::string alignmentConditionName() const { return m_data.detector().name(); }
Is there something else we can call to access a more "full" name for the objects to match them with survey? We know the objects can be matched to their alignment conditions in yaml which have names like T3X1HL0Q0M4.