GeneralBrokenLines V03-01-03
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... | |
void | printMP2Constraint () const |
Print MP2 constraint. More... | |
unsigned int | getRigidBodyGlobalLabel (const unsigned int aPar) const |
Get global label. 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... | |
bool | alignInMeasSys |
alignment == measurement 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 alignInMeasSys, global2align, global2meas, ndir, udir, and vdir.
|
virtual |
Definition at line 367 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 450 of file GblUtilities.cpp.
References global2align.
Eigen::Vector3d gbl::GblDetectorLayer::getCenter | ( | ) | const |
Get center.
Definition at line 434 of file GblUtilities.cpp.
References center.
Referenced by GblDetectorLayer_intersectWithHelix().
unsigned int gbl::GblDetectorLayer::getLayerID | ( | ) | const |
Get layer ID.
Definition at line 414 of file GblUtilities.cpp.
References layer.
Referenced by exampleComposedGeo(), and exampleComposedKin().
Eigen::Matrix3d gbl::GblDetectorLayer::getMeasSystemDirs | ( | ) | const |
Get directions of measurement system.
Matrix from row vectors (transformation from global to measurement system)
Definition at line 442 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 429 of file GblUtilities.cpp.
References precision.
Referenced by exampleComposedGeo(), exampleComposedKin(), exampleDc(), and exampleSit().
double gbl::GblDetectorLayer::getRadiationLength | ( | ) | const |
Get radiation length.
Definition at line 419 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 424 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 468 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 503 of file GblUtilities.cpp.
References alignInMeasSys, center, global2align, and global2meas.
Referenced by exampleSit().
unsigned int gbl::GblDetectorLayer::getRigidBodyGlobalLabel | ( | const unsigned int | aPar | ) | const |
Get global label.
Definition at line 408 of file GblUtilities.cpp.
References layer.
Referenced by exampleDc(), exampleSit(), and printMP2Constraint().
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 534 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 553 of file GblUtilities.cpp.
GblHelixPrediction gbl::GblDetectorLayer::intersectWithHelix | ( | GblSimpleHelix | hlx | ) | const |
Intersect with helix.
[in] | hlx | helix |
Definition at line 458 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 371 of file GblUtilities.cpp.
References center, layer, measDim, name, resolution, udir, vdir, and xbyx0.
Referenced by GblDetectorLayer_print().
void gbl::GblDetectorLayer::printMP2Constraint | ( | ) | const |
Print MP2 constraint.
Definition at line 386 of file GblUtilities.cpp.
References alignInMeasSys, getRigidBodyGlobalLabel(), global2align, measDim, name, and vdir.
|
private |
alignment == measurement system?
Definition at line 147 of file GblUtilities.h.
Referenced by GblDetectorLayer(), getRigidBodyDerLocal(), and printMP2Constraint().
|
private |
center
Definition at line 139 of file GblUtilities.h.
Referenced by getCenter(), getRigidBodyDerLocal(), intersectWithHelix(), and print().
|
private |
transformation into (local) alignment system
Definition at line 146 of file GblUtilities.h.
Referenced by GblDetectorLayer(), getAlignSystemDirs(), getRigidBodyDerLocal(), and printMP2Constraint().
|
private |
transformation into measurement system
Definition at line 145 of file GblUtilities.h.
Referenced by GblDetectorLayer(), getMeasSystemDirs(), getRigidBodyDerGlobal(), and getRigidBodyDerLocal().
|
private |
layer ID
Definition at line 136 of file GblUtilities.h.
Referenced by getLayerID(), getRigidBodyGlobalLabel(), and print().
|
private |
measurement dimension (1 or 2)
Definition at line 137 of file GblUtilities.h.
Referenced by print(), and printMP2Constraint().
|
private |
name
Definition at line 135 of file GblUtilities.h.
Referenced by print(), and printMP2Constraint().
|
private |
normal to measurement plane
Definition at line 144 of file GblUtilities.h.
Referenced by GblDetectorLayer(), and getRigidBodyDerGlobal().
|
private |
|
private |
measurements resolution
Definition at line 140 of file GblUtilities.h.
Referenced by getResolution(), and print().
|
private |
Definition at line 142 of file GblUtilities.h.
Referenced by GblDetectorLayer(), intersectWithHelix(), and print().
|
private |
Definition at line 143 of file GblUtilities.h.
Referenced by GblDetectorLayer(), intersectWithHelix(), print(), and printMP2Constraint().
|
private |
normalized material thickness
Definition at line 138 of file GblUtilities.h.
Referenced by getRadiationLength(), and print().