ATLAS Offline Software
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
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:
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