DD4hep  1.35.0
Detector Description Toolkit for High Energy Physics
FieldTypes.h
Go to the documentation of this file.
1 //==========================================================================
2 // AIDA Detector description implementation
3 //--------------------------------------------------------------------------
4 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
5 // All rights reserved.
6 //
7 // For the licensing terms see $DD4hepINSTALL/LICENSE.
8 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
9 //
10 // Author : M.Frank
11 //
12 //==========================================================================
13 #ifndef DD4HEP_FIELDTYPES_H
14 #define DD4HEP_FIELDTYPES_H
15 
16 // Framework include files
17 #include <DD4hep/Fields.h>
18 #include <DD4hep/Shapes.h>
19 
20 // C/C++ include files
21 #include <vector>
22 
24 namespace dd4hep {
25 
27 
35  public:
36  enum { FIELD_LOCAL = 1, FIELD_TRANSLATED = 2, FIELD_ROTATED = 4 };
44  unsigned char flag { 0 };
45  public:
47  ConstantField() = default;
49  virtual void fieldComponents(const double* /* pos */, double* field);
50  };
51 
53 
61  public:
62  double innerField;
63  double outerField;
64  double minZ;
65  double maxZ;
66  double innerRadius;
67  double outerRadius;
68 
69  public:
71  SolenoidField();
73  virtual void fieldComponents(const double* pos, double* field);
74  };
75 
77 
85  public:
86  double zmax;
87  double zmin;
88  double rmax;
90  public:
92  DipoleField();
94  virtual void fieldComponents(const double* pos, double* field);
95  };
96 
98 
160  public:
174  double B_z { 0e0 };
175 
176  private:
178  unsigned char flag { 0 };
180  Transform3D::Point translation { };
182  double aabb_min[3] { 0, 0, 0 };
183  double aabb_max[3] { 0, 0, 0 };
184  public:
186  MultipoleField();
188  virtual void fieldComponents(const double* pos, double* field);
189  };
190 
191 } /* End namespace dd4hep */
192 #endif // DD4HEP_FIELDTYPES_H
dd4hep::ConstantField::inverse_pos
Transform3D inverse_pos
If solid is set: allow for movement of the solid.
Definition: FieldTypes.h:42
dd4hep::DipoleField::zmin
double zmin
Definition: FieldTypes.h:87
dd4hep::ConstantField::FIELD_ROTATED
@ FIELD_ROTATED
Definition: FieldTypes.h:36
dd4hep::ConstantField::FIELD_LOCAL
@ FIELD_LOCAL
Definition: FieldTypes.h:36
dd4hep::DipoleField::rmax
double rmax
Definition: FieldTypes.h:88
dd4hep::MultipoleField
Implementation object of a Multipole magnetic field.
Definition: FieldTypes.h:159
dd4hep::MultipoleField::aabb_min
double aabb_min[3]
Axis-aligned bounding box in world coordinates.
Definition: FieldTypes.h:182
dd4hep::ConstantField::ConstantField
ConstantField()=default
Initializing constructor.
dd4hep::CartesianField::Object
Internal data class shared by all handles of a given type.
Definition: Fields.h:67
dd4hep::Rotation3D
ROOT::Math::Rotation3D Rotation3D
Definition: Objects.h:112
dd4hep::Solid_type< TGeoShape >
dd4hep::Direction
Position Direction
Definition: Fields.h:28
dd4hep::CartesianField::Object::Coefficents
std::vector< double > Coefficents
Utility definition for concrete implementations.
Definition: Fields.h:70
dd4hep::DipoleField
Implementation object of a dipole magnetic field.
Definition: FieldTypes.h:84
dd4hep::ConstantField::fieldComponents
virtual void fieldComponents(const double *, double *field)
Call to access the field components at a given location.
Definition: FieldTypes.cpp:31
dd4hep::SolenoidField::maxZ
double maxZ
Definition: FieldTypes.h:65
dd4hep::ConstantField
Implementation object of a field with constant strength.
Definition: FieldTypes.h:34
dd4hep::DipoleField::zmax
double zmax
Definition: FieldTypes.h:86
dd4hep::SolenoidField::innerRadius
double innerRadius
Definition: FieldTypes.h:66
dd4hep::SolenoidField::fieldComponents
virtual void fieldComponents(const double *pos, double *field)
Call to access the field components at a given location.
Definition: FieldTypes.cpp:58
dd4hep::DipoleField::coefficents
Coefficents coefficents
Definition: FieldTypes.h:89
dd4hep::DipoleField::fieldComponents
virtual void fieldComponents(const double *pos, double *field)
Call to access the field components at a given location.
Definition: FieldTypes.cpp:76
dd4hep::MultipoleField::B_z
double B_z
Constant Z field overlay.
Definition: FieldTypes.h:174
dd4hep::MultipoleField::aabb_max
double aabb_max[3]
Definition: FieldTypes.h:183
dd4hep::SolenoidField::minZ
double minZ
Definition: FieldTypes.h:64
dd4hep::ConstantField::direction
Direction direction
Field direction.
Definition: FieldTypes.h:38
Shapes.h
dd4hep::MultipoleField::transform
Transform3D transform
Position transformation of the field. Only stored here for reference.
Definition: FieldTypes.h:168
dd4hep::DipoleField::DipoleField
DipoleField()
Initializing constructor.
Definition: FieldTypes.cpp:71
dd4hep::ConstantField::FIELD_TRANSLATED
@ FIELD_TRANSLATED
Definition: FieldTypes.h:36
dd4hep::SolenoidField::SolenoidField
SolenoidField()
Initializing constructor.
Definition: FieldTypes.cpp:51
dd4hep::MultipoleField::fieldComponents
virtual void fieldComponents(const double *pos, double *field)
Call to access the field components at a given location.
Definition: FieldTypes.cpp:110
dd4hep::MultipoleField::rotation
Rotation3D rotation
The rotation part of the transformation. Need to rotate the field.
Definition: FieldTypes.h:172
dd4hep::Transform3D
ROOT::Math::Transform3D Transform3D
Definition: Objects.h:116
dd4hep::MultipoleField::MultipoleField
MultipoleField()
Initializing constructor.
Definition: FieldTypes.cpp:105
dd4hep::SolenoidField::outerField
double outerField
Definition: FieldTypes.h:63
dd4hep::MultipoleField::skews
Coefficents skews
Multi-pole skews.
Definition: FieldTypes.h:164
dd4hep::MultipoleField::inverse
Transform3D inverse
Inverse position transformation of the field.
Definition: FieldTypes.h:170
dd4hep::MultipoleField::volume
Solid volume
Boundary volume (optional)
Definition: FieldTypes.h:166
dd4hep
Namespace for the AIDA detector description toolkit.
Definition: AlignmentsCalib.h:28
dd4hep::MultipoleField::translation
Transform3D::Point translation
Translation of the transformation.
Definition: FieldTypes.h:180
dd4hep::MultipoleField::coefficents
Coefficents coefficents
Multi-pole coefficients.
Definition: FieldTypes.h:162
dd4hep::ConstantField::flag
unsigned char flag
The access to the field will be optimized. Remember properties.
Definition: FieldTypes.h:44
dd4hep::SolenoidField::outerRadius
double outerRadius
Definition: FieldTypes.h:67
Fields.h
dd4hep::SolenoidField::innerField
double innerField
Definition: FieldTypes.h:62
dd4hep::MultipoleField::flag
unsigned char flag
The access to the field will be optimized. Remember properties.
Definition: FieldTypes.h:178
dd4hep::SolenoidField
Implementation object of a solenoidal magnetic field.
Definition: FieldTypes.h:60
dd4hep::ConstantField::volume
Solid volume
Boundary volume (optional)
Definition: FieldTypes.h:40