GeneralBrokenLines V03-01-03
using EIGEN
Public Member Functions | Private Attributes | List of all members
gbl::GblDetectorLayer Class Reference

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...
 

Detailed Description

Detector layer.

Alignable (rigid body) planar detector layer.

Definition at line 107 of file GblUtilities.h.

Constructor & Destructor Documentation

◆ GblDetectorLayer()

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).

Parameters
[in]aNamename
[in]aLayerlayer ID
[in]aDimdimension (1,2)
[in]thicknessthickness / radiation_length
[in]aCentercenter of detector (origin of local systems)
[in]aResolutionresolution vector
[in]aPrecisiondiagonal of precision matrix
[in]measTrafomatrix of row vectors defining local measurement system
[in]alignTrafomatrix of row vectors defining local alignment system

Definition at line 353 of file GblUtilities.cpp.

References alignInMeasSys, global2align, global2meas, ndir, udir, and vdir.

◆ ~GblDetectorLayer()

gbl::GblDetectorLayer::~GblDetectorLayer ( )
virtual

Definition at line 367 of file GblUtilities.cpp.

Member Function Documentation

◆ getAlignSystemDirs()

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.

◆ getCenter()

Eigen::Vector3d gbl::GblDetectorLayer::getCenter ( ) const

Get center.

Definition at line 434 of file GblUtilities.cpp.

References center.

Referenced by GblDetectorLayer_intersectWithHelix().

◆ getLayerID()

unsigned int gbl::GblDetectorLayer::getLayerID ( ) const

Get layer ID.

Definition at line 414 of file GblUtilities.cpp.

References layer.

Referenced by exampleComposedGeo(), and exampleComposedKin().

◆ getMeasSystemDirs()

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().

◆ getPrecision()

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().

◆ getRadiationLength()

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().

◆ getResolution()

Eigen::Vector2d gbl::GblDetectorLayer::getResolution ( ) const

Get resolution.

Definition at line 424 of file GblUtilities.cpp.

References resolution.

Referenced by exampleComposedGeo(), and exampleComposedKin().

◆ getRigidBodyDerGlobal()

Matrix< double, 3, 6 > gbl::GblDetectorLayer::getRigidBodyDerGlobal ( Eigen::Vector3d &  position,
Eigen::Vector3d &  direction 
) const

Get rigid body derivatives in global frame.

Parameters
[in]positionposition (of prediction or measurement)
[in]directiontrack direction

Definition at line 468 of file GblUtilities.cpp.

References global2meas, and ndir.

Referenced by exampleComposedGeo(), exampleComposedKin(), and exampleDc().

◆ getRigidBodyDerLocal()

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:

Eigen::Vector3d center
center
Definition: GblUtilities.h:139
Eigen::Matrix< double, 3, 6 > getRigidBodyDerGlobal(Eigen::Vector3d &position, Eigen::Vector3d &direction) const
Get rigid body derivatives in global frame.
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.
Eigen::Matrix3d global2align
transformation into (local) alignment system
Definition: GblUtilities.h:146
Parameters
[in]positionposition (of prediction or measurement)
[in]directiontrack direction

Definition at line 503 of file GblUtilities.cpp.

References alignInMeasSys, center, global2align, and global2meas.

Referenced by exampleSit().

◆ getRigidBodyGlobalLabel()

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().

◆ getTrafoGlobalToLocal()

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)

Parameters
[in]offsetoffset of alignment system
[in]rotationrotation of alignment system

Definition at line 534 of file GblUtilities.cpp.

◆ getTrafoLocalToGlobal()

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)

Parameters
[in]offsetoffset of alignment system
[in]rotationrotation of alignment system

Definition at line 553 of file GblUtilities.cpp.

◆ intersectWithHelix()

GblHelixPrediction gbl::GblDetectorLayer::intersectWithHelix ( GblSimpleHelix  hlx) const

Intersect with helix.

Parameters
[in]hlxhelix

Definition at line 458 of file GblUtilities.cpp.

References center, gbl::GblSimpleHelix::getPrediction(), udir, and vdir.

Referenced by exampleComposedGeo(), exampleComposedKin(), exampleDc(), and exampleSit().

◆ print()

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().

◆ printMP2Constraint()

void gbl::GblDetectorLayer::printMP2Constraint ( ) const

Print MP2 constraint.

Definition at line 386 of file GblUtilities.cpp.

References alignInMeasSys, getRigidBodyGlobalLabel(), global2align, measDim, name, and vdir.

Member Data Documentation

◆ alignInMeasSys

bool gbl::GblDetectorLayer::alignInMeasSys
private

alignment == measurement system?

Definition at line 147 of file GblUtilities.h.

Referenced by GblDetectorLayer(), getRigidBodyDerLocal(), and printMP2Constraint().

◆ center

Eigen::Vector3d gbl::GblDetectorLayer::center
private

center

Definition at line 139 of file GblUtilities.h.

Referenced by getCenter(), getRigidBodyDerLocal(), intersectWithHelix(), and print().

◆ global2align

Eigen::Matrix3d gbl::GblDetectorLayer::global2align
private

transformation into (local) alignment system

Definition at line 146 of file GblUtilities.h.

Referenced by GblDetectorLayer(), getAlignSystemDirs(), getRigidBodyDerLocal(), and printMP2Constraint().

◆ global2meas

Eigen::Matrix3d gbl::GblDetectorLayer::global2meas
private

transformation into measurement system

Definition at line 145 of file GblUtilities.h.

Referenced by GblDetectorLayer(), getMeasSystemDirs(), getRigidBodyDerGlobal(), and getRigidBodyDerLocal().

◆ layer

unsigned int gbl::GblDetectorLayer::layer
private

layer ID

Definition at line 136 of file GblUtilities.h.

Referenced by getLayerID(), getRigidBodyGlobalLabel(), and print().

◆ measDim

unsigned int gbl::GblDetectorLayer::measDim
private

measurement dimension (1 or 2)

Definition at line 137 of file GblUtilities.h.

Referenced by print(), and printMP2Constraint().

◆ name

std::string gbl::GblDetectorLayer::name
private

name

Definition at line 135 of file GblUtilities.h.

Referenced by print(), and printMP2Constraint().

◆ ndir

Eigen::Vector3d gbl::GblDetectorLayer::ndir
private

normal to measurement plane

Definition at line 144 of file GblUtilities.h.

Referenced by GblDetectorLayer(), and getRigidBodyDerGlobal().

◆ precision

Eigen::Vector2d gbl::GblDetectorLayer::precision
private

measurements precision

Definition at line 141 of file GblUtilities.h.

Referenced by getPrecision().

◆ resolution

Eigen::Vector2d gbl::GblDetectorLayer::resolution
private

measurements resolution

Definition at line 140 of file GblUtilities.h.

Referenced by getResolution(), and print().

◆ udir

Eigen::Vector3d gbl::GblDetectorLayer::udir
private
  1. measurement direction

Definition at line 142 of file GblUtilities.h.

Referenced by GblDetectorLayer(), intersectWithHelix(), and print().

◆ vdir

Eigen::Vector3d gbl::GblDetectorLayer::vdir
private
  1. measurement direction

Definition at line 143 of file GblUtilities.h.

Referenced by GblDetectorLayer(), intersectWithHelix(), print(), and printMP2Constraint().

◆ xbyx0

double gbl::GblDetectorLayer::xbyx0
private

normalized material thickness

Definition at line 138 of file GblUtilities.h.

Referenced by getRadiationLength(), and print().


The documentation for this class was generated from the following files: