Go to the documentation of this file.00001 #ifndef Alignment_CommonAlignment_RigidBodyAlignmentParameters_h
00002 #define Alignment_CommonAlignment_RigidBodyAlignmentParameters_h
00003
00004 #include "Alignment/CommonAlignment/interface/AlignmentParameters.h"
00005 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
00006
00016
00017 class Alignable;
00018 class AlignableDetOrUnitPtr;
00019 class TrajectoryStateOnSurface;
00020
00021 class RigidBodyAlignmentParameters : public AlignmentParameters
00022 {
00023
00024 public:
00025
00027 enum AlignmentParameterName
00028 {
00029 dx = 0, dy, dz,
00030 dalpha, dbeta, dgamma,
00031 N_PARAM
00032 };
00033
00036 RigidBodyAlignmentParameters(Alignable* alignable, bool calcMis);
00037
00039 RigidBodyAlignmentParameters( Alignable* alignable,
00040 const AlgebraicVector& parameters,
00041 const AlgebraicSymMatrix& covMatrix );
00042
00044 RigidBodyAlignmentParameters( Alignable* alignable, const AlgebraicVector& parameters,
00045 const AlgebraicSymMatrix& covMatrix,
00046 const std::vector<bool>& selection );
00047
00049 virtual ~RigidBodyAlignmentParameters() {};
00050 virtual void apply();
00051 virtual int type() const;
00052
00054 virtual RigidBodyAlignmentParameters* clone( const AlgebraicVector& parameters,
00055 const AlgebraicSymMatrix& covMatrix ) const;
00056
00058 virtual RigidBodyAlignmentParameters*
00059 cloneFromSelected(const AlgebraicVector& parameters, const AlgebraicSymMatrix& covMatrix) const;
00060
00062 virtual AlgebraicMatrix derivatives( const TrajectoryStateOnSurface& tsos,
00063 const AlignableDetOrUnitPtr & ) const;
00064
00066 virtual AlgebraicMatrix selectedDerivatives( const TrajectoryStateOnSurface& tsos,
00067 const AlignableDetOrUnitPtr & ) const;
00068
00070 AlgebraicVector translation(void) const;
00071
00073 AlgebraicVector rotation(void) const;
00074
00076 AlgebraicVector globalParameters(void) const;
00077
00079 void print(void) const;
00080
00083 static AlgebraicVector displacementFromAlignable(const Alignable* ali);
00084
00085 };
00086
00087 #endif
00088