The Gaudi Framework  master (d98a2936)
IMagneticFieldSvc.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2025 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 #pragma once
12 
13 #include <GaudiKernel/IService.h>
14 #include <GaudiKernel/StatusCode.h>
15 
16 namespace ROOT {
17  namespace Math {
18  class DefaultCoordinateSystemTag;
19 
20  // from Math/Point3Dfwd.h
21  template <class CoordSystem, class Tag>
23  // from Math/Vector3Dfwd.h
24  template <class CoordSystem, class Tag>
26  // from Math/Point3Dfwd.h
27  template <typename T>
28  class Cartesian3D;
29  // from Math/Point3Dfwd.h
30  typedef PositionVector3D<Cartesian3D<double>, DefaultCoordinateSystemTag> XYZPoint;
31  // from Math/Vector3Dfwd.h
32  typedef DisplacementVector3D<Cartesian3D<double>, DefaultCoordinateSystemTag> XYZVector;
33  } // namespace Math
34 } // namespace ROOT
35 
42 class GAUDI_API IMagneticFieldSvc : virtual public IService {
43 
44 public:
47 
48  // Get the magnetic field vector at a given point in space.
49  // Input: XYZPoint - Point at which magnetic field vector is to be given.
50  // Output: XYZVector - Magnetic field vector.
51  // Return: StatusCode SUCCESS if calculation was performed.
52  virtual StatusCode fieldVector( const ROOT::Math::XYZPoint& xyz, ROOT::Math::XYZVector& fvec ) const = 0;
53 };
IService
Definition: IService.h:26
ROOT::Math::XYZVector
DisplacementVector3D< Cartesian3D< double >, DefaultCoordinateSystemTag > XYZVector
Definition: IMagneticFieldSvc.h:32
IMagneticFieldSvc::DeclareInterfaceID
DeclareInterfaceID(IMagneticFieldSvc, 2, 0)
InterfaceID.
IService.h
ROOT::Math::PositionVector3D
Definition: IMagneticFieldSvc.h:22
ROOT::Math::Cartesian3D
Definition: IMagneticFieldSvc.h:28
StatusCode.h
IMagneticFieldSvc
Definition: IMagneticFieldSvc.h:42
ROOT::Math::XYZPoint
PositionVector3D< Cartesian3D< double >, DefaultCoordinateSystemTag > XYZPoint
Definition: IMagneticFieldSvc.h:28
StatusCode
Definition: StatusCode.h:64
IMagneticFieldSvc::fieldVector
virtual StatusCode fieldVector(const ROOT::Math::XYZPoint &xyz, ROOT::Math::XYZVector &fvec) const =0
ROOT
Definition: IMagneticFieldSvc.h:16
ROOT::Math::DisplacementVector3D
Definition: IMagneticFieldSvc.h:25
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:49