ATLAS Offline Software
H8FieldSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //
6 // H8FieldSvc.h
7 //
8 // Magnetic field map of the H8 beam test
9 //
10 // Masahiro Morii, Harvard University
11 //
12 #ifndef H8FIELDSVC_H
13 #define H8FIELDSVC_H
14 
15 // FrameWork includes
17 
18 // MagField includes
20 #include "BFieldH8Grid.h"
21 
22 // STL includes
23 #include <vector>
24 #include <string>
25 
26 // forward declarations
28 
29 namespace MagField {
30 
31  class H8FieldSvc : public extends<AthService, IMagFieldSvc> {
32  public:
33 
34  //** Constructor with parameters */
35  H8FieldSvc( const std::string& name, ISvcLocator* pSvcLocator );
36 
38  virtual ~H8FieldSvc();
39 
42  StatusCode start();
44 
48  virtual void getField( const double *xyz, double *bxyz, double *deriv = nullptr ) const;
50  virtual void getFieldZR( const double *xyz, double *bxyz, double *deriv = nullptr ) const;
51 
52  private:
53  // initialize map
55  // read the field map
56  StatusCode readMap( const std::string& mapFile );
57 
60  // field map name
61  std::string m_H8MapFilename;
62 
63  // field data
64  std::vector<BFieldH8Grid> m_grid;
65 
66  // first magnet offset
67  double m_dx1;
68  double m_dy1;
69  double m_dz1;
70  // second magnet offset
71  double m_dx2;
72  double m_dy2;
73  double m_dz2;
74 
75  };
76 }
77 
78 #endif
MagField::H8FieldSvc::getFieldZR
virtual void getFieldZR(const double *xyz, double *bxyz, double *deriv=nullptr) const
getFieldZR simply calls getField
Definition: H8FieldSvc.cxx:153
MagField::H8FieldSvc::~H8FieldSvc
virtual ~H8FieldSvc()
Destructor.
Definition: H8FieldSvc.cxx:49
MagField::H8FieldSvc::initializeMap
StatusCode initializeMap()
MagField::H8FieldSvc::m_dz2
double m_dz2
Definition: H8FieldSvc.h:73
MagField::H8FieldSvc::m_dx2
double m_dx2
Definition: H8FieldSvc.h:71
MagField::H8FieldSvc::m_H8MapFilename
std::string m_H8MapFilename
Data members.
Definition: H8FieldSvc.h:61
xyz
#define xyz
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number....
Definition: CondAttrListCollection.h:52
MagField::H8FieldSvc::readMap
StatusCode readMap(const std::string &mapFile)
Definition: H8FieldSvc.cxx:72
MagField::H8FieldSvc::initialize
StatusCode initialize()
Athena algorithm's interface methods.
Definition: H8FieldSvc.cxx:54
MagField::H8FieldSvc::H8FieldSvc
H8FieldSvc(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition: H8FieldSvc.cxx:30
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
BFieldH8Grid.h
MagField::H8FieldSvc::finalize
StatusCode finalize()
Definition: H8FieldSvc.cxx:66
IMagFieldSvc.h
MagField::H8FieldSvc
Definition: H8FieldSvc.h:31
MagField::H8FieldSvc::m_dx1
double m_dx1
Definition: H8FieldSvc.h:67
MagField::H8FieldSvc::start
StatusCode start()
Definition: H8FieldSvc.cxx:60
MagField::H8FieldSvc::getField
virtual void getField(const double *xyz, double *bxyz, double *deriv=nullptr) const
get B field value at given position
Definition: H8FieldSvc.cxx:137
MagField
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Definition: ForwardRegionFieldSvc.h:27
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
MagField::H8FieldSvc::m_dz1
double m_dz1
Definition: H8FieldSvc.h:69
AthService.h
MagField::H8FieldSvc::m_dy2
double m_dy2
Definition: H8FieldSvc.h:72
MagField::H8FieldSvc::m_grid
std::vector< BFieldH8Grid > m_grid
Definition: H8FieldSvc.h:64
MagField::H8FieldSvc::m_dy1
double m_dy1
Definition: H8FieldSvc.h:68