00001 00002 // $Id: CandFitTrackSRHandle.h,v 1.21 2005/12/07 14:15:55 musser Exp $ 00003 // 00004 // CandFitTrackSRHandle 00005 // 00006 // CandFitTrackSRHandle is the specialized access handle to CandFitTrackSR. 00007 // 00008 // Each concrete CandHandle must define a DupHandle function. 00009 // 00010 // Author: R. Lee 2001.03.30 00011 // 00013 00014 #ifndef CANDFITTRACKSRHANDLE_H 00015 #define CANDFITTRACKSRHANDLE_H 00016 00017 #include "Conventions/PlaneView.h" 00018 #include "Navigation/XxxItr.h" 00019 #include "RecoBase/CandFitTrackHandle.h" 00020 00021 class CandFitTrackSR; 00022 class TrackClusterSR; 00023 class KalmanPlaneSR; 00024 class AlgConfig; 00025 00026 class CandFitTrackSRHandle : public CandFitTrackHandle 00027 { 00028 00029 public: 00030 CandFitTrackSRHandle(); 00031 CandFitTrackSRHandle(const CandFitTrackSRHandle &csh); 00032 CandFitTrackSRHandle(CandFitTrackSR *cs); 00033 virtual ~CandFitTrackSRHandle(); 00034 virtual CandFitTrackSRHandle *DupHandle() const; 00035 00036 virtual void Trace(const char *c = "") const; 00037 00038 // in general KalmanPlaneList owns objects in list, so be careful 00039 // if calling ClearKalmanPlaneList with argument 0 00040 void ClearKalmanPlaneList(Bool_t deletekp = 1); 00041 void ClearTrackClusterList(); 00042 void ClearMaps(); // clears all STL maps, including fd*dZ, fPlaneChi2, fPlanePreChi2, fPlaneQP 00043 00044 // this creates a new TrackClusterSR which is destroyed in the 00045 // CandFitTrackSR destructor 00046 void AddTrackCluster(TrackClusterSR *); 00047 00048 TObjArray * GetPlaneList(); 00049 TObjArray * GetTrackClusterList(); 00050 00051 Int_t GetKalmanLast() const; 00052 KalmanPlaneSR *GetKalmanPlane(Int_t); 00053 const KalmanPlaneSR *GetKalmanPlane(Int_t) const; 00054 void RemoveKalmanPlane(Int_t,Int_t); 00055 void CompressKalmanPlaneList(); 00056 KalmanPlaneSR * AddKalmanPlaneAt(KalmanPlaneSR *,Int_t); 00057 void RemoveForward(KalmanPlaneSR *kp = 0); 00058 const KalmanPlaneSR *GetCurrentKalmanPlane(PlaneView::PlaneView_t = 00059 PlaneView::kUnknown) const; 00060 KalmanPlaneSR *GetCurrentKalmanPlane(PlaneView::PlaneView_t = 00061 PlaneView::kUnknown); 00062 void SetCurrentKalmanPlane(KalmanPlaneSR*); 00063 void AddUpstreamPlaneList(TObjArray*); 00064 00065 void SetNChangedFitPoint(Int_t); 00066 void SetInitialQP(Double_t); 00067 void SetVtx(const KalmanPlaneSR *); // set vertex variables 00068 void SetEnd(const KalmanPlaneSR *); // set vertex variables 00069 void SetPlanePreChi2(Int_t,Double_t); 00070 void SetVtxExtrapolate(Int_t,PlaneView::PlaneView_t); 00071 void SetEndExtrapolate(Int_t,PlaneView::PlaneView_t); 00072 void SetdUdZ(Int_t,Float_t); 00073 void SetdVdZ(Int_t,Float_t); 00074 Float_t GetdUdZ(Int_t) const; // du/dz at specified plane 00075 Float_t GetdVdZ(Int_t) const; // dv/dz at specified plane 00076 void SetBadFit(TrackClusterSR *); 00077 Double_t GetInitialQP() const; 00078 Int_t GetNChangedFitPoint(); 00079 Bool_t GetBadFit(Int_t) const; 00080 Bool_t GetBadFit(TrackClusterSR *) const; 00081 Int_t GetNGoodFit() const; 00082 Float_t GetPlanePreChi2(Int_t) const; 00083 Int_t GetNChangedFitPoint() const; 00084 Int_t GetVtxExtrapolate(PlaneView::PlaneView_t = PlaneView::kUnknown) const; 00085 Int_t GetEndExtrapolate(PlaneView::PlaneView_t = PlaneView::kUnknown) const; 00086 00087 00088 private: 00089 00090 ClassDef(CandFitTrackSRHandle,5) // User access handle to CandFitTrackSR 00091 00092 }; 00093 00094 XXXITRDEF(CandFitTrackSRHandle) 00095 00096 #endif // CANDFITTRACKSRHANDLE_H
1.3.9.1