00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef TRKFITMAKER_HH
00027 #define TRKFITMAKER_HH
00028 #include "MdcRecoUtil/PdtPid.h"
00029 #include "TrkBase/TrkRep.h"
00030 #include <utility>
00031
00032 class TrkHitOnTrk;
00033 class TrkRep;
00034 class TrkRecoTrk;
00035 class TrkExchangePar;
00036 class TrkContext;
00037 class TrkIdManager;
00038 class BField;
00039 class TrkRepIter;
00040 class KalMiniTrkK;
00041
00042
00043 class TrkFitMaker {
00044
00045 public:
00046 virtual ~TrkFitMaker();
00047
00048 void changeDefault(TrkRecoTrk&, PdtPid::PidType) const;
00049
00050 protected:
00051
00052
00053
00054
00055 std::pair<TrkRepIter,TrkRepIter> uniqueReps(const TrkRecoTrk& t) const;
00056 void setRep(TrkRecoTrk&, TrkRep*) const;
00057 void repointHypo(TrkRecoTrk&, PdtPid::PidType hypo, PdtPid::PidType fit) const;
00058 void setFitNumber(TrkRecoTrk&, PdtPid::PidType, int) const;
00059 std::pair<TrkRepIter,TrkRepIter> allReps(const TrkRecoTrk& t) const;
00060 TrkRep* getRep(TrkRecoTrk&, PdtPid::PidType) const;
00061 void addHypoTo(TrkRecoTrk&, TrkRep*, PdtPid::PidType hypo) const;
00062 TrkRecoTrk* createTrack(PdtPid::PidType, const TrkContext&, double t0) const;
00063 TrkRecoTrk* createTrack(PdtPid::PidType, long idnum, double t0) const;
00064
00065
00066
00067
00068 void setIdManager(TrkRecoTrk&, TrkIdManager*) const;
00069 void setBField(TrkRecoTrk&, const BField*) const;
00070
00071 friend class KalMiniTrkK;
00072 friend class KalMiniRX;
00073 friend class KalFit;
00074 };
00075
00076 #endif