17 for (
const auto&
ring : cscRings) {
30 throw cms::Exception(
"LogicError") <<
"CSC Ring index (" << i <<
") out of range";
45 for (std::vector<AlignableCSCRing*>::iterator ilayer =
theCSCRings.begin(); ilayer !=
theCSCRings.end(); ilayer++)
46 zz += (*ilayer)->globalPosition().z();
67 os <<
"This CSC Station contains " << b.
theCSCRings.size() <<
" CSC rings" << std::endl;
70 os <<
"), orientation:" << std::endl << b.
globalRotation() << std::endl;
77 for (std::vector<AlignableCSCRing*>::const_iterator iRing =
theCSCRings.begin(); iRing !=
theCSCRings.end(); iRing++)
AlignableCSCStation(const std::vector< AlignableCSCRing * > &cscRings)
The constructor simply copies the vector of CSC Rings and computes the surface from them...
PositionType computePosition()
Compute average z position from all components (x and y forced to 0)
void dump(void) const override
Recursive printout of the muon CSC Station structure.
AlignableCSCRing & ring(int i)
Return Alignable CSC Ring at given index.
Geom::Phi< T > phi() const
const RotationType & globalRotation() const
Return the global orientation of the object.
RotationType computeOrientation()
Just initialize to default given by default constructor of a RotationType.
void setSurface(const AlignableSurface &s)
friend std::ostream & operator<<(std::ostream &, const AlignableCSCStation &)
Printout muon CSC Station information (not recursive)
AlignableSurface computeSurface()
void setMother(Alignable *mother)
Assign mother to alignable.
std::vector< AlignableCSCRing * > theCSCRings
align::RotationType RotationType
align::PositionType PositionType
CompConstraintType compConstraintType_
const PositionType & globalPosition() const
Return the global position of the object.
Alignable * mother() const
Return pointer to container alignable (if any)
void addComponent(Alignable *component) final
int size() const
Return number of direct components.