LDMX Software
BFieldDistortion Struct Reference

A deliberate mis-placement of the reconstruction magnetic field, used to quantify how well we need to know where the dipole sits before the reconstructed momentum scale is biased. More...

#include <BFieldXYZUtils.h>

Public Member Functions

Acts::RotationMatrix3 rotationMatrix () const
 Rz(gamma) * Ry(beta) * Rx(alpha)
 
bool isNominal () const
 Exact comparison on purpose: the nominal case reuses the default transforms unchanged, so an unconfigured job gets bit-for-bit the field it got before these knobs existed.
 

Public Attributes

Acts::Vector3 translation_ {Acts::Vector3::Zero()}
 displacement of the magnet [mm]
 
Acts::Vector3 rotation_ {Acts::Vector3::Zero()}
 rotation about x, y, z through pivot [rad]
 
Acts::Vector3 pivot_ {-DIPOLE_OFFSET, 0., 0.}
 centre of rotation [mm], default the field-map origin
 
double scale_ {1.}
 overall scaling of the field strength
 

Detailed Description

A deliberate mis-placement of the reconstruction magnetic field, used to quantify how well we need to know where the dipole sits before the reconstructed momentum scale is biased.

The simulation is untouched.

Applied as an inverse coordinate transform at lookup time: the query point is moved back into the nominal map frame, and the returned field is rotated and rescaled on the way out.

Members are in the ACTS frame; the configuration is in the LDMX global frame, see tracking::reco::TrackingGeometryUser::bFieldDistortion().

Definition at line 63 of file BFieldXYZUtils.h.

Member Function Documentation

◆ isNominal()

bool BFieldDistortion::isNominal ( ) const
inline

Exact comparison on purpose: the nominal case reuses the default transforms unchanged, so an unconfigured job gets bit-for-bit the field it got before these knobs existed.

rot * (pos - pivot) + pivot would not.

Definition at line 86 of file BFieldXYZUtils.h.

86 {
87 return translation_.isZero(0.) && rotation_.isZero(0.) && scale_ == 1.;
88 }
double scale_
overall scaling of the field strength
Acts::Vector3 rotation_
rotation about x, y, z through pivot [rad]
Acts::Vector3 translation_
displacement of the magnet [mm]

References rotation_, scale_, and translation_.

Referenced by tracking::reco::TrackingGeometryUser::loadBField().

◆ rotationMatrix()

Acts::RotationMatrix3 BFieldDistortion::rotationMatrix ( ) const
inline

Rz(gamma) * Ry(beta) * Rx(alpha)

Definition at line 74 of file BFieldXYZUtils.h.

74 {
75 return (Acts::AngleAxis3(rotation_(2), Acts::Vector3::UnitZ()) *
76 Acts::AngleAxis3(rotation_(1), Acts::Vector3::UnitY()) *
77 Acts::AngleAxis3(rotation_(0), Acts::Vector3::UnitX()))
78 .toRotationMatrix();
79 }

References rotation_.

Referenced by tracking::reco::TrackingGeometryUser::loadBField().

Member Data Documentation

◆ pivot_

Acts::Vector3 BFieldDistortion::pivot_ {-DIPOLE_OFFSET, 0., 0.}

centre of rotation [mm], default the field-map origin

Definition at line 69 of file BFieldXYZUtils.h.

69{-DIPOLE_OFFSET, 0., 0.};

Referenced by tracking::reco::TrackingGeometryUser::bFieldDistortion(), and tracking::reco::TrackingGeometryUser::loadBField().

◆ rotation_

Acts::Vector3 BFieldDistortion::rotation_ {Acts::Vector3::Zero()}

rotation about x, y, z through pivot [rad]

Definition at line 67 of file BFieldXYZUtils.h.

67{Acts::Vector3::Zero()};

Referenced by tracking::reco::TrackingGeometryUser::bFieldDistortion(), isNominal(), tracking::reco::TrackingGeometryUser::loadBField(), and rotationMatrix().

◆ scale_

double BFieldDistortion::scale_ {1.}

overall scaling of the field strength

Definition at line 71 of file BFieldXYZUtils.h.

71{1.};

Referenced by tracking::reco::TrackingGeometryUser::bFieldDistortion(), isNominal(), and tracking::reco::TrackingGeometryUser::loadBField().

◆ translation_

Acts::Vector3 BFieldDistortion::translation_ {Acts::Vector3::Zero()}

displacement of the magnet [mm]

Definition at line 65 of file BFieldXYZUtils.h.

65{Acts::Vector3::Zero()};

Referenced by tracking::reco::TrackingGeometryUser::bFieldDistortion(), isNominal(), and tracking::reco::TrackingGeometryUser::loadBField().


The documentation for this struct was generated from the following file: