00001 #ifndef GEOMETRYHELPER_H
00002 #define GEOMETRYHELPER_H
00003
00011
00012 #include "UgliGeometry/UgliGeomHandle.h"
00013 #include "Plex/PlexPlaneId.h"
00014
00015 #include "StripABC.h"
00016
00017 class CandStripHandle;
00018 class CandTrackHandle;
00019 class TrackContext;
00020
00021 class GeometryHelper {
00022
00023 public:
00024 GeometryHelper(const VldContext& vldc);
00025 GeometryHelper(const TrackContext& );
00026
00030 Double_t GetZ(PlexPlaneId id);
00031
00035 Double_t GetZVtx(PlexPlaneId id, Int_t idir);
00036
00040 Double_t GetX0(PlexPlaneId id);
00041
00045 Double_t GetdZSteel(PlexPlaneId id);
00046
00050 UgliScintPlnHandle GetScintPlnHandle(const PlexPlaneId& planeid)
00051 { return fUgh.GetScintPlnHandle(planeid);};
00052
00056 void xy2uv(Float_t x, Float_t y, Float_t &u, Float_t &v) const
00057 { fUgh.xy2uv(x, y, u, v); };
00058
00059 void uv2xy(Float_t u, Float_t v, Float_t &x, Float_t &y) const
00060 { fUgh.uv2xy(u, v, x, y); };
00061
00062 void xy2uv(Double_t x, Double_t y, Double_t &u, Double_t &v) const
00063 { fUgh.xy2uv(x, y, u, v); };
00064
00065 void uv2xy(Double_t u, Double_t v, Double_t &x, Double_t &y) const
00066 { fUgh.uv2xy(u, v, x, y); };
00067
00071 Float_t GetRotationCorrectedTPos(const CandStripHandle* csh,
00072 const CandTrackHandle* cth);
00073
00077 Float_t GetRotationCorrectedTPos(const Reco::Strip_t strip,
00078 const CandTrackHandle* cth);
00079
00080 private:
00081 VldContext fVldc;
00082 UgliGeomHandle fUgh;
00083 };
00084
00085 #endif