  | 
  
    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);
 
   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