00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TRKSIMPLEREP_HH
00017 #define TRKSIMPLEREP_HH
00018
00019 #include "TrkBase/TrkRep.h"
00020 #include "TrkFitter/TrkHelixFitter.h"
00021 #include "CLHEP/Vector/ThreeVector.h"
00022 #include "CLHEP/Matrix/Vector.h"
00023 #include "CLHEP/Matrix/Matrix.h"
00024 #include "CLHEP/Matrix/SymMatrix.h"
00025
00026 class TrkSimpTraj;
00027 using CLHEP::HepVector;
00028 using CLHEP::Hep3Vector;
00029 using CLHEP::HepMatrix;
00030 using CLHEP::HepSymMatrix;
00031
00032 class TrkSimpleRep : public TrkRep {
00033 public:
00034
00035
00036
00037
00038 TrkSimpleRep(const TrkHotList*, TrkRecoTrk*, PdtPid::PidType);
00039 TrkSimpleRep(TrkRecoTrk*, PdtPid::PidType, int nActive, int nSvt, int nDch,
00040 double chi2, double startFoundRange, double endFoundRange);
00041
00042 TrkSimpleRep(const TrkSimpleRep& right, TrkRecoTrk* trk, PdtPid::PidType);
00043 virtual ~TrkSimpleRep();
00044
00045
00046
00047
00048 int nDof() const;
00049 double chisq() const;
00050 void setChisq(double c);
00051 virtual int charge() const;
00052
00053
00054
00055
00056 virtual Hep3Vector momentum(double fltL=0.) const;
00057 virtual double pt(double fltL=0.) const;
00058 virtual BesVectorErr momentumErr(double fltL) const;
00059
00060
00061
00062
00063 virtual HepMatrix posmomCov(double fltL) const;
00064 virtual void getAllCovs(double fltL,
00065 HepSymMatrix& xxCov,
00066 HepSymMatrix& ppCov,
00067 HepMatrix& xpCov) const;
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079 virtual void getAllWeights(double fltL,
00080 HepVector& pos,
00081 HepVector& mom,
00082 HepSymMatrix& xxWeight,
00083 HepSymMatrix& ppWeight,
00084 HepMatrix& xpWeight)const;
00085 virtual void getAllWeights(const HepPoint3D& pt,
00086 HepVector& pos,
00087 HepVector& mom,
00088 HepSymMatrix& xxWeight,
00089 HepSymMatrix& ppWeight,
00090 HepMatrix& xpWeight) const;
00091
00092
00093
00094
00095 virtual TrkErrCode fit();
00096 TrkHelixFitter& fitter() {return _fitter;}
00097
00098 protected:
00099 TrkSimpleRep& operator=(const TrkSimpleRep &right);
00100 virtual TrkSimpTraj& simpTraj() = 0;
00101 virtual const TrkSimpTraj& simpTraj() const = 0;
00102
00103 private:
00104 TrkHelixFitter _fitter;
00105 double _chisq;
00106
00107 };
00108 #endif
00109
00110
00111