DD4hep  1.28.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 #include <vector>
20 
22 namespace dd4hep {
23 
25 
33  public:
36  public:
38  ConstantField() = default;
40  virtual void fieldComponents(const double* /* pos */, double* field);
41  };
42 
44 
52  public:
53  double innerField;
54  double outerField;
55  double minZ;
56  double maxZ;
57  double innerRadius;
58  double outerRadius;
59 
60  public:
62  SolenoidField();
64  virtual void fieldComponents(const double* pos, double* field);
65  };
66 
68 
76  public:
77  double zmax;
78  double zmin;
79  double rmax;
81  public:
83  DipoleField();
85  virtual void fieldComponents(const double* pos, double* field);
86  };
87 
89 
151  public:
165  double B_z { 0e0 };
166 
167  private:
169  unsigned char flag { 0 };
171  Transform3D::Point translation { };
172  public:
174  MultipoleField();
176  virtual void fieldComponents(const double* pos, double* field);
177  };
178 
179 } /* End namespace dd4hep */
180 #endif // DD4HEP_FIELDTYPES_H
dd4hep::DipoleField::zmin
double zmin
Definition: FieldTypes.h:78
dd4hep::DipoleField::rmax
double rmax
Definition: FieldTypes.h:79
dd4hep::MultipoleField
Implementation object of a Multipole magnetic field.
Definition: FieldTypes.h:150
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:75
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:56
dd4hep::ConstantField
Implementation object of a field with constant strength.
Definition: FieldTypes.h:32
dd4hep::DipoleField::zmax
double zmax
Definition: FieldTypes.h:77
dd4hep::SolenoidField::innerRadius
double innerRadius
Definition: FieldTypes.h:57
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:80
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:165
dd4hep::SolenoidField::minZ
double minZ
Definition: FieldTypes.h:55
dd4hep::ConstantField::direction
Direction direction
Field direction.
Definition: FieldTypes.h:35
Shapes.h
dd4hep::MultipoleField::transform
Transform3D transform
Position transformation of the field. Only stored here for reference.
Definition: FieldTypes.h:159
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:163
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:54
dd4hep::MultipoleField::skews
Coefficents skews
Multi-pole skews.
Definition: FieldTypes.h:155
dd4hep::MultipoleField::inverse
Transform3D inverse
Inverse position transformation of the field.
Definition: FieldTypes.h:161
dd4hep::MultipoleField::volume
Solid volume
Boundary volume (optional)
Definition: FieldTypes.h:157
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:171
dd4hep::MultipoleField::coefficents
Coefficents coefficents
Multi-pole coefficients.
Definition: FieldTypes.h:153
dd4hep::SolenoidField::outerRadius
double outerRadius
Definition: FieldTypes.h:58
Fields.h
dd4hep::SolenoidField::innerField
double innerField
Definition: FieldTypes.h:53
dd4hep::MultipoleField::flag
unsigned char flag
The access to the field will be optimized. Remember properties.
Definition: FieldTypes.h:169
dd4hep::SolenoidField
Implementation object of a solenoidal magnetic field.
Definition: FieldTypes.h:51