The Gaudi Framework  v28r2p1 (f1a77ff4)
IMagneticFieldSvc.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_IMAGNETICFIELDSVC_H
2 #define GAUDIKERNEL_IMAGNETICFIELDSVC_H
3 
4 
5 // Include files
6 #include "GaudiKernel/IService.h"
8 
9 
10 // Forward declarations
11 namespace ROOT {
12  namespace Math {
13  class DefaultCoordinateSystemTag;
14 
15  // from Math/Point3Dfwd.h
16  template<class CoordSystem, class Tag> class PositionVector3D;
17  // from Math/Vector3Dfwd.h
18  template<class CoordSystem, class Tag> class DisplacementVector3D;
19  // from Math/Point3Dfwd.h
20  template<typename T> class Cartesian3D;
21  // from Math/Point3Dfwd.h
22  typedef PositionVector3D< Cartesian3D<double>,DefaultCoordinateSystemTag> XYZPoint;
23  // from Math/Vector3Dfwd.h
24  typedef DisplacementVector3D< Cartesian3D<double>,DefaultCoordinateSystemTag > XYZVector;
25  }
26 }
27 
34 class GAUDI_API IMagneticFieldSvc: virtual public IService {
35 
36 public:
39 
40  // Get the magnetic field vector at a given point in space.
41  // Input: XYZPoint - Point at which magnetic field vector is to be given.
42  // Output: XYZVector - Magnetic field vector.
43  // Return: StatusCode SUCCESS if calculation was performed.
44  virtual StatusCode fieldVector( const ROOT::Math::XYZPoint& xyz,
45  ROOT::Math::XYZVector& fvec ) const = 0;
46 
47 };
48 
49 #endif // GAUDIKERNEL_IMAGNETICFIELDSVC_H
PositionVector3D< Cartesian3D< double >, DefaultCoordinateSystemTag > XYZPoint
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:14
The interface to the MagneticFieldSvc.
General service interface definition.
Definition: IService.h:18
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
DisplacementVector3D< Cartesian3D< double >, DefaultCoordinateSystemTag > XYZVector
#define GAUDI_API
Definition: Kernel.h:107