00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00012
00013 #ifndef ALGTRACKSR_H
00014 #define ALGTRACKSR_H
00015
00016 #include "Algorithm/AlgBase.h"
00017 #include "RecoBase/AlgReco.h"
00018 #include "RecoBase/AlgTrack.h"
00019 #include "Conventions/Detector.h"
00020
00021 class Track2DSR;
00022 class UgliGeomHandle;
00023 class CandStripHandleItr;
00024 class CandTrackSRHandle;
00025
00026 class AlgTrackSR : public AlgBase, public AlgReco, public AlgTrack
00027 {
00028
00029 public:
00030 AlgTrackSR();
00031 virtual ~AlgTrackSR();
00032 virtual void RunAlg(AlgConfig &ac, CandHandle &ch, CandContext &cx);
00033 virtual void Trace(const char *c) const;
00034
00035 private:
00036
00037 Int_t fParmNExtraStrip;
00038 Double_t fParmMinPlanePE;
00039 Int_t fParmIsCosmic;
00040 Detector::Detector_t fDetector;
00041 Double_t fParmMinStripPE;
00042 Double_t fParmMaxClusterSizeTimeFit;
00043 Double_t fParmMaxTimeFitRes;
00044 Int_t fParmMinTimeFitSize;
00045 Double_t fParmMaxTimeFitOutlier;
00046
00047 Int_t FindNeighborIndex(Track2DSR *track, Int_t currentIndex,
00048 Int_t direction);
00049 Int_t FindTimingDirection(CandTrackSRHandle &cth,
00050 CandStripHandleItr &stripItr,
00051 Track2DSR *utrack,
00052 Track2DSR *vtrack,
00053 Double_t *fitparm,
00054 Double_t &maxPathLength,
00055 Double_t &timefitchi2);
00056
00057 void FindStripsInTrack(Track2DSR *uTrack, Track2DSR *vTrack,
00058 CandTrackSRHandle &cth);
00059
00060
00061 ClassDef(AlgTrackSR,3)
00062
00063 };
00064
00065 #endif // ALGTRACKSR_H