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>
25
class
PositionVector3D
;
26
// from Math/Vector3Dfwd.h
27
template
<
class
CoordSystem,
class
Tag>
28
class
DisplacementVector3D
;
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
:
49
DeclareInterfaceID
(
IMagneticFieldSvc
, 2, 0 );
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
GaudiKernel
include
GaudiKernel
IMagneticFieldSvc.h
Generated on Thu Dec 19 2024 15:35:01 for The Gaudi Framework by
1.8.18