GeneralBrokenLines V03-01-01
using EIGEN
|
Detector layer. More...
#include <GblUtilities.h>
Public Member Functions | |
GblDetectorLayer (const std::string aName, const unsigned int aLayer, const int aDim, const double thickness, Eigen::Vector3d &aCenter, Eigen::Vector2d &aResolution, Eigen::Vector2d &aPrecision, Eigen::Matrix3d &measTrafo, Eigen::Matrix3d &alignTrafo) | |
Create a detector layer. More... | |
virtual | ~GblDetectorLayer () |
void | print () const |
Print GblDetectorLayer. More... | |
unsigned int | getLayerID () const |
Get layer ID. More... | |
double | getRadiationLength () const |
Get radiation length. More... | |
Eigen::Vector2d | getResolution () const |
Get resolution. More... | |
Eigen::Vector2d | getPrecision () const |
Get precision. More... | |
Eigen::Vector3d | getCenter () const |
Get center. More... | |
Eigen::Matrix3d | getMeasSystemDirs () const |
Get directions of measurement system. More... | |
Eigen::Matrix3d | getAlignSystemDirs () const |
Get directions of alignment system. More... | |
GblHelixPrediction | intersectWithHelix (GblSimpleHelix hlx) const |
Intersect with helix. More... | |
Eigen::Matrix< double, 3, 6 > | getRigidBodyDerGlobal (Eigen::Vector3d &position, Eigen::Vector3d &direction) const |
Get rigid body derivatives in global frame. More... | |
Eigen::Matrix< double, 2, 6 > | getRigidBodyDerLocal (Eigen::Vector3d &position, Eigen::Vector3d &direction) const |
Get rigid body derivatives in local (alignment) frame (rotated in measurement plane). More... | |
Eigen::Matrix< double, 6, 6 > | getTrafoGlobalToLocal (Eigen::Vector3d &offset, Eigen::Matrix3d &rotation) const |
Get transformation for rigid body derivatives from global to local (alignment) system. More... | |
Eigen::Matrix< double, 6, 6 > | getTrafoLocalToGlobal (Eigen::Vector3d &offset, Eigen::Matrix3d &rotation) const |
Get transformation for rigid body derivatives from local (alignment) to global system. More... | |
Private Attributes | |
std::string | name |
name More... | |
unsigned int | layer |
layer ID More... | |
unsigned int | measDim |
measurement dimension (1 or 2) More... | |
double | xbyx0 |
normalized material thickness More... | |
Eigen::Vector3d | center |
center More... | |
Eigen::Vector2d | resolution |
measurements resolution More... | |
Eigen::Vector2d | precision |
measurements precision More... | |
Eigen::Vector3d | udir |
Eigen::Vector3d | vdir |
Eigen::Vector3d | ndir |
normal to measurement plane More... | |
Eigen::Matrix3d | global2meas |
transformation into measurement system More... | |
Eigen::Matrix3d | global2align |
transformation into (local) alignment system More... | |
Detector layer.
Alignable (rigid body) planar detector layer.
Definition at line 107 of file GblUtilities.h.
gbl::GblDetectorLayer::GblDetectorLayer | ( | const std::string | aName, |
const unsigned int | aLayer, | ||
const int | aDim, | ||
const double | thickness, | ||
Eigen::Vector3d & | aCenter, | ||
Eigen::Vector2d & | aResolution, | ||
Eigen::Vector2d & | aPrecision, | ||
Eigen::Matrix3d & | measTrafo, | ||
Eigen::Matrix3d & | alignTrafo | ||
) |
Create a detector layer.
Create planar detector layer with 1D or 2D measurement (u,v).
[in] | aName | name |
[in] | aLayer | layer ID |
[in] | aDim | dimension (1,2) |
[in] | thickness | thickness / radiation_length |
[in] | aCenter | center of detector (origin of local systems) |
[in] | aResolution | resolution vector |
[in] | aPrecision | diagonal of precision matrix |
[in] | measTrafo | matrix of row vectors defining local measurement system |
[in] | alignTrafo | matrix of row vectors defining local alignment system |
Definition at line 353 of file GblUtilities.cpp.
References global2meas, ndir, udir, and vdir.
|
virtual |
Definition at line 366 of file GblUtilities.cpp.
Eigen::Matrix3d gbl::GblDetectorLayer::getAlignSystemDirs | ( | ) | const |
Get directions of alignment system.
Matrix from row vectors (transformation from global to alignment system)
Definition at line 416 of file GblUtilities.cpp.
References global2align.
Eigen::Vector3d gbl::GblDetectorLayer::getCenter | ( | ) | const |
Get center.
Definition at line 400 of file GblUtilities.cpp.
References center.
Referenced by GblDetectorLayer_intersectWithHelix().
unsigned int gbl::GblDetectorLayer::getLayerID | ( | ) | const |
Get layer ID.
Definition at line 380 of file GblUtilities.cpp.
References layer.
Referenced by exampleComposedGeo(), exampleComposedKin(), exampleDc(), and exampleSit().
Eigen::Matrix3d gbl::GblDetectorLayer::getMeasSystemDirs | ( | ) | const |
Get directions of measurement system.
Matrix from row vectors (transformation from global to measurement system)
Definition at line 408 of file GblUtilities.cpp.
References global2meas.
Referenced by exampleComposedGeo(), exampleComposedKin(), exampleDc(), exampleSit(), and GblDetectorLayer_intersectWithHelix().
Eigen::Vector2d gbl::GblDetectorLayer::getPrecision | ( | ) | const |
Get precision.
Definition at line 395 of file GblUtilities.cpp.
References precision.
Referenced by exampleComposedGeo(), exampleComposedKin(), exampleDc(), and exampleSit().
double gbl::GblDetectorLayer::getRadiationLength | ( | ) | const |
Get radiation length.
Definition at line 385 of file GblUtilities.cpp.
References xbyx0.
Referenced by exampleComposedGeo(), exampleComposedKin(), exampleDc(), exampleSit(), and GblDetectorLayer_getRadiationLength().
Eigen::Vector2d gbl::GblDetectorLayer::getResolution | ( | ) | const |
Get resolution.
Definition at line 390 of file GblUtilities.cpp.
References resolution.
Referenced by exampleComposedGeo(), and exampleComposedKin().
Matrix< double, 3, 6 > gbl::GblDetectorLayer::getRigidBodyDerGlobal | ( | Eigen::Vector3d & | position, |
Eigen::Vector3d & | direction | ||
) | const |
Get rigid body derivatives in global frame.
[in] | position | position (of prediction or measurement) |
[in] | direction | track direction |
Definition at line 434 of file GblUtilities.cpp.
References global2meas, and ndir.
Referenced by exampleComposedGeo(), exampleComposedKin(), and exampleDc().
Matrix< double, 2, 6 > gbl::GblDetectorLayer::getRigidBodyDerLocal | ( | Eigen::Vector3d & | position, |
Eigen::Vector3d & | direction | ||
) | const |
Get rigid body derivatives in local (alignment) frame (rotated in measurement plane).
The orthogonal alignment frame differs from measurement frame only by rotations around normal to measurement plane.
Equivalent to:
[in] | position | position (of prediction or measurement) |
[in] | direction | track direction |
Definition at line 469 of file GblUtilities.cpp.
References center, global2align, and global2meas.
Referenced by exampleSit().
Matrix< double, 6, 6 > gbl::GblDetectorLayer::getTrafoGlobalToLocal | ( | Eigen::Vector3d & | offset, |
Eigen::Matrix3d & | rotation | ||
) | const |
Get transformation for rigid body derivatives from global to local (alignment) system.
local = rotation * (global-offset)
[in] | offset | offset of alignment system |
[in] | rotation | rotation of alignment system |
Definition at line 497 of file GblUtilities.cpp.
Matrix< double, 6, 6 > gbl::GblDetectorLayer::getTrafoLocalToGlobal | ( | Eigen::Vector3d & | offset, |
Eigen::Matrix3d & | rotation | ||
) | const |
Get transformation for rigid body derivatives from local (alignment) to global system.
local = rotation * (global-offset)
[in] | offset | offset of alignment system |
[in] | rotation | rotation of alignment system |
Definition at line 516 of file GblUtilities.cpp.
GblHelixPrediction gbl::GblDetectorLayer::intersectWithHelix | ( | GblSimpleHelix | hlx | ) | const |
Intersect with helix.
[in] | hlx | helix |
Definition at line 424 of file GblUtilities.cpp.
References center, gbl::GblSimpleHelix::getPrediction(), udir, and vdir.
Referenced by exampleComposedGeo(), exampleComposedKin(), exampleDc(), and exampleSit().
void gbl::GblDetectorLayer::print | ( | ) | const |
Print GblDetectorLayer.
Definition at line 370 of file GblUtilities.cpp.
References center, layer, measDim, name, resolution, udir, vdir, and xbyx0.
Referenced by GblDetectorLayer_print().
|
private |
center
Definition at line 137 of file GblUtilities.h.
Referenced by getCenter(), getRigidBodyDerLocal(), intersectWithHelix(), and print().
|
private |
transformation into (local) alignment system
Definition at line 144 of file GblUtilities.h.
Referenced by getAlignSystemDirs(), and getRigidBodyDerLocal().
|
private |
transformation into measurement system
Definition at line 143 of file GblUtilities.h.
Referenced by GblDetectorLayer(), getMeasSystemDirs(), getRigidBodyDerGlobal(), and getRigidBodyDerLocal().
|
private |
|
private |
measurement dimension (1 or 2)
Definition at line 135 of file GblUtilities.h.
Referenced by print().
|
private |
|
private |
normal to measurement plane
Definition at line 142 of file GblUtilities.h.
Referenced by GblDetectorLayer(), and getRigidBodyDerGlobal().
|
private |
|
private |
measurements resolution
Definition at line 138 of file GblUtilities.h.
Referenced by getResolution(), and print().
|
private |
Definition at line 140 of file GblUtilities.h.
Referenced by GblDetectorLayer(), intersectWithHelix(), and print().
|
private |
Definition at line 141 of file GblUtilities.h.
Referenced by GblDetectorLayer(), intersectWithHelix(), and print().
|
private |
normalized material thickness
Definition at line 136 of file GblUtilities.h.
Referenced by getRadiationLength(), and print().