00001
00002
00003
00004
00005 #ifndef DETDESC_ITRANSPORTSVC_H
00006 #define DETDESC_ITRANSPORTSVC_H 1
00007
00008
00009 #include "GaudiKernel/IService.h"
00010 #include "DetDesc/ILVolume.h"
00011
00012
00013 class IGeometryInfo;
00014
00018 static const InterfaceID IID_ITransportSvc( "ITransportSvc" , 2 , 0);
00019
00026 class ITransportSvc : virtual public IService
00027 {
00028 public:
00029
00031 static const InterfaceID& interfaceID() { return IID_ITransportSvc; }
00032
00041 virtual double
00042 distanceInRadUnits
00043 ( const Gaudi::XYZPoint& point1 ,
00044 const Gaudi::XYZPoint& point2 ,
00045 double threshold = 0 ,
00046 IGeometryInfo* alternativeGeometry = 0 ,
00047 IGeometryInfo* geometryGuess = 0 ) = 0 ;
00048
00066 virtual unsigned long
00067 intersections
00068 ( const Gaudi::XYZPoint& point ,
00069 const Gaudi::XYZVector& vector ,
00070 const ISolid::Tick& tickMin ,
00071 const ISolid::Tick& tickMax ,
00072 ILVolume::Intersections& intersept ,
00073 double threshold = 0 ,
00074 IGeometryInfo* alternativeGeometry = 0 ,
00075 IGeometryInfo* geometryGuess = 0 ) = 0 ;
00076
00077 protected:
00078
00080 virtual ~ITransportSvc(){};
00081
00082 };
00083
00084
00085
00086
00087 #endif // GAUDIKERNEL_ITRANSPORTSVC_H
00088
00089
00090
00091
00092
00093
00094
00095