Class CMZField

Inheritance Relationships

Base Type

Class Documentation

class CMZField : public MagneticField

Magnetic Field Model in the Galactic Center from M. Guenduez et al.

Poloidal Model (Model C) is taken from Katia Ferriere and Philippe Terral 2014 “Analytical models of X-shape magnetic fields in galactic halos” [arXiv:1312.1974] Azimuthal Model is taken from M.Guenduez, J.B. Tjus, K.Ferriere, R.-J. Dettmar (2019) [arXiv:1906.05211]

Public Functions

CMZField()
bool getUseMCField() const
bool getUseICField() const
bool getUseNTFField() const
bool getUseRadioArc() const
void setUseMCField(bool use)
void setUseICField(bool use)
void setUseNTFField(bool use)
void setUseRadioArc(bool use)
Vector3d BPol(const Vector3d &position, const Vector3d &mid, double B1, double a, double L) const

Magnetic field in the poloidal model. Used for inter-cloud (IC), non-thermal-filaments (NTF) and for the radio arc.

Parameters:
  • position – position in galactic coordinates with Earth at (-8.5kpc, 0,0)

  • mid – midpoint of the object

  • B1 – normalized magnetic field strength

  • a – fitting parameter for the radial scale height

  • L – fitting parameter for the z scale height

Returns:

magnetic field vector

Vector3d BAz(const Vector3d &position, const Vector3d &mid, double B1, double eta, double R) const

Magnetic field in the azimuthal model. Used for molecular clouds (MC)

Parameters:
  • position – position in galactic coordinates with Earth at (-8.5kpc, 0,0)

  • mid – midpoint of the object

  • B1 – normalized magnetic field strength

  • eta – ratio between radial and azimuthal component

  • R – Radius of the cloud

Returns:

magnetic field vector

Vector3d getMCField(const Vector3d &pos) const
Vector3d getICField(const Vector3d &pos) const
Vector3d getNTFField(const Vector3d &pos) const
Vector3d getRadioArcField(const Vector3d &pos) const
virtual Vector3d getField(const Vector3d &pos) const
inline virtual Vector3d getField(const Vector3d &position, double z) const
inline size_t addReference() const
inline size_t removeReference() const
inline int removeReferenceNoDelete() const
inline size_t getReferenceCount() const

Protected Functions

double getA(double a1) const

Transform observational parameter a1 in model parameter a. Used for the poloidal model

double getL(double a2) const

Transform observational parameter a2 in model parameter L. Used for the poloidal model

Protected Attributes

bool useMCField
bool useICField
bool useNTFField
bool useRadioArc
mutable size_t _referenceCount