4 #include "CLHEP/Vector/RotationInterfaces.h"
18 theAlignmentPositionError(0)
27 throw cms::Exception(
"BadHierarchy") <<
"[AlignableDet] GeomDet with DetId "
29 <<
" has no components, use AlignableDetUnit.\n";
31 const std::vector<const GeomDet*>& geomDets = geomDet->
components();
32 for (std::vector<const GeomDet*>::const_iterator idet = geomDets.begin();
33 idet != geomDets.end(); ++idet) {
37 <<
"[AlignableDet] component not GeomDetUnit, call with addComponents==false"
38 <<
" and build hierarchy yourself.\n";
114 CLHEP::HepRotation clhepRotation( CLHEP::HepRep3x3( rot.
xx(), rot.
xy(), rot.
xz(),
115 rot.
yx(), rot.
yy(), rot.
yz(),
116 rot.
zx(), rot.
zy(), rot.
zz() ) );
122 m_alignments->
m_align.push_back( transform );
127 std::back_inserter(m_alignments->
m_align));
128 delete compAlignments;
142 CLHEP::HepSymMatrix clhepSymMatrix(6,0);
146 m_alignmentErrors->
m_alignError.push_back( transformError );
152 delete compAlignmentErrs;
155 return m_alignmentErrors;
CLHEP::HepMatrix asHepMatrix(const ROOT::Math::SMatrix< double, N1, N2, typename ROOT::Math::MatRepStd< double, N1, N2 > > &rm)
AlignmentPositionError * theAlignmentPositionError
virtual void addAlignmentPositionError(const AlignmentPositionError &ape, bool propagateDown)
virtual void setAlignmentPositionError(const AlignmentPositionError &ape, bool propagateDown)
Set the AlignmentPositionError and, if (propagateDown), to all components.
virtual AlignmentErrorsExtended * alignmentErrors() const
Return vector of alignment errors.
virtual Alignments * alignments() const
Return vector of alignment data.
const RotationType & globalRotation() const
Return the global orientation of the object.
align::LocalVector LocalVector
virtual void setAlignmentPositionError(const AlignmentPositionError &ape, bool propagateDown)
const Plane & surface() const
The nominal surface of the GeomDet.
std::vector< AlignTransform > m_align
const GlobalErrorExtended & globalError() const
uint32_t rawId() const
get the raw id
virtual void addAlignmentPositionErrorFromRotation(const RotationType &rot, bool propagateDown)
DetId geographicalId() const
The label of this GeomDet.
virtual Alignments * alignments() const
Return alignment data.
const AlgebraicSymMatrix66 & matrix() const
virtual void addAlignmentPositionError(const AlignmentPositionError &ape, bool propagateDown)
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
virtual std::vector< const GeomDet * > components() const
Returns direct components, if any.
std::vector< AlignTransformErrorExtended > m_alignError
AlignableDet(const GeomDet *geomDet, bool addComponents=true)
align::GlobalPoints toGlobal(const align::LocalPoints &) const
Return in global coord given a set of local points.
virtual void addAlignmentPositionErrorFromRotation(const RotationType &rotation, bool propagateDown)
const PositionType & globalPosition() const
Return the global position of the object.
virtual ~AlignableDet()
Destructor.
Basic3DVector< T > multiplyInverse(const Basic3DVector< T > &v) const
const BasicVectorType & basicVector() const
AlignmentPositionError const * alignmentPositionError() const
Return pointer to alignment errors.
const DetId & geomDetId() const
virtual AlignmentErrorsExtended * alignmentErrors() const
Return vector of alignment errors.
AlignableSurface theSurface
virtual void addComponent(Alignable *component)