00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef TRKHELIXREP_HH
00017 #define TRKHELIXREP_HH
00018
00019 #include "TrkFitter/TrkSimpleRep.h"
00020 #include "TrkBase/HelixTraj.h"
00021
00022 class TrkHelixRep : public TrkSimpleRep {
00023 public:
00024
00025
00026
00027
00028 TrkHelixRep(const TrkExchangePar& inPar, TrkRecoTrk* myTrack, PdtPid::PidType hypo, const TrkHotList* = 0);
00029 TrkHelixRep(const TrkExchangePar& inPar, TrkRecoTrk* trk,
00030 PdtPid::PidType hypo, int nact, int nsv, int ndc,
00031 double chi2, double startFoundRange, double endFoundRange);
00032 virtual ~TrkHelixRep();
00033
00034 virtual TrkHelixRep* clone(TrkRecoTrk* newTrack) const;
00035 virtual TrkHelixRep* cloneNewHypo(PdtPid::PidType hypo);
00036
00037
00038
00039
00040 virtual TrkDifTraj& traj();
00041 virtual const TrkDifTraj& traj() const;
00042 const IfdKey& myKey() const;
00043
00044
00045
00046
00047 virtual TrkExchangePar helix(double fltLen) const;
00048
00049 virtual bool resid(const TrkHitOnTrk *h,
00050 double& residual, double& residErr,
00051 bool exclude) const;
00052
00053
00054
00055 virtual void printAll(std::ostream& ostr) const;
00056 virtual void print(std::ostream& ostr) const;
00057
00058 virtual TrkSimpTraj& simpTraj();
00059 virtual const TrkSimpTraj& simpTraj() const;
00060
00061 protected:
00062
00063 TrkHelixRep(const TrkHelixRep& right, TrkRecoTrk* trk, PdtPid::PidType);
00064
00065 private:
00066 TrkHelixRep& operator=(const TrkHelixRep &right);
00067 HelixTraj _traj;
00068 };
00069 #endif