The Gaudi Framework  master (37c0b60a)
IMagneticFieldSvc.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #ifndef GAUDIKERNEL_IMAGNETICFIELDSVC_H
12 #define GAUDIKERNEL_IMAGNETICFIELDSVC_H
13 
14 // Include files
15 #include <GaudiKernel/IService.h>
16 #include <GaudiKernel/StatusCode.h>
17 
18 // Forward declarations
19 namespace ROOT {
20  namespace Math {
21  class DefaultCoordinateSystemTag;
22 
23  // from Math/Point3Dfwd.h
24  template <class CoordSystem, class Tag>
26  // from Math/Vector3Dfwd.h
27  template <class CoordSystem, class Tag>
29  // from Math/Point3Dfwd.h
30  template <typename T>
31  class Cartesian3D;
32  // from Math/Point3Dfwd.h
33  typedef PositionVector3D<Cartesian3D<double>, DefaultCoordinateSystemTag> XYZPoint;
34  // from Math/Vector3Dfwd.h
35  typedef DisplacementVector3D<Cartesian3D<double>, DefaultCoordinateSystemTag> XYZVector;
36  } // namespace Math
37 } // namespace ROOT
38 
45 class GAUDI_API IMagneticFieldSvc : virtual public IService {
46 
47 public:
50 
51  // Get the magnetic field vector at a given point in space.
52  // Input: XYZPoint - Point at which magnetic field vector is to be given.
53  // Output: XYZVector - Magnetic field vector.
54  // Return: StatusCode SUCCESS if calculation was performed.
55  virtual StatusCode fieldVector( const ROOT::Math::XYZPoint& xyz, ROOT::Math::XYZVector& fvec ) const = 0;
56 };
57 
58 #endif // GAUDIKERNEL_IMAGNETICFIELDSVC_H
IService
Definition: IService.h:28
ROOT::Math::XYZVector
DisplacementVector3D< Cartesian3D< double >, DefaultCoordinateSystemTag > XYZVector
Definition: IMagneticFieldSvc.h:35
IMagneticFieldSvc::DeclareInterfaceID
DeclareInterfaceID(IMagneticFieldSvc, 2, 0)
InterfaceID.
IService.h
ROOT::Math::PositionVector3D
Definition: IMagneticFieldSvc.h:25
ROOT::Math::Cartesian3D
Definition: IMagneticFieldSvc.h:31
StatusCode.h
IMagneticFieldSvc
Definition: IMagneticFieldSvc.h:45
ROOT::Math::XYZPoint
PositionVector3D< Cartesian3D< double >, DefaultCoordinateSystemTag > XYZPoint
Definition: IMagneticFieldSvc.h:31
StatusCode
Definition: StatusCode.h:65
IMagneticFieldSvc::fieldVector
virtual StatusCode fieldVector(const ROOT::Math::XYZPoint &xyz, ROOT::Math::XYZVector &fvec) const =0
ROOT
Definition: IMagneticFieldSvc.h:19
ROOT::Math::DisplacementVector3D
Definition: IMagneticFieldSvc.h:28
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:81