ATLAS Offline Software
MagneticField
MagFieldInterfaces
MagFieldInterfaces
IMagFieldManipulator.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// IMagFieldManipulator.h, (c) ATLAS Detector software
8
#ifndef MAGFIELDINTERFACES_IMAGFIELDMANIPULATOR_H
9
#define MAGFIELDINTERFACES_IMAGFIELDMANIPULATOR_H
10
11
#include <cmath>
12
#include <iostream>
13
14
// Framework includes
15
#include "GaudiKernel/IAlgTool.h"
16
17
// Amg classes
18
#include "
GeoPrimitives/GeoPrimitives.h
"
19
21
static
const
InterfaceID IID_IMagFieldManipulator(
"IMagFieldManipulator"
, 1, 0);
22
23
namespace
MagField
{
24
29
class
IMagFieldManipulator
:
virtual
public
IAlgTool {
30
32
// Public methods:
34
public
:
36
IMagFieldManipulator
() {;}
37
39
static
const
InterfaceID&
interfaceID
() {
40
return
IID_IMagFieldManipulator;
41
}
42
47
virtual
void
modifyPosition
(
const
double
*xyz_old,
double
*xyz_new) = 0;
48
52
virtual
void
modifyField
(
double
*bxyz,
double
*deriv = 0) = 0;
53
};
54
}
55
56
#endif //> !MAGFIELDINTERFACES_IMAGFIELDMANIPULATOR_H
MagField::IMagFieldManipulator::interfaceID
static const InterfaceID & interfaceID()
Retrieve interface ID.
Definition:
IMagFieldManipulator.h:39
MagField::IMagFieldManipulator::modifyField
virtual void modifyField(double *bxyz, double *deriv=0)=0
correct B field value at a position xyz
GeoPrimitives.h
MagField::IMagFieldManipulator::modifyPosition
virtual void modifyPosition(const double *xyz_old, double *xyz_new)=0
change the point where the field should be evaluated
MagField
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Definition:
ForwardRegionFieldSvc.h:27
MagField::IMagFieldManipulator::IMagFieldManipulator
IMagFieldManipulator()
constructor
Definition:
IMagFieldManipulator.h:36
MagField::IMagFieldManipulator
@ class IMagFieldManipulator
Definition:
IMagFieldManipulator.h:29
Generated on Sun Jun 30 2024 21:17:19 for ATLAS Offline Software by
1.8.18