DD4hep
1.30.0
Detector Description Toolkit for High Energy Physics
|
Implementation object of a Multipole magnetic field. More...
#include <FieldTypes.h>
Public Member Functions | |
MultipoleField () | |
Initializing constructor. More... | |
virtual void | fieldComponents (const double *pos, double *field) |
Call to access the field components at a given location. More... | |
Public Member Functions inherited from dd4hep::CartesianField::Object | |
Object () | |
Default constructor. More... | |
virtual | ~Object () |
Default destructor. More... | |
Public Member Functions inherited from dd4hep::CartesianField::TypedObject | |
NamedObject (const char *nam, const char *typ="") | |
Default constructor. More... | |
NamedObject (const std::string &nam) | |
Default constructor. More... | |
NamedObject (const std::string &nam, const std::string &typ) | |
Default constructor. More... | |
NamedObject ()=default | |
Default constructor. More... | |
NamedObject (const NamedObject &c)=default | |
Default constructor. More... | |
NamedObject (NamedObject &&c)=default | |
Default constructor. More... | |
Public Member Functions inherited from dd4hep::NamedObject | |
NamedObject (const char *nam, const char *typ="") | |
Initializing constructor. More... | |
NamedObject (const std::string &nam) | |
Initializing constructor. More... | |
NamedObject (const std::string &nam, const std::string &typ) | |
Initializing constructor. More... | |
NamedObject ()=default | |
Standard constructor. More... | |
NamedObject (const NamedObject &c)=default | |
Copy constructor. More... | |
NamedObject (NamedObject &&c)=default | |
Move constructor. More... | |
virtual | ~NamedObject ()=default |
Default destructor. More... | |
NamedObject & | operator= (const NamedObject &c)=default |
Assignment operator. More... | |
NamedObject & | operator= (NamedObject &&c)=default |
Move assignment operator. More... | |
const char * | GetName () const |
Access name. More... | |
void | SetName (const char *nam) |
Set name (used by Handle) More... | |
void | SetTitle (const char *tit) |
Set Title (used by Handle) More... | |
const char * | GetTitle () const |
Get name (used by Handle) More... | |
Public Attributes | |
Coefficents | coefficents { } |
Multi-pole coefficients. More... | |
Coefficents | skews { } |
Multi-pole skews. More... | |
Solid | volume { } |
Boundary volume (optional) More... | |
Transform3D | transform { } |
Position transformation of the field. Only stored here for reference. More... | |
Transform3D | inverse { } |
Inverse position transformation of the field. More... | |
Rotation3D | rotation { } |
The rotation part of the transformation. Need to rotate the field. More... | |
double | B_z { 0e0 } |
Constant Z field overlay. More... | |
Public Attributes inherited from dd4hep::CartesianField::Object | |
Properties | properties |
Field extensions. More... | |
Public Attributes inherited from dd4hep::CartesianField::TypedObject | |
int | field_type { UNKNOWN } |
Field type. More... | |
Public Attributes inherited from dd4hep::NamedObject | |
std::string | name |
The object name. More... | |
std::string | type |
The object type. More... | |
Private Attributes | |
unsigned char | flag { 0 } |
The access to the field will be optimized. Remember properties. More... | |
Transform3D::Point | translation { } |
Translation of the transformation. More... | |
Additional Inherited Members | |
Public Types inherited from dd4hep::CartesianField::Object | |
typedef std::vector< double > | Coefficents |
Utility definition for concrete implementations. More... | |
Implementation object of a Multipole magnetic field.
Generic multipole magnetic field using the Multipole approach. The dipole is assumed to be horizontal as it is used for bending beams in large colliders ie. the dipole field lines are vertical.
The different momenta are given by:
With C_n being the complex multipole coefficients and b_n the "normal multipole coefficients" and a_n the "skew multipole coefficients".
The maximal momentum used is the octopole momentum.
The lower momenta are:
The defined field components only apply within the shape 'volume'. If 'volume' is an invalid shape (ie. not defined), then the field components are valied throughout the 'universe'.
Definition at line 152 of file FieldTypes.h.
MultipoleField::MultipoleField | ( | ) |
Initializing constructor.
Definition at line 101 of file FieldTypes.cpp.
|
virtual |
Call to access the field components at a given location.
Compute the field components at a given location and add to given field.
Implements dd4hep::CartesianField::Object.
Definition at line 106 of file FieldTypes.cpp.
double dd4hep::MultipoleField::B_z { 0e0 } |
Constant Z field overlay.
Definition at line 167 of file FieldTypes.h.
Coefficents dd4hep::MultipoleField::coefficents { } |
Multi-pole coefficients.
Definition at line 155 of file FieldTypes.h.
|
private |
The access to the field will be optimized. Remember properties.
Definition at line 171 of file FieldTypes.h.
Transform3D dd4hep::MultipoleField::inverse { } |
Inverse position transformation of the field.
Definition at line 163 of file FieldTypes.h.
Rotation3D dd4hep::MultipoleField::rotation { } |
The rotation part of the transformation. Need to rotate the field.
Definition at line 165 of file FieldTypes.h.
Coefficents dd4hep::MultipoleField::skews { } |
Multi-pole skews.
Definition at line 157 of file FieldTypes.h.
Transform3D dd4hep::MultipoleField::transform { } |
Position transformation of the field. Only stored here for reference.
Definition at line 161 of file FieldTypes.h.
|
private |
Translation of the transformation.
Definition at line 173 of file FieldTypes.h.
Solid dd4hep::MultipoleField::volume { } |
Boundary volume (optional)
Definition at line 159 of file FieldTypes.h.