DD4hep  1.30.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:
38  public:
40  ConstantField() = default;
42  virtual void fieldComponents(const double* /* pos */, double* field);
43  };
44 
46 
54  public:
55  double innerField;
56  double outerField;
57  double minZ;
58  double maxZ;
59  double innerRadius;
60  double outerRadius;
61 
62  public:
64  SolenoidField();
66  virtual void fieldComponents(const double* pos, double* field);
67  };
68 
70 
78  public:
79  double zmax;
80  double zmin;
81  double rmax;
83  public:
85  DipoleField();
87  virtual void fieldComponents(const double* pos, double* field);
88  };
89 
91 
153  public:
167  double B_z { 0e0 };
168 
169  private:
171  unsigned char flag { 0 };
173  Transform3D::Point translation { };
174  public:
176  MultipoleField();
178  virtual void fieldComponents(const double* pos, double* field);
179  };
180 
181 } /* End namespace dd4hep */
182 #endif // DD4HEP_FIELDTYPES_H
dd4hep::DipoleField::zmin
double zmin
Definition: FieldTypes.h:80
dd4hep::DipoleField::rmax
double rmax
Definition: FieldTypes.h:81
dd4hep::MultipoleField
Implementation object of a Multipole magnetic field.
Definition: FieldTypes.h:152
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:113
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:77
dd4hep::ConstantField::fieldComponents
virtual void fieldComponents(const double *, double *field)
Call to access the field components at a given location.
Definition: FieldTypes.cpp:41
dd4hep::SolenoidField::maxZ
double maxZ
Definition: FieldTypes.h:58
dd4hep::ConstantField
Implementation object of a field with constant strength.
Definition: FieldTypes.h:34
dd4hep::DipoleField::zmax
double zmax
Definition: FieldTypes.h:79
dd4hep::SolenoidField::innerRadius
double innerRadius
Definition: FieldTypes.h:59
dd4hep::SolenoidField::fieldComponents
virtual void fieldComponents(const double *pos, double *field)
Call to access the field components at a given location.
Definition: FieldTypes.cpp:55
dd4hep::DipoleField::coefficents
Coefficents coefficents
Definition: FieldTypes.h:82
dd4hep::DipoleField::fieldComponents
virtual void fieldComponents(const double *pos, double *field)
Call to access the field components at a given location.
Definition: FieldTypes.cpp:73
dd4hep::MultipoleField::B_z
double B_z
Constant Z field overlay.
Definition: FieldTypes.h:167
dd4hep::SolenoidField::minZ
double minZ
Definition: FieldTypes.h:57
dd4hep::ConstantField::direction
Direction direction
Field direction.
Definition: FieldTypes.h:37
Shapes.h
dd4hep::MultipoleField::transform
Transform3D transform
Position transformation of the field. Only stored here for reference.
Definition: FieldTypes.h:161
dd4hep::DipoleField::DipoleField
DipoleField()
Initializing constructor.
Definition: FieldTypes.cpp:68
dd4hep::SolenoidField::SolenoidField
SolenoidField()
Initializing constructor.
Definition: FieldTypes.cpp:48
dd4hep::MultipoleField::fieldComponents
virtual void fieldComponents(const double *pos, double *field)
Call to access the field components at a given location.
Definition: FieldTypes.cpp:106
dd4hep::MultipoleField::rotation
Rotation3D rotation
The rotation part of the transformation. Need to rotate the field.
Definition: FieldTypes.h:165
dd4hep::Transform3D
ROOT::Math::Transform3D Transform3D
Definition: Objects.h:117
dd4hep::MultipoleField::MultipoleField
MultipoleField()
Initializing constructor.
Definition: FieldTypes.cpp:101
dd4hep::SolenoidField::outerField
double outerField
Definition: FieldTypes.h:56
dd4hep::MultipoleField::skews
Coefficents skews
Multi-pole skews.
Definition: FieldTypes.h:157
dd4hep::MultipoleField::inverse
Transform3D inverse
Inverse position transformation of the field.
Definition: FieldTypes.h:163
dd4hep::MultipoleField::volume
Solid volume
Boundary volume (optional)
Definition: FieldTypes.h:159
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:173
dd4hep::MultipoleField::coefficents
Coefficents coefficents
Multi-pole coefficients.
Definition: FieldTypes.h:155
dd4hep::SolenoidField::outerRadius
double outerRadius
Definition: FieldTypes.h:60
Fields.h
dd4hep::SolenoidField::innerField
double innerField
Definition: FieldTypes.h:55
dd4hep::MultipoleField::flag
unsigned char flag
The access to the field will be optimized. Remember properties.
Definition: FieldTypes.h:171
dd4hep::SolenoidField
Implementation object of a solenoidal magnetic field.
Definition: FieldTypes.h:53