00001 #ifndef Helper_HH
00002 #define Helper_HH
00003
00004 #include "StEventTypes.h"
00005 #include "StPhysicalHelixD.hh"
00006
00007
00008
00009
00010 double distance(double a1, double b1, double a2, double b2);
00011 double distance(const StThreeVectorF& point1,
00012 const StThreeVectorF& point2);
00013
00014 double dca3d(const StPhysicalHelixD&, const StThreeVectorF& point);
00015
00016 double dca2d(const StPhysicalHelixD&, const StThreeVectorF& point,
00017 const StThreeVectorF* origin=0);
00018
00019 double dcaz(const StPhysicalHelixD&, const StThreeVectorF& point);
00020
00021 double crossingAngle(const StPhysicalHelixD& helix,
00022 const StTpcHit* hit, float bField=0);
00023
00024 double padrowDca(const StPhysicalHelixD& helix,
00025 const StTpcHit* hit);
00026
00027
00028
00029 double propagateToPadrow(const StPhysicalHelixD& helix,
00030 const StTpcHit* hit);
00031 double helixPadrowDca(const StPhysicalHelixD& helix,
00032 const StTpcHit* hit);
00033 double helixCrossingAngle(const StPhysicalHelixD& helix,
00034 const StTpcHit* hit, float bField);
00035
00036 double helixCrossingAngle(float pt, float phi, int sector);
00037
00038 double helixDca2D(const StPhysicalHelixD&,const StThreeVectorF& point);
00039
00040
00041
00042
00043 StThreeVectorF lineAt2d(const StPhysicalHelixD&, const StThreeVectorF& point);
00044
00045 double
00046 linePadrowDca(const StPhysicalHelixD& helix,
00047 const StTpcHit* hit);
00048
00049 double
00050 lineCrossingAngle(const StPhysicalHelixD& helix,
00051 const StTpcHit* hit);
00052
00053 double
00054 lineCrossingAngle(const StPhysicalHelixD& helix,
00055 const int sector);
00056
00057 double
00058 lineDca2D(const StPhysicalHelixD& helix,
00059 const StThreeVectorF& hit,
00060 const StThreeVectorF& origin);
00061
00062 #endif