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