CMS 3D CMS Logo

ParametersToParametersDerivatives.h
Go to the documentation of this file.
1 #ifndef Alignment_CommonAlignmentParametrization_ParametersToParametersDerivatives_h
2 #define Alignment_CommonAlignmentParametrization_ParametersToParametersDerivatives_h
3 
37 
39 #include "TMatrixD.h"
40 
41 class Alignable;
42 
44 public:
45  ParametersToParametersDerivatives(const Alignable &component, const Alignable &mother);
46 
48  bool isOK() const { return isOK_; }
49 
53  double operator()(unsigned int indParMother, unsigned int indParComp) const;
54 
55  // Not this - would make the internals public:
56  // const TMatrixD& matrix() const { return derivatives_;}
57 
58 private:
61  bool init(const Alignable &component, int typeComponent, const Alignable &mother, int typeMother);
63  bool initRigidRigid(const Alignable &component, const Alignable &mother);
65  bool initBowedRigid(const Alignable &component, const Alignable &mother);
68  bool init2BowedRigid(const Alignable &component, const Alignable &mother);
69 
70  typedef ROOT::Math::SMatrix<double, 6, 9, ROOT::Math::MatRepStd<double, 6, 9>> AlgebraicMatrix69;
74  AlgebraicMatrix69 dRigid_dBowed(const AlgebraicMatrix66 &dRigidM2dRigidC, double halfWidth, double halfLength);
75 
77  bool isOK_;
78  TMatrixD derivatives_;
79 };
80 
81 #endif
bool initRigidRigid(const Alignable &component, const Alignable &mother)
init for component and mother both with RigidBody parameters
bool isOK() const
Indicate whether able to provide the derivatives.
ParametersToParametersDerivatives(const Alignable &component, const Alignable &mother)
double operator()(unsigned int indParMother, unsigned int indParComp) const
bool initBowedRigid(const Alignable &component, const Alignable &mother)
init for component with BowedSurface and mother with RigidBody parameters
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepStd< double, 6, 6 > > AlgebraicMatrix66
ROOT::Math::SMatrix< double, 6, 9, ROOT::Math::MatRepStd< double, 6, 9 > > AlgebraicMatrix69
AlgebraicMatrix69 dRigid_dBowed(const AlgebraicMatrix66 &dRigidM2dRigidC, double halfWidth, double halfLength)
TMatrixD derivatives_
can we provide the desired?
bool init2BowedRigid(const Alignable &component, const Alignable &mother)
bool init(const Alignable &component, int typeComponent, const Alignable &mother, int typeMother)