Go to the documentation of this file.00001 #include "TrackingTools/TransientTrackingRecHit/interface/HelpertRecHit2DLocalPos.h"
00002 #include "DataFormats/GeometryCommonDetAlgo/interface/ErrorFrameTransformer.h"
00003 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
00004 #include "DataFormats/TrackingRecHit/interface/AlignmentPositionError.h"
00005
00006 void
00007 HelpertRecHit2DLocalPos::updateWithAPE(LocalError& le, const GeomDet& det)
00008 {
00009 LocalError lape = det.localAlignmentError();
00010 if (lape.valid())
00011 le = LocalError(le.xx()+lape.xx(),
00012 le.xy()+lape.xy(),
00013 le.yy()+lape.yy()
00014 );
00015 }
00016
00017 AlgebraicSymMatrix HelpertRecHit2DLocalPos::parError( const LocalError& le,
00018 const GeomDet& det)
00019 {
00020 AlgebraicSymMatrix m(2);
00021 LocalError lape = det.localAlignmentError();
00022 if (lape.valid()) {
00023 m[0][0] = le.xx()+lape.xx();
00024 m[0][1] = le.xy()+lape.xy();
00025 m[1][1] = le.yy()+lape.yy();
00026 } else {
00027 m[0][0] = le.xx();
00028 m[0][1] = le.xy();
00029 m[1][1] = le.yy();
00030 };
00031 return m;
00032 }
00033
00034 void
00035 HelpertRecHit2DLocalPos::getKfComponents(KfComponentsHolder & holder,
00036 const TrackingRecHit &hit2dLocalPos,
00037 const GeomDet& det)
00038 {
00039 hit2dLocalPos.getKfComponents(holder);
00040 LocalError lape = det.localAlignmentError();
00041 if (lape.valid()) {
00042 AlgebraicSymMatrix22 &m = holder.errors<2>();
00043 m(0, 0) += lape.xx();
00044 m(0, 1) += lape.xy();
00045 m(1, 1) += lape.yy();
00046 }
00047 }
00048
00049 void
00050 HelpertRecHit2DLocalPos::getKfComponents(KfComponentsHolder & holder,
00051 const SiStripRecHit1D& hit1D,
00052 const GeomDet& det)
00053 {
00054 hit1D.getKfComponents(holder);
00055 LocalError lape =det.localAlignmentError();
00056 if (lape.valid()) {
00057 AlgebraicSymMatrix11 &m = holder.errors<1>();
00058 m(0, 0) += lape.xx();
00059 }
00060 }