11 for (
const auto&
ring : GEMRings) {
23 throw cms::Exception(
"LogicError") <<
"GEM Ring index (" <<
i <<
") out of range";
35 for (std::vector<AlignableGEMRing*>::iterator ilayer =
theGEMRings.begin(); ilayer !=
theGEMRings.end(); ilayer++)
36 zz += (*ilayer)->globalPosition().z();
46 os <<
"This GEM Station contains " <<
b.theGEMRings.size() <<
" GEM rings" << std::endl;
47 os <<
"(phi, r, z) = (" <<
b.globalPosition().phi() <<
"," <<
b.globalPosition().perp() <<
"," 48 <<
b.globalPosition().z();
49 os <<
"), orientation:" << std::endl <<
b.globalRotation() << std::endl;
55 for (std::vector<AlignableGEMRing*>::const_iterator iRing =
theGEMRings.begin(); iRing !=
theGEMRings.end(); iRing++)
Alignable * mother() const
Return pointer to container alignable (if any)
RotationType computeOrientation()
void dump(void) const override
Recursive printout of alignable structure.
AlignableGEMRing & ring(int i)
std::vector< AlignableGEMRing * > theGEMRings
void setSurface(const AlignableSurface &s)
AlignableGEMStation(const std::vector< AlignableGEMRing *> &GEMRings)
Log< level::Info, false > LogInfo
void setMother(Alignable *mother)
Assign mother to alignable.
align::RotationType RotationType
int size() const
Return number of direct components.
align::PositionType PositionType
PositionType computePosition()
CompConstraintType compConstraintType_
std::ostream & operator<<(std::ostream &os, const AlignableGEMStation &b)
AlignableSurface computeSurface()
void addComponent(Alignable *component) final