ATLAS Offline Software
IMagFieldSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // IMagFieldSvc.h, (c) ATLAS Detector software
8 #ifndef G4ATLASINTERFACES_IMAGFIELDSVC_H
9 #define G4ATLASINTERFACES_IMAGFIELDSVC_H
10 
11 // Framework includes
12 #include "GaudiKernel/IInterface.h"
13 
14 namespace MagField {
15 
20  class IMagFieldSvc: virtual public IInterface {
21 
23  // Public methods:
25  public:
26 
29 
32 
36  virtual void getField(const double *xyz, double *bxyz, double *deriv = nullptr) const = 0;
37 
42  virtual void getFieldZR(const double *xyz, double *bxyz, double *deriv = nullptr) const = 0;
43 
45  bool solenoidOn() const { return solenoidCurrent() > 0.0; }
46  bool toroidOn() const { return toroidCurrent() > 0.0; }
47  float solenoidCurrent() const { return m_solenoidCurrent; }
48  float toroidCurrent() const { return m_toroidCurrent; }
49 
50  protected:
53 
54  private:
55  float m_solenoidCurrent; // solenoid current in ampere
56  float m_toroidCurrent; // toroid current in ampere
57  };
58 }
59 
60 #endif //> !MAGFIELDINTERFACES_IMAGFIELDSVC_H
fillPileUpNoiseLumi.current
current
Definition: fillPileUpNoiseLumi.py:52
xyz
#define xyz
MagField::IMagFieldSvc::solenoidOn
bool solenoidOn() const
status of the magnets
Definition: IMagFieldSvc.h:45
MagField::IMagFieldSvc::setToroidCurrent
void setToroidCurrent(float current)
Definition: IMagFieldSvc.h:52
MagField::IMagFieldSvc::m_solenoidCurrent
float m_solenoidCurrent
Definition: IMagFieldSvc.h:55
MagField::IMagFieldSvc::m_toroidCurrent
float m_toroidCurrent
Definition: IMagFieldSvc.h:56
MagField::IMagFieldSvc::toroidCurrent
float toroidCurrent() const
Definition: IMagFieldSvc.h:48
MagField::IMagFieldSvc::toroidOn
bool toroidOn() const
Definition: IMagFieldSvc.h:46
MagField
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Definition: ForwardRegionFieldSvc.h:27
MagField::IMagFieldSvc::IMagFieldSvc
IMagFieldSvc()
constructor
Definition: IMagFieldSvc.h:31
MagField::IMagFieldSvc::getFieldZR
virtual void getFieldZR(const double *xyz, double *bxyz, double *deriv=nullptr) const =0
get B field value on the z-r plane at given position
MagField::IMagFieldSvc::DeclareInterfaceID
DeclareInterfaceID(IMagFieldSvc, 1, 0)
Creates the InterfaceID and interfaceID() method.
MagField::IMagFieldSvc::setSolenoidCurrent
void setSolenoidCurrent(float current)
Definition: IMagFieldSvc.h:51
MagField::IMagFieldSvc::getField
virtual void getField(const double *xyz, double *bxyz, double *deriv=nullptr) const =0
get B field value at given position
MagField::IMagFieldSvc::solenoidCurrent
float solenoidCurrent() const
Definition: IMagFieldSvc.h:47
MagField::IMagFieldSvc
@ class IMagFieldSvc
Definition: IMagFieldSvc.h:20