CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
ParametersToParametersDerivatives Class Reference

#include <ParametersToParametersDerivatives.h>

Public Member Functions

bool isOK () const
 Indicate whether able to provide the derivatives. More...
 
double operator() (unsigned int indParMother, unsigned int indParComp) const
 
 ParametersToParametersDerivatives (const Alignable &component, const Alignable &mother)
 

Private Types

typedef ROOT::Math::SMatrix
< double,
6, 9, ROOT::Math::MatRepStd
< double, 6, 9 > > 
AlgebraicMatrix69
 

Private Member Functions

AlgebraicMatrix69 dRigid_dBowed (const AlgebraicMatrix66 &dRigidM2dRigidC, double halfWidth, double halfLength)
 
bool init (const Alignable &component, int typeComponent, const Alignable &mother, int typeMother)
 init by choosing the correct detailed init method depending on parameter types More...
 
bool init2BowedRigid (const Alignable &component, const Alignable &mother)
 init for component with TwoBowedSurfaces and mother with RigidBody parameters More...
 
bool initBowedRigid (const Alignable &component, const Alignable &mother)
 init for component with BowedSurface and mother with RigidBody parameters More...
 
bool initRigidRigid (const Alignable &component, const Alignable &mother)
 init for component and mother both with RigidBody parameters More...
 

Private Attributes

TMatrixD derivatives_
 can we provide the desired? More...
 
bool isOK_
 data members More...
 

Detailed Description

Class for getting the jacobian d_mother/d_component for various kinds of alignment parametrisations, i.e. the derivatives expressing the influence of the parameters of the 'component' on the parameters of its 'mother'. This is needed e.g. to formulate constraints to remove the additional degrees of freedom introduced if larger structures and their components are aligned simultaneously. The jacobian matrix is

/ dp1_l/dp1_i dp1_l/dp2_i ... dp1_l/dpn_i | | dp2_l/dp1_i dp2_l/dp2_i ... dp2_l/dpn_i | | . . . | | . . . | | . . . | \ dpm_l/dpm_i dpm_l/dpm_i ... dpm_l/dpn_i /

where p1_l, p2_l, ..., pn_l are the n parameters of the composite 'mother' object and p1_i, p2_i, ..., pm_i are the m parameters of its component.

Note that not all combinations of parameters are supported: Please check method isOK() before accessing the derivatives via operator(unsigned int indParMother, unsigned int indParComp).

Currently these parameters are supported:

Definition at line 43 of file ParametersToParametersDerivatives.h.

Member Typedef Documentation

typedef ROOT::Math::SMatrix<double,6,9,ROOT::Math::MatRepStd<double,6,9> > ParametersToParametersDerivatives::AlgebraicMatrix69
private

Definition at line 70 of file ParametersToParametersDerivatives.h.

Constructor & Destructor Documentation

ParametersToParametersDerivatives::ParametersToParametersDerivatives ( const Alignable component,
const Alignable mother 
)

Definition at line 24 of file ParametersToParametersDerivatives.cc.

Member Function Documentation

ParametersToParametersDerivatives::AlgebraicMatrix69 ParametersToParametersDerivatives::dRigid_dBowed ( const AlgebraicMatrix66 dRigidM2dRigidC,
double  halfWidth,
double  halfLength 
)
private

from d(rigid_mother)/d(rigid_component) to d(rigid_mother)/d(bowed_component) for bad input (length or width zero), set object to invalid: isOK_ = false

Definition at line 163 of file ParametersToParametersDerivatives.cc.

bool ParametersToParametersDerivatives::init ( const Alignable component,
int  typeComponent,
const Alignable mother,
int  typeMother 
)
private

init by choosing the correct detailed init method depending on parameter types

Definition at line 34 of file ParametersToParametersDerivatives.cc.

bool ParametersToParametersDerivatives::init2BowedRigid ( const Alignable component,
const Alignable mother 
)
private

init for component with TwoBowedSurfaces and mother with RigidBody parameters

Definition at line 105 of file ParametersToParametersDerivatives.cc.

bool ParametersToParametersDerivatives::initBowedRigid ( const Alignable component,
const Alignable mother 
)
private

init for component with BowedSurface and mother with RigidBody parameters

Definition at line 82 of file ParametersToParametersDerivatives.cc.

bool ParametersToParametersDerivatives::initRigidRigid ( const Alignable component,
const Alignable mother 
)
private

init for component and mother both with RigidBody parameters

Definition at line 59 of file ParametersToParametersDerivatives.cc.

bool ParametersToParametersDerivatives::isOK ( ) const
inline

Indicate whether able to provide the derivatives.

Definition at line 49 of file ParametersToParametersDerivatives.h.

References isOK_.

double ParametersToParametersDerivatives::operator() ( unsigned int  indParMother,
unsigned int  indParComp 
) const

Return the derivative DeltaParam(mother)/DeltaParam(component). Indices start with 0 - but check isOK() first! See class description about matrix.

Definition at line 211 of file ParametersToParametersDerivatives.cc.

Member Data Documentation

TMatrixD ParametersToParametersDerivatives::derivatives_
private

can we provide the desired?

Definition at line 78 of file ParametersToParametersDerivatives.h.

bool ParametersToParametersDerivatives::isOK_
private

data members

Definition at line 77 of file ParametersToParametersDerivatives.h.

Referenced by isOK().