CMS 3D CMS Logo

SurveyResidual.h

Go to the documentation of this file.
00001 #ifndef Alignment_CommonAlignment_SurveyResidual_h
00002 #define Alignment_CommonAlignment_SurveyResidual_h
00003 
00016 #include "Alignment/CommonAlignment/interface/StructureType.h"
00017 #include "Alignment/CommonAlignment/interface/Utilities.h"
00018 
00019 class Alignable;
00020 class AlignableSurface;
00021 
00022 class SurveyResidual
00023 {
00024   public:
00025 
00030   SurveyResidual(
00031                  const Alignable&,
00032                  align::StructureType, // level at which residuals are found 
00033                  bool bias = false     // true for biased residuals
00034                  );
00035 
00039   inline bool valid() const;
00040 
00043   AlgebraicVector sensorResidual() const;
00044 
00047   align::LocalVectors pointsResidual() const;
00048 
00050   AlgebraicSymMatrix inverseCovariance() const;
00051 
00052   private:
00053 
00056   void findSisters(
00057                    const Alignable*,
00058                    bool bias
00059                    );
00060 
00062   void calculate(
00063                  const Alignable&
00064                  );
00065                  
00066   // Cache some values for calculation
00067 
00068   const AlignableSurface& theSurface; // current surface
00069 
00070   const Alignable* theMother; // mother that matches the structure type
00071                               // given in constructor
00072 
00073   std::vector<const Alignable*> theSisters; // list of final daughters for
00074                                             // finding mother's position
00075 
00076   align::GlobalVectors theNominalVs; // nominal points from mother's pos
00077   align::GlobalVectors theCurrentVs; // current points rotated to nominal surf
00078 
00079   align::ErrorMatrix theInverseCovariance;
00080 };
00081 
00082 bool SurveyResidual::valid() const
00083 {
00084   return theMother != 0;
00085 }
00086 
00087 #endif

Generated on Tue Jun 9 17:23:42 2009 for CMSSW by  doxygen 1.5.4