CMS 3D CMS Logo

RigidBodyAlignmentParameters4D.cc
Go to the documentation of this file.
1 
9 
16 
17 // This class's header
19 
20 //__________________________________________________________________________________________________
23  const AlignableDetOrUnitPtr &alidet ) const
24 {
25  const Alignable *ali = this->alignable(); // Alignable of these parameters
26 
27  if (ali == alidet) { // same alignable => same frame
28  return SegmentAlignmentDerivatives4D()(tsos);
29  } else { // different alignable => transform into correct frame
30  const AlgebraicMatrix deriv = SegmentAlignmentDerivatives4D()(tsos);
32  return ftfd.frameToFrameDerivative(alidet, ali).T() * deriv;
33  }
34 }
35 
36 //__________________________________________________________________________________________________
39  const AlgebraicSymMatrix& covMatrix ) const
40 {
42  new RigidBodyAlignmentParameters4D( alignable(), parameters, covMatrix, selector());
43 
45  rbap->setValid(isValid());
46 
47  return rbap;
48 }
49 
50 //__________________________________________________________________________________________________
53  const AlgebraicSymMatrix& covMatrix ) const
54 {
57  expandSymMatrix(covMatrix, selector()), selector());
58 
60  rbap->setValid(isValid());
61 
62  return rbap;
63 }
64 
65 
66 
67 //__________________________________________________________________________________________________
69 {
71 }
72 
RigidBodyAlignmentParameters4D * clone(const AlgebraicVector &parameters, const AlgebraicSymMatrix &covMatrix) const override
Clone all parameters (for update of parameters)
AlgebraicSymMatrix expandSymMatrix(const AlgebraicSymMatrix &m, const std::vector< bool > &sel) const
const std::vector< bool > & selector(void) const
Get alignment parameter selector vector.
int type() const override
tell type (AlignmentParametersFactory::ParametersType - but no circular dependency) ...
const AlgebraicVector & parameters(void) const
Get alignment parameters.
AlignmentUserVariables * userVariables(void) const
Get pointer to user variables.
CLHEP::HepMatrix AlgebraicMatrix
void setValid(bool v)
Set validity flag.
Alignable * alignable(void) const
Get pointer to corresponding alignable.
AlgebraicMatrix frameToFrameDerivative(const Alignable *object, const Alignable *composedObject) const
CLHEP::HepVector AlgebraicVector
AlgebraicVector expandVector(const AlgebraicVector &m, const std::vector< bool > &sel) const
void setUserVariables(AlignmentUserVariables *auv)
Set pointer to user variables.
RigidBodyAlignmentParameters4D * cloneFromSelected(const AlgebraicVector &parameters, const AlgebraicSymMatrix &covMatrix) const override
Clone selected parameters (for update of parameters)
bool isValid(void) const
Get validity flag.
CLHEP::HepSymMatrix AlgebraicSymMatrix
AlgebraicMatrix derivatives(const TrajectoryStateOnSurface &tsos, const AlignableDetOrUnitPtr &) const override
Get all derivatives.
RigidBodyAlignmentParameters4D(Alignable *alignable, bool calcMis)