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 {
45  public:
46  ParametersToParametersDerivatives(const Alignable &component, const Alignable &mother);
47 
49  bool isOK() const { return isOK_;}
50 
54  double operator() (unsigned int indParMother, unsigned int indParComp) const;
55 
56  // Not this - would make the internals public:
57  // const TMatrixD& matrix() const { return derivatives_;}
58 
59  private:
61  bool init(const Alignable &component, int typeComponent,
62  const Alignable &mother, int typeMother);
64  bool initRigidRigid(const Alignable &component, const Alignable &mother);
66  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;
73  AlgebraicMatrix69 dRigid_dBowed(const AlgebraicMatrix66 &dRigidM2dRigidC,
74  double halfWidth, double halfLength);
75 
77  bool isOK_;
78  TMatrixD derivatives_;
79 };
80 
81 #endif
82 
bool initRigidRigid(const Alignable &component, const Alignable &mother)
init for component and mother both with RigidBody parameters
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepStd< double, 6, 6 > > AlgebraicMatrix66
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, 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)
init for component with TwoBowedSurfaces and mother with RigidBody parameters
bool init(const Alignable &component, int typeComponent, const Alignable &mother, int typeMother)
init by choosing the correct detailed init method depending on parameter types