00001 00002 // $Id: CandRecoHandle.h,v 1.26 2006/03/08 13:39:26 musser Exp $ 00003 // 00004 // CandRecoHandle.h 00005 // 00006 // CandRecoHandle is the specialized access handle to CandReco. 00007 // 00008 // Each concrete CandHandle must define a DupHandle function. 00009 // 00010 // Author: R. Lee 2001.02.21 00011 // 00013 00014 #ifndef CANDRECOHANDLE_H 00015 #define CANDRECOHANDLE_H 00016 00017 #include "Candidate/CandHandle.h" 00018 #include "Conventions/CalStripType.h" 00019 #include "Conventions/CalTimeType.h" 00020 #include "Conventions/PlaneView.h" 00021 #include "Conventions/StripEnd.h" 00022 #include "Navigation/XxxItr.h" 00023 class CandReco; 00024 00025 class CandSliceHandle; 00026 class CandStripHandle; 00027 class CandShowerHandle; 00028 class CandTrackHandle; 00029 class Vertex; 00030 00031 class CandRecoHandle : public CandHandle 00032 { 00033 00034 public: 00035 CandRecoHandle(); 00036 CandRecoHandle(const CandRecoHandle &cdh); 00037 CandRecoHandle(CandReco *cd); 00038 virtual ~CandRecoHandle(); 00039 virtual CandRecoHandle *DupHandle() const; 00040 00041 virtual void Trace(const char *c = "") const; 00042 00043 void SetCandSlice(const CandSliceHandle *slice); 00044 const CandSliceHandle *GetCandSlice() const; 00045 CandSliceHandle *GetCandSliceWritable() ; 00046 00047 Int_t GetNStrip(PlaneView::PlaneView_t = PlaneView::kUnknown) const; 00048 00049 // intersection between two candreco objects 00050 Int_t GetNStrip(const CandRecoHandle *, 00051 PlaneView::PlaneView_t = PlaneView::kUnknown) const; 00052 00053 00054 Int_t GetNDigit(StripEnd::StripEnd_t = StripEnd::kWhole) const; 00055 00056 Int_t GetNPlane(PlaneView::PlaneView_t = PlaneView::kUnknown) const; 00057 00058 virtual Int_t GetBegPlane(PlaneView::PlaneView_t = PlaneView::kUnknown) const; 00059 virtual Int_t GetEndPlane(PlaneView::PlaneView_t = PlaneView::kUnknown) const; 00060 void SetVtxU(Double_t); 00061 Double_t GetVtxU() const; 00062 00063 void SetVtxV(Double_t); 00064 Double_t GetVtxV() const; 00065 00066 void SetVtxZ(Double_t); 00067 Double_t GetVtxZ() const; 00068 00069 void SetVtxT(Double_t); 00070 Double_t GetVtxT() const; 00071 00072 void SetVtxPlane(Int_t); 00073 Int_t GetVtxPlane() const; 00074 00075 void SetEndU(Double_t); 00076 Double_t GetEndU() const; 00077 00078 void SetEndV(Double_t); 00079 Double_t GetEndV() const; 00080 00081 void SetEndZ(Double_t); 00082 Double_t GetEndZ() const; 00083 00084 void SetEndT(Double_t); 00085 Double_t GetEndT() const; 00086 00087 void SetEndPlane(Int_t); 00088 Int_t GetTermPlane() const; 00089 00090 void SetVtxDirCosU(Double_t); 00091 Double_t GetVtxDirCosU() const; 00092 00093 void SetVtxDirCosV(Double_t); 00094 Double_t GetVtxDirCosV() const; 00095 00096 void SetVtxDirCosZ(Double_t); 00097 Double_t GetVtxDirCosZ() const; 00098 00099 void SetEndDirCosU(Double_t); 00100 Double_t GetEndDirCosU() const; 00101 00102 void SetEndDirCosV(Double_t); 00103 Double_t GetEndDirCosV() const; 00104 00105 void SetEndDirCosZ(Double_t); 00106 Double_t GetEndDirCosZ() const; 00107 00108 void SetDirCosU(Double_t); 00109 Double_t GetDirCosU() const; 00110 00111 void SetDirCosV(Double_t); 00112 Double_t GetDirCosV() const; 00113 00114 void SetDirCosZ(Double_t); 00115 Double_t GetDirCosZ() const; 00116 00117 void SetTimeSlope(Double_t); 00118 Double_t GetTimeSlope() const; 00119 00120 void SetTimeOffset(Double_t); 00121 Double_t GetTimeOffset() const; 00122 00123 CalTimeType::CalTimeType_t GetCalTimeType() const; 00124 00125 void CalibrateSigMapped(UInt_t fEncoded,Float_t); 00126 void CalibrateMIP(UInt_t fEncoded,Float_t); 00127 00128 Double_t GetCharge(CalStripType::CalStripType_t = CalStripType::kMIP) const; 00129 Double_t GetPlaneCharge(Int_t iplane, CalStripType::CalStripType_t = CalStripType::kMIP) const; 00130 Double_t GetStripCharge(const CandStripHandle *) const; 00131 Double_t GetStripCharge(const CandStripHandle *, CalStripType::CalStripType_t, StripEnd::StripEnd_t = StripEnd::kWhole) const; 00132 Double_t GetStripCharge(const CandStripHandle *, StripEnd::StripEnd_t, CalStripType::CalStripType_t = CalStripType::kMIP) const; 00133 00134 static NavKey KeyFromSlice(const CandRecoHandle *); 00135 00136 ClassDef(CandRecoHandle,1) // User access handle to CandReco 00137 00138 }; 00139 00140 XXXITRDEF(CandRecoHandle) 00141 00142 #endif // CANDRECOHANDLE_H
1.3.9.1