IMagneticFieldSvc.h
Go to the documentation of this file.00001
00002 #ifndef GAUDIKERNEL_IMAGNETICFIELDSVC_H
00003 #define GAUDIKERNEL_IMAGNETICFIELDSVC_H
00004
00005
00006
00007 #include "GaudiKernel/IService.h"
00008 #include "GaudiKernel/StatusCode.h"
00009
00010
00011
00012 template <class TYPE> class SvcFactory;
00013 namespace ROOT {
00014 namespace Math {
00015 class DefaultCoordinateSystemTag;
00016
00017
00018 template<class CoordSystem, class Tag> class PositionVector3D;
00019
00020 template<class CoordSystem, class Tag> class DisplacementVector3D;
00021
00022 template<typename T> class Cartesian3D;
00023
00024 typedef PositionVector3D< Cartesian3D<double>,DefaultCoordinateSystemTag> XYZPoint;
00025
00026 typedef DisplacementVector3D< Cartesian3D<double>,DefaultCoordinateSystemTag > XYZVector;
00027 }
00028 }
00029
00036 class GAUDI_API IMagneticFieldSvc: virtual public IService {
00037
00038 public:
00040 DeclareInterfaceID(IMagneticFieldSvc,2,0);
00041
00042
00043
00044
00045
00046 virtual StatusCode fieldVector( const ROOT::Math::XYZPoint& xyz,
00047 ROOT::Math::XYZVector& fvec ) const = 0;
00048
00049 };
00050
00051 #endif // GAUDIKERNEL_IMAGNETICFIELDSVC_H