CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ParametersToParametersDerivatives.h
Go to the documentation of this file.
1 #ifndef Alignment_CommonAlignmentParametrization_ParametersToParametersDerivatives_h
2 #define Alignment_CommonAlignmentParametrization_ParametersToParametersDerivatives_h
3 
15 
17 #include "TMatrixD.h"
18 
19 class Alignable;
20 
22 {
23  public:
24  ParametersToParametersDerivatives(const Alignable &component, const Alignable &mother);
25 
27  bool isOK() const { return isOK_;}
28 
31  double operator() (unsigned int indParMother, unsigned int indParComp) const;
32 
33  // Not this - would make the internals public:
34  // const TMatrixD& matrix() const { return derivatives_;}
35 
36  private:
38  bool init(const Alignable &component, int typeComponent,
39  const Alignable &mother, int typeMother);
41  bool initRigidRigid(const Alignable &component, const Alignable &mother);
43  bool initBowedRigid(const Alignable &component, const Alignable &mother);
45  bool init2BowedRigid(const Alignable &component, const Alignable &mother);
46 
47  typedef ROOT::Math::SMatrix<double,6,9,ROOT::Math::MatRepStd<double,6,9> > AlgebraicMatrix69;
49  double halfWidth, double halfLength) const;
50 
52  bool isOK_;
53  TMatrixD derivatives_;
54 };
55 
56 #endif
57 
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)
AlgebraicMatrix69 dBowed_dRigid(const AlgebraicMatrix66 &f2f, double halfWidth, double halfLength) const
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
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