Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CandTrackHandle.h

Go to the documentation of this file.
00001 
00002 // $Id: CandTrackHandle.h,v 1.27 2006/08/03 18:09:13 musser Exp $
00003 //
00004 // CandTrackHandle.h
00005 //
00006 // CandTrackHandle is the specialized access handle to CandTrack.
00007 //
00008 // Each concrete CandHandle must define a DupHandle function.
00009 //
00010 // Author:  R. Lee 2001.02.21
00011 //
00013 
00014 #ifndef CANDTRACKHANDLE_H
00015 #define CANDTRACKHANDLE_H
00016 
00017 #include "Conventions/PlaneView.h"
00018 #include "Navigation/XxxItr.h"
00019 #include "RecoBase/CandRecoHandle.h"
00020 class CandTrack;
00021 class AlgConfig;
00022 class VldContext;
00023 class CandShowerHandle;
00024 
00025 class CandTrackHandle : public CandRecoHandle
00026 {
00027 
00028 public:
00029   CandTrackHandle();
00030   CandTrackHandle(const CandTrackHandle &cdh);
00031   CandTrackHandle(CandTrack *cd);
00032   virtual ~CandTrackHandle();
00033   virtual CandTrackHandle *DupHandle() const;
00034 
00035   virtual void Trace(const char *c = "") const;
00036 
00037   static NavKey KeyFromSlice(const CandTrackHandle *);
00038 
00039   void SetU(Int_t,Float_t);
00040   void SetV(Int_t,Float_t);
00041   void SetdS(Int_t,Float_t);
00042   void SetTrackPointError(Int_t,Float_t);
00043   void SetRange(Int_t plane,Float_t g_cm2);
00044   void SetT(Int_t,StripEnd::StripEnd_t,Double_t);
00045   Bool_t BelongsWithTrack(CandTrackHandle * trk, 
00046                           AlgConfig & ac, 
00047                           const VldContext * vldcptr, 
00048                           Double_t tolTPos2, Double_t tolZPos, Double_t tolTime);
00049   Bool_t BelongsWithShower(CandShowerHandle * shw, 
00050                            AlgConfig & ac, 
00051                            const VldContext * vldcptr, 
00052                            Double_t tolTPos2, Double_t tolZPos, Double_t tolTime);
00053   void SetVtxTrace(Double_t);
00054   void SetVtxTraceZ(Double_t);
00055   void SetVtxnActiveUpstream(Int_t);
00056   void SetEndTrace(Double_t);
00057   void SetEndTraceZ(Double_t);
00058   void SetEndnActiveDownstream(Int_t);
00059   void SetVtxDistToEdge(Double_t);
00060   void SetEndDistToEdge(Double_t);
00061   
00062 
00063   virtual void ClearMaps(); // clears all STL maps, including fdS and fRange
00064   virtual void ClearUVT(); // same as ClearMap, left for backward compatibility
00065 
00066   Bool_t IsTPosValid(Int_t) const; // returns true if U and V positions have been set for this plane
00067   Float_t GetU(Int_t) const; // U position at specified plane
00068   Float_t GetV(Int_t) const; // V position at specified plane
00069   Float_t GetZ(Int_t) const; // Z position at specified plane
00070 
00071   Int_t GetNTrackPlane(PlaneView::PlaneView_t = PlaneView::kUnknown) const;
00072 
00073   Float_t GetTrackPointError(Int_t) const; // position error at specified plane
00074   Double_t GetT(Int_t) const; // time at specified plane
00075   Double_t GetT(Int_t,StripEnd::StripEnd_t) const; // time at specified plane
00076   Double_t GetT(StripEnd::StripEnd_t,Int_t) const; // time at specified plane
00077   Float_t GetdS(Int_t = -1) const; // travel distance from vertex
00078   Float_t GetRange(Int_t = -1) const; // g/cm**2 from vertex
00079 
00080   Double_t GetVtxTrace() const;
00081   Double_t GetVtxTraceZ() const;
00082   Int_t GetVtxnActiveUpstream() const;
00083   Double_t GetEndTrace() const;
00084   Double_t GetEndTraceZ() const;
00085   Int_t GetEndnActiveDownstream() const;
00086   Double_t GetVtxDistToEdge() const;
00087   Double_t GetEndDistToEdge() const;
00088 
00089   virtual Double_t GetScore() const; // larger is better
00090 
00091   Int_t IsInShower(CandStripHandle *) const;
00092   void SetInShower(CandStripHandle *, Int_t);
00093 
00094   virtual Double_t GetMomentum() const;
00095   virtual void SetMomentum(Double_t);
00096   
00097   Bool_t IsUnphysical(Float_t trkFrac=0.660,Float_t asymCut=0.500,
00098                       Float_t xtalkFrac=0.660,Float_t xtalkCut=2.0);
00099   Bool_t IsContained();
00100 
00101   void SetNTrackStrip(Int_t);
00102   void SetNTrackDigit(Int_t);
00103   void SetNTimeFitDigit(Int_t);
00104   void SetTimeFitChi2(Double_t);
00105   void SetTimeForwardFitRMS(Double_t);
00106   void SetTimeForwardFitNDOF(Int_t);
00107   void SetTimeBackwardFitRMS(Double_t);
00108   void SetTimeBackwardFitNDOF(Int_t);
00109 
00110   Int_t GetNTrackStrip() const;
00111   Int_t GetNTrackDigit() const;
00112   Int_t GetNTimeFitDigit() const;
00113   Double_t GetTimeFitChi2() const;
00114   Double_t GetTimeForwardFitRMS() const;
00115   Int_t GetTimeForwardFitNDOF() const;
00116   Double_t GetTimeBackwardFitRMS() const;
00117   Int_t GetTimeBackwardFitNDOF() const;
00118 
00119 
00120 ClassDef(CandTrackHandle,7)           // User access handle to CandTrack
00121 
00122 };
00123 
00124 XXXITRDEF(CandTrackHandle)
00125 
00126 #endif                                              // CANDTRACKHANDLE_H

Generated on Mon Feb 15 11:06:29 2010 for loon by  doxygen 1.3.9.1