![]() |
GeneralBrokenLines
V01-11-00
|
00001 /* 00002 * GblTrajectory.h 00003 * 00004 * Created on: Aug 18, 2011 00005 * Author: kleinwrt 00006 */ 00007 00008 #ifndef GBLTRAJECTORY_H_ 00009 #define GBLTRAJECTORY_H_ 00010 00011 #include "GblPoint.h" 00012 #include "GblData.h" 00013 #include "GblPoint.h" 00014 #include "BorderedBandMatrix.h" 00015 #include "MilleBinary.h" 00016 #include "TMatrixDSymEigen.h" 00017 00019 00023 class GblTrajectory { 00024 public: 00025 GblTrajectory(bool flagCurv = true, bool flagU1dir = true, bool flagU2dir = 00026 true); 00027 virtual ~GblTrajectory(); 00028 unsigned int addPoint(GblPoint aPoint); 00029 unsigned int getNumPoints() const; 00030 void addExternalSeed(unsigned int aLabel, const TMatrixDSym &aSeed); 00031 void getResults(int aSignedLabel, TVectorD &localPar, 00032 TMatrixDSym &localCov) const; 00033 unsigned int fit(double &Chi2, int &Ndf, double &lostWeight, 00034 std::string optionList = ""); 00035 void milleOut(MilleBinary &aMille); 00036 void kalmanGainFilter(double &Chi2, int &Ndf); 00037 00038 private: 00039 unsigned int numPoints; 00040 unsigned int numOffsets; 00041 unsigned int numCurvature; 00042 unsigned int numParameters; 00043 unsigned int numLocals; 00044 unsigned int externalPoint; 00045 std::vector<unsigned int> theDimension; 00046 std::vector<GblPoint> thePoints; 00047 std::vector<GblData> theData; 00048 std::vector<unsigned int> externalIndex; 00049 TMatrixDSym externalSeed; 00050 VVector::VVector theVector; 00051 BorderedBandMatrix theMatrix; 00052 00053 std::pair<std::vector<unsigned int>, TMatrixD> getJacobian( 00054 int aSignedLabel) const; 00055 void getFitToLocalJacobian(std::vector<unsigned int> &anIndex, 00056 SMatrix55 &aJacobian, GblPoint &aPoint, unsigned int measDim, 00057 unsigned int nJacobian = 1) const; 00058 void getFitToKinkJacobian(std::vector<unsigned int> &anIndex, 00059 SMatrix27 &aJacobian, GblPoint &aPoint) const; 00060 void defineOffsets(); 00061 void calcJacobians(); 00062 void buildLinearEquationSystem(); 00063 void prepare(); 00064 void predict(); 00065 double downWeight(unsigned int aMethod); 00066 }; 00067 00068 #endif /* GBLTRAJECTORY_H_ */
1.7.6.1