CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/Alignment/CommonAlignmentParametrization/interface/RigidBodyAlignmentParameters.h

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