CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/DataFormats/TrackingRecHit/interface/AlignmentPositionError.h

Go to the documentation of this file.
00001 #ifndef ALIGNMENT_POSITION_ERROR_H
00002 #define ALIGNMENT_POSITION_ERROR_H
00003 
00004 #include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h"
00005 
00010 class AlignmentPositionError {
00011 
00012  public:
00013 
00014   AlignmentPositionError(){};
00015   
00016   AlignmentPositionError(float dx, float dy, float dz);
00017   
00018   AlignmentPositionError(GlobalError ge) : theGlobalError(ge) {};
00019 
00020   ~AlignmentPositionError(){};
00021   
00022 
00023   bool valid() const {
00024     return ( theGlobalError.cxx()>0 || theGlobalError.cyy()>0 || theGlobalError.czz()>0 );
00025   }
00026 
00027   const GlobalError & globalError() const { return theGlobalError; };
00028 
00029   AlignmentPositionError operator+ (const AlignmentPositionError& ape) const {
00030     return AlignmentPositionError ( this->globalError() + ape.globalError());
00031   };
00032 
00033   AlignmentPositionError operator- (const AlignmentPositionError& ape) const {
00034     return AlignmentPositionError ( this->globalError() - ape.globalError());
00035 
00036   };
00037 
00038   AlignmentPositionError & operator+= (const AlignmentPositionError& ape) {
00039     theGlobalError = GlobalError(this->globalError() + ape.globalError());
00040     return *this;
00041   };
00042 
00043   AlignmentPositionError & operator-= (const AlignmentPositionError& ape) {
00044     theGlobalError = GlobalError(this->globalError() - ape.globalError());
00045     return *this;
00046   };
00047 
00048 
00049  private:
00050   
00051   GlobalError theGlobalError;
00052 };
00053 
00054 #endif // ALIGNMENT_POSITION_ERROR_H
00055