17 for (
const auto&
chamber : cscChambers) {
30 throw cms::Exception(
"LogicError") <<
"CSC Chamber index (" <<
i <<
") out of range";
47 zz += (*ichamber)->globalPosition().z();
68 os <<
"This CSC Ring contains " <<
b.theCSCChambers.size() <<
" CSC chambers" << std::endl;
69 os <<
"(phi, r, z) = (" <<
b.globalPosition().phi() <<
"," <<
b.globalPosition().perp() <<
"," 70 <<
b.globalPosition().z();
71 os <<
"), orientation:" << std::endl <<
b.globalRotation() << std::endl;
78 for (std::vector<AlignableCSCChamber*>::const_iterator iChamber =
theCSCChambers.begin();
Alignable * mother() const
Return pointer to container alignable (if any)
void dump(void) const override
Recursive printout of the muon CSC Ring structure.
PositionType computePosition()
Compute average z position from all components (x and y forced to 0)
void setSurface(const AlignableSurface &s)
std::vector< AlignableCSCChamber * > theCSCChambers
AlignableCSCRing(const std::vector< AlignableCSCChamber *> &cscChambers)
The constructor simply copies the vector of CSC Chambers and computes the surface from them...
RotationType computeOrientation()
Just initialize to default given by default constructor of a RotationType.
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
std::ostream & operator<<(std::ostream &os, const AlignableCSCRing &b)
Output Ring information.
AlignableSurface computeSurface()
CompConstraintType compConstraintType_
AlignableCSCChamber & chamber(int i)
Return Alignable CSC Chamber at given index.
void addComponent(Alignable *component) final
A muon CSC Chamber( an AlignableDet )