The Gaudi Framework  v29r0 (ff2e7097)
IMagneticFieldSvc.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_IMAGNETICFIELDSVC_H
2 #define GAUDIKERNEL_IMAGNETICFIELDSVC_H
3 
4 // Include files
5 #include "GaudiKernel/IService.h"
7 
8 // Forward declarations
9 namespace ROOT
10 {
11  namespace Math
12  {
13  class DefaultCoordinateSystemTag;
14 
15  // from Math/Point3Dfwd.h
16  template <class CoordSystem, class Tag>
18  // from Math/Vector3Dfwd.h
19  template <class CoordSystem, class Tag>
21  // from Math/Point3Dfwd.h
22  template <typename T>
23  class Cartesian3D;
24  // from Math/Point3Dfwd.h
25  typedef PositionVector3D<Cartesian3D<double>, DefaultCoordinateSystemTag> XYZPoint;
26  // from Math/Vector3Dfwd.h
27  typedef DisplacementVector3D<Cartesian3D<double>, DefaultCoordinateSystemTag> XYZVector;
28  }
29 }
30 
37 class GAUDI_API IMagneticFieldSvc : virtual public IService
38 {
39 
40 public:
43 
44  // Get the magnetic field vector at a given point in space.
45  // Input: XYZPoint - Point at which magnetic field vector is to be given.
46  // Output: XYZVector - Magnetic field vector.
47  // Return: StatusCode SUCCESS if calculation was performed.
48  virtual StatusCode fieldVector( const ROOT::Math::XYZPoint& xyz, ROOT::Math::XYZVector& fvec ) const = 0;
49 };
50 
51 #endif // GAUDIKERNEL_IMAGNETICFIELDSVC_H
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:28
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:13
DisplacementVector3D< Cartesian3D< double >, DefaultCoordinateSystemTag > XYZVector
PositionVector3D< Cartesian3D< double >, DefaultCoordinateSystemTag > XYZPoint
#define GAUDI_API
Definition: Kernel.h:110