20 : trackerTopology_(trackerTopology),
21 alignableObjectId_(trackerGeometry, nullptr, nullptr, nullptr),
22 alignableIndexer_(alignableIndexer) {}
36 std::ostringstream
ss;
39 unsigned int numCompositeAlignables = 0;
44 ss <<
"built " << numCompositeAlignables <<
" CompositeAlignables for " 46 edm::LogInfo(
"AlignableBuildProcess") <<
"@SUB=AlignableCompositeBuilder::buildAll" <<
ss.str();
48 return numCompositeAlignables;
58 std::ostringstream&
ss,
60 unsigned int childLevel = parentLevel - 1;
85 throw cms::Exception(
"LogicError") <<
"@SUB=AlignableCompositeBuilder::buildLevel\n" 86 <<
"trying to update a non-existing AlignableComposite";
101 throw cms::Exception(
"LogicError") <<
"@SUB=AlignableCompositeBuilder::buildLevel\n" 102 <<
"trying to update a flat composite that is not of type " 103 <<
"AlignableComposite";
105 if (mother->id() ==
child->id()) {
106 mother->update(
child->id(), parentType,
child->globalRotation());
117 <<
"(s) (theoretical maximum: " << maxNumParents <<
") consisting of " <<
children.size() <<
" " 143 return indexOf(
id) - 1;
TkRotation< Scalar > RotationType
align::Alignables & get(const std::string &name="")
AlignableCompositeBuilder(const TrackerTopology *, const TrackerGeometry *, const AlignableIndexer &)
align::AlignmentLevels alignmentLevels_
const AlignableObjectId alignableObjectId_
align::Alignables & find(const std::string &name="")
Log< level::Info, false > LogInfo
void clearAlignmentLevels()
Resets the alignment-levels.
const char * idToString(align::StructureType type) const
virtual align::Counter get(align::StructureType, const AlignableObjectId &) const
Get a counter based on its structure type.
std::vector< Alignable * > Alignables
unsigned int buildLevel(unsigned int parentLevel, AlignableMap &, std::ostringstream &, bool update=false)
Builds the components for a given level in the hierarchy.
unsigned int getIndexOfStructure(align::ID, unsigned int level) const
unsigned int maxNumComponents(unsigned int startLevel) const
unsigned int buildAll(AlignableMap &, bool update=false)
AlignableIndexer alignableIndexer_
void addAlignmentLevel(std::unique_ptr< AlignmentLevel > level)