CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/Alignment/CommonAlignmentParametrization/interface/BeamSpotAlignmentParameters.h

Go to the documentation of this file.
00001 #ifndef Alignment_CommonAlignment_BeamSpotAlignmentParameters_h
00002 #define Alignment_CommonAlignment_BeamSpotAlignmentParameters_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 BeamSpotAlignmentParameters : public AlignmentParameters 
00022 {
00023 
00024 public:
00025 
00027   enum AlignmentParameterName 
00028         {
00029           dx = 0, dy,
00030           dxslope, dyslope,
00031           N_PARAM
00032         };
00033   
00036   BeamSpotAlignmentParameters( Alignable* alignable, bool calcMis );
00037 
00039   BeamSpotAlignmentParameters( Alignable* alignable, 
00040                                const AlgebraicVector& parameters, 
00041                                const AlgebraicSymMatrix& covMatrix );
00042 
00044   BeamSpotAlignmentParameters( Alignable* alignable, const AlgebraicVector& parameters, 
00045                                const AlgebraicSymMatrix& covMatrix, 
00046                                const std::vector<bool>& selection );
00047 
00049   virtual ~BeamSpotAlignmentParameters();
00050   virtual void apply();
00051   virtual int type() const;
00052 
00054   virtual BeamSpotAlignmentParameters* clone( const AlgebraicVector& parameters, 
00055                                               const AlgebraicSymMatrix& covMatrix ) const;
00056  
00058   virtual BeamSpotAlignmentParameters*
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 #endif