GeneralBrokenLines  V01-11-00
GblTrajectory.h
Go to the documentation of this file.
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_ */
 All Classes Files Functions Variables Typedefs