00001
00002
00003
00004
00005
00006
00007
00008
00010
00011 #ifndef CANDTRACK_H
00012 #define CANDTRACK_H
00013
00014 #include "RecoBase/CandReco.h"
00015
00016 #include <map>
00017
00018 using namespace std;
00019
00020 class AlgHandle;
00021 class CandContext;
00022 class CandStrip;
00023 class CandTrackHandle;
00024
00025 class CandTrack : public CandReco
00026 {
00027 friend class CandTrackHandle;
00028
00029 public:
00030 static CandTrackHandle MakeCandidate(AlgHandle &ah, CandContext &cx);
00031 CandTrack();
00032
00033 virtual std::ostream& FormatToOStream(std::ostream& os,
00034 Option_t *option="") const;
00035
00036 protected:
00037 CandTrack(AlgHandle &ah);
00038 CandTrack(AlgHandle &ah, CandHandle &ch, CandContext &cx);
00039 CandTrack(const CandTrack &rhs);
00040 virtual ~CandTrack();
00041 virtual void CreateLocalHandle();
00042 virtual CandTrack *Dup() const;
00043 virtual Bool_t IsEquivalent(const TObject *rhs) const;
00044
00045 Double_t fMomentum;
00046
00047 mutable map<const CandStrip *, Int_t> fInShower;
00048 mutable map<Int_t,Float_t> fUPos;
00049 mutable map<Int_t,Float_t> fVPos;
00050 mutable map<Int_t,Float_t> fdS;
00051 mutable map<Int_t,Float_t> fRange;
00052 mutable map<Int_t,Float_t> fTPosError;
00053 mutable map<Int_t,Double_t> fTime[2];
00054
00055 Double_t fVtxTrace;
00056 Double_t fVtxTraceZ;
00057 Double_t fEndTrace;
00058 Double_t fEndTraceZ;
00059 Double_t fVtxDistToEdge;
00060 Double_t fEndDistToEdge;
00061 Int_t fVtxnActiveUpstream;
00062 Int_t fEndnActiveDownstream;
00063
00064 Int_t fNTrackStrip;
00065 Int_t fNTrackDigit;
00066 Int_t fNTimeFitDigit;
00067 Double_t fTimeFitChi2;
00068 Double_t fTimeForwardFitRMS;
00069 Int_t fTimeForwardFitNDOF;
00070 Double_t fTimeBackwardFitRMS;
00071 Int_t fTimeBackwardFitNDOF;
00072
00073 ClassDef(CandTrack,9)
00074 };
00075
00076 #endif // CANDTRACK_H