LDMX Software
simcore::MagneticFieldStore Class Reference

Global store to access magnetic field objects. More...

#include <MagneticFieldStore.h>

Public Types

using MagFieldMap = std::map<std::string, G4MagneticField*>
 Map of names to magnetic fields.
 

Public Member Functions

 ~MagneticFieldStore ()
 Destructor.
 
G4MagneticField * getMagneticField (const std::string &name)
 Get a magnetic field by name.
 
void addMagneticField (const std::string &name, G4MagneticField *magField)
 Add a magnetic field by name.
 

Static Public Member Functions

static MagneticFieldStoregetInstance ()
 Get the global instance of the magnetic field store.
 

Private Attributes

MagFieldMap mag_fields_
 Map of names to magnetic fields.
 

Detailed Description

Global store to access magnetic field objects.

Definition at line 21 of file MagneticFieldStore.h.

Member Typedef Documentation

◆ MagFieldMap

using simcore::MagneticFieldStore::MagFieldMap = std::map<std::string, G4MagneticField*>

Map of names to magnetic fields.

Definition at line 26 of file MagneticFieldStore.h.

Constructor & Destructor Documentation

◆ ~MagneticFieldStore()

simcore::MagneticFieldStore::~MagneticFieldStore ( )
inline

Destructor.

Cleans up all stored G4MagneticFields

Definition at line 42 of file MagneticFieldStore.h.

42 {
43 for (auto& name_field : mag_fields_) {
44 delete name_field.second;
45 }
46 mag_fields_.clear();
47 }
MagFieldMap mag_fields_
Map of names to magnetic fields.

References mag_fields_.

Member Function Documentation

◆ addMagneticField()

void simcore::MagneticFieldStore::addMagneticField ( const std::string & name,
G4MagneticField * magField )
inline

Add a magnetic field by name.

Parameters
nameThe name of the magnetic field.
magFieldThe magnetic field definition.

Definition at line 62 of file MagneticFieldStore.h.

62 {
63 mag_fields_[name] = magField;
64 }

References mag_fields_.

Referenced by simcore::geo::AuxInfoReader::createMagneticField().

◆ getInstance()

static MagneticFieldStore * simcore::MagneticFieldStore::getInstance ( )
inlinestatic

Get the global instance of the magnetic field store.

Returns
The magnetic field store.

Definition at line 32 of file MagneticFieldStore.h.

32 {
33 static MagneticFieldStore instance;
34 return &instance;
35 }

Referenced by simcore::geo::AuxInfoReader::assignAuxInfoToVolumes(), and simcore::geo::AuxInfoReader::createMagneticField().

◆ getMagneticField()

G4MagneticField * simcore::MagneticFieldStore::getMagneticField ( const std::string & name)
inline

Get a magnetic field by name.

Parameters
nameThe name of the magnetic field.

Definition at line 53 of file MagneticFieldStore.h.

53 {
54 return mag_fields_.at(name);
55 }

References mag_fields_.

Referenced by simcore::geo::AuxInfoReader::assignAuxInfoToVolumes().

Member Data Documentation

◆ mag_fields_

MagFieldMap simcore::MagneticFieldStore::mag_fields_
private

Map of names to magnetic fields.

Definition at line 70 of file MagneticFieldStore.h.

Referenced by addMagneticField(), getMagneticField(), and ~MagneticFieldStore().


The documentation for this class was generated from the following file: