00001
00005
00006 #ifndef ROOT_StHelixHelper
00007 #define ROOT_StHelixHelper
00008
00010
00014
00016
00017 #include "TObject.h"
00018 #include "StHelixD.hh"
00019 #include "StPhysicalHelixD.hh"
00020 #include "StHelixD.hh"
00021
00022 class THelixTrack;
00023 class StPhysicalHelix;
00024
00025 class StHelixHelper: public TObject
00026 {
00027 protected:
00028 StHelixHelper();
00029 public:
00030 static THelixTrack *MyHelix(THelixTrack *myHlx,const StHelixD *evHlx);
00031 enum {kInnerHelix, kOutterHelix};
00032 StHelixHelper(const StPhysicalHelix &helix
00033 ,const StPhysicalHelix &outerHelix, double length);
00034 StHelixHelper(const StHelixHelper &helper);
00035 ~StHelixHelper();
00036 float GetLength() const;
00037
00038 virtual StPhysicalHelixD *GetHelix(int idx=0) const;
00039 virtual THelixTrack *GetTHelix(int idx=0) const;
00040 virtual Float_t *GetPoints(int &npoints) const;
00041
00042
00043 private:
00044 mutable StPhysicalHelixD *fHelx[kOutterHelix+1];
00045 mutable THelixTrack *fTHlx[kOutterHelix+1];
00046 float fLength;
00047 ClassDef(StHelixHelper,0)
00048 };
00049
00050 #endif //ROOT_StHelixHelper