29 if (parameters.num_row() !=
N_PARAM) {
31 <<
"in RigidBodyAlignmentParameters(): " << parameters.num_row() <<
" instead of " <<
N_PARAM <<
" parameters.";
41 if (parameters.num_row() !=
N_PARAM) {
43 <<
"in RigidBodyAlignmentParameters(): " << parameters.num_row() <<
" instead of " <<
N_PARAM <<
" parameters.";
91 int ncols = dev.num_col();
92 int nrows = dev.num_row();
98 for (
int irow = 0; irow < nrows; ++irow) {
100 for (
int icol = 0; icol <
ncols; ++icol)
101 seldev[ir2][icol] = dev[irow][icol];
112 for (
int i = 0;
i < 3; ++
i)
121 for (
int i = 0;
i < 3; ++
i)
131 throw cms::Exception(
"BadParameters") <<
"RigidBodyAlignmentParameters::apply: parameters without alignable";
163 m_GlobalParameters[0] = dg.
x();
164 m_GlobalParameters[1] = dg.
y();
165 m_GlobalParameters[2] = dg.
z();
169 m_GlobalParameters[3] = eulerglob(1);
170 m_GlobalParameters[4] = eulerglob(2);
171 m_GlobalParameters[5] = eulerglob(3);
173 return m_GlobalParameters;
178 std::cout <<
"Contents of RigidBodyAlignmentParameters:" 179 <<
"\nParameters: " <<
theData->parameters() <<
"\nCovariance: " <<
theData->covariance() << std::endl;
193 displacement[0] = shifts.
x();
194 displacement[1] = shifts.
y();
195 displacement[2] = shifts.
z();
196 displacement[3] =
angles(1);
197 displacement[4] =
angles(2);
198 displacement[5] =
angles(3);
int type() const override
tell type (AlignmentParametersFactory::ParametersType - but no circular dependency) ...
static AlgebraicVector displacementFromAlignable(const Alignable *ali)
const GlobalVector & displacement() const
Return change of the global position since the creation of the object.
AlgebraicMatrix derivatives(const TrajectoryStateOnSurface &tsos, const AlignableDetOrUnitPtr &) const override
Get all derivatives.
void apply() override
apply parameters to alignable
const RotationType & globalRotation() const
Return the global orientation of the object.
AlgebraicSymMatrix expandSymMatrix(const AlgebraicSymMatrix &m, const std::vector< bool > &sel) const
virtual void move(const GlobalVector &displacement)=0
Movement with respect to the global reference frame.
const std::vector< bool > & selector(void) const
Get alignment parameter selector vector.
AlignmentUserVariables * userVariables(void) const
Get pointer to user variables.
const RotationType & rotation() const
Return change of orientation since the creation of the object.
align::RotationType toLocal(const align::RotationType &) const
Return in local frame a rotation given in global frame.
CLHEP::HepMatrix AlgebraicMatrix
void rectify(RotationType &)
Correct a rotation matrix for rounding errors.
void setValid(bool v)
Set validity flag.
EulerAngles toAngles(const RotationType &)
Convert rotation matrix to angles about x-, y-, z-axes (frame rotation).
Alignable * alignable(void) const
Get pointer to corresponding alignable.
AlgebraicMatrix frameToFrameDerivative(const Alignable *object, const Alignable *composedObject) const
void print(void) const
print parameters to screen
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
RigidBodyAlignmentParameters * cloneFromSelected(const AlgebraicVector ¶meters, const AlgebraicSymMatrix &covMatrix) const override
Clone selected parameters (for update of parameters)
int numSelected(void) const
Get number of selected parameters.
CLHEP::HepVector AlgebraicVector
AlgebraicVector EulerAngles
AlgebraicVector expandVector(const AlgebraicVector &m, const std::vector< bool > &sel) const
void setUserVariables(AlignmentUserVariables *auv)
Set pointer to user variables.
virtual void rotateInGlobalFrame(const RotationType &rotation)=0
AlgebraicVector translation(void) const
Get translation parameters.
bool isValid(void) const
Get validity flag.
TkRotation transposed() const
align::GlobalPoints toGlobal(const align::LocalPoints &) const
Return in global coord given a set of local points.
AlgebraicMatrix selectedDerivatives(const TrajectoryStateOnSurface &tsos, const AlignableDetOrUnitPtr &) const override
Get selected derivatives.
RotationType toMatrix(const EulerAngles &)
Convert rotation angles about x-, y-, z-axes to matrix.
CLHEP::HepSymMatrix AlgebraicSymMatrix
static unsigned int const shift
AlgebraicVector rotation(void) const
Get rotation parameters.
AlgebraicVector globalParameters(void) const
calculate and return parameters in global frame
const BasicVectorType & basicVector() const
RigidBodyAlignmentParameters(Alignable *alignable, bool calcMis)
RigidBodyAlignmentParameters * clone(const AlgebraicVector ¶meters, const AlgebraicSymMatrix &covMatrix) const override
Clone all parameters (for update of parameters)