|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef G4ATLASSERVICES_StandardFieldSvc_H
6 #define G4ATLASSERVICES_StandardFieldSvc_H
12 #include "G4MagneticField.hh"
15 #include "GaudiKernel/ServiceHandle.h"
36 : m_fieldCache (
MagField::AtlasFieldCache( scaleSolenoid, scaleToroid, fieldMap))
51 else m_fieldCache.getField(point,
field);
81 G4MagneticField*
makeField() override final;
96 "UseMagFieldSvc",
false,
"Use magnetic field service - Should ONLY be used for ForwardRegionFieldSvc"};
109 "FullMapFile",
"MagneticFieldMaps/bfieldmap_7730_20400_14m.root",
110 "File storing the full magnetic field map"};
112 "SoleMapFile",
"MagneticFieldMaps/bfieldmap_7730_0_14m.root",
113 "File storing the solenoid-only magnetic field map"};
115 "ToroMapFile",
"MagneticFieldMaps/bfieldmap_0_20400_14m.root",
116 "File storing the toroid-only magnetic field map"};
119 "MapSoleCurrent", 7730.,
"Nominal solenoid current (A)"};
121 "MapToroCurrent", 20400.,
"Nominal toroid current (A)"};
124 "UseSoleCurrent", 7730.,
"Configured solenoid current (A)"};
126 "UseToroCurrent", 20400.,
"Configured toroid current (A)"};
132 #endif // G4ATLASSERVICES_StandardFieldSvc_H
Gaudi::Property< std::string > m_toroMapFilename
ServiceHandle< MagField::IMagFieldSvc > m_magFieldSvc
Handle to the the Forward ATLAS magnetic field service.
Gaudi::Property< bool > m_useMagFieldSvc
Gaudi::Property< double > m_mapSoleCurrent
nominal current for the maps
std::unique_ptr< MagField::AtlasFieldMap > m_fieldMap
Gaudi::Property< double > m_mapToroCurrent
AtlasField(double scaleSolenoid, double scaleToroid, const MagField::AtlasFieldMap *fieldMap)
Construct the field object from conditions object.
Support class for PropertyMgr.
Athena service for constructing the AtlasField object.
MagField::AtlasFieldCache & fieldCache()
AtlasField(MagField::IMagFieldSvc *m)
Construct the field object from the IMagFieldSvc.
StandardFieldSvc(const std::string &name, ISvcLocator *pSvcLocator)
Standard constructor.
G4 wrapper around the main ATLAS magnetic field cache or field svc for forward field.
Gaudi::Property< double > m_useToroCurrent
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< std::string > m_fullMapFilename
map file names
void GetFieldValue(const double *point, double *field) const
Implementation of G4 method to retrieve field value.
G4MagneticField * makeField() override final
Create/retrieve the AtlasField object.
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
MagField::IMagFieldSvc * m_magFieldSvc
Pointer to the magnetic field service.
~StandardFieldSvc()=default
Empty destructor.
StatusCode createFieldMap()
virtual void getField(const double *xyz, double *bxyz, double *deriv=nullptr) const =0
get B field value at given position
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Gaudi::Property< std::string > m_soleMapFilename
=============================================================================
StatusCode initialize() override final
Athena method. called at initialization time, being customized here.
MagField::AtlasFieldCache m_fieldCache ATLAS_THREAD_SAFE
Field cache - mutable because getField modifies the cache.
Gaudi::Property< double > m_useSoleCurrent
configurable current for map scaling