CMS 3D CMS Logo

KfComponentsHolder.cc

Go to the documentation of this file.
00001 #include "DataFormats/TrackingRecHit/interface/KfComponentsHolder.h"
00002 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"
00003 #include "FWCore/Utilities/interface/Exception.h"
00004 
00005 template<unsigned int D>
00006 void KfComponentsHolder::genericFill_(const TrackingRecHit &hit) {
00007    typedef typename AlgebraicROOTObject<D,5>::Matrix MatD5;
00008    typedef typename AlgebraicROOTObject<D,D>::SymMatrix SMatDD;
00009    typedef typename AlgebraicROOTObject<D>::Vector VecD;
00010 
00011    params<D>()     = asSVector<D>(hit.parameters());
00012    errors<D>()     = asSMatrix<D>(hit.parametersError());
00013    projection<D>() = asSMatrix<D,5>(hit.projectionMatrix());
00014 
00015    const MatD5 & H = projection<D>();
00016 
00017    measuredParams<D>() = H * (*tsosLocalParameters_);
00018    measuredErrors<D>() = ROOT::Math::Similarity(H, (*tsosLocalErrors_));
00019 }
00020 
00021 void KfComponentsHolder::genericFill(const TrackingRecHit &hit) {
00022     switch (hit.dimension()) {
00023         case 1: genericFill_<1>(hit); break;
00024         case 2: genericFill_<2>(hit); break;
00025         case 3: genericFill_<3>(hit); break;
00026         case 4: genericFill_<4>(hit); break;
00027         case 5: genericFill_<5>(hit); break;
00028         default:
00029             throw cms::Exception("Rec hit of invalid dimension (not 1,2,3,4,5)") <<
00030                 "The dimension was " << hit.dimension() <<
00031                 ", type is " << typeid(hit).name() << "\n";
00032     }
00033 
00034 }
00035 

Generated on Tue Jun 9 17:31:47 2009 for CMSSW by  doxygen 1.5.4