|
CbmRoot
|
alignment body accessor and property handler More...
#include <CbmBbaAlignmentBody.h>
Public Member Functions | |
| AlignmentBody ()=default | |
| Default constructor. | |
| AlignmentBody (double shiftX, double shiftY, double shiftZ, double rotX, double rotY, double rotZ) | |
| Constructor with individual parameters for alignment bodies not associated with a geo node (no pre-existing alignment possible) | |
| AlignmentBody (const std::string nodePath) | |
| Constructor. | |
| ~AlignmentBody ()=default | |
| Destructor. | |
| bool | IsValid () const |
| bool | CreateFromGeoNode (const std::string nodePath) |
| void | ActivateParameters (const std::array< bool, NofParameters > &isParActive) |
| bool | IsParameterActive (int i) const |
| void | SetParameters (double shiftX=0., double shiftY=0., double shiftZ=0., double rotX=0., double rotY=0., double rotZ=0.) |
| const std::string & | GetNodePath () const |
| Get the full path to the node in the ROOT geometry. | |
| const TGeoHMatrix & | GetGlobalTransform () const |
| Get the transformation of the aligment body to the glaobal coordinates. | |
| std::array< double, 3 > | ApplyAlignmentToHit (const std::array< double, 3 > hit) const |
| Apply the alignment to hit: return = fHitTransform * hit. | |
| std::array< double, 3 > | ApplyInverseAlignmentToHit (const std::array< double, 3 > hit) const |
| Apply the inverse alignment to hit: return = fHitTransform^{-1} * hit. | |
| const std::array< double, NofParameters > & | GetParameters () const |
| Get the alignment parameters. | |
| void | GetParameters (double *par) const |
| const std::array< double, NofParameters > & | GetInitialParameters () const |
| Get the initial alignment parameters. | |
| const TGeoHMatrix & | GetAlignmentMatrix () const |
| Get the transformation matrix of the alignment body. | |
| const TGeoHMatrix & | GetHitTransform () const |
| Get the transformation of the initially aligned {x,y,z} to the newly aligned {x,y,z} in the global coordinates. | |
| void | SetStatistics (long statistics) |
| Set the statistics for the alignment body. | |
| void | IncrementStatistics (int increment) |
| Increment the statistics for the alignment body. | |
| long | GetStatistics () const |
| Get the statistics for the alignment body. | |
| int | GetTrackingStation () const |
| Get the Tracking Station index. | |
| void | SetTrackingStation (int station) |
| Set the Tracking Station index. | |
Static Public Attributes | |
| static constexpr int | NofParameters = 6 |
| number of alignment parameters | |
Private Member Functions | |
| ClassDefNV (AlignmentBody, 0) | |
Private Attributes | |
| int | fTrackingStation {-1} |
| bool | fIsValid {false} |
| flag indicating if the alignment body is valid | |
| std::string | fNodePath {} |
| full path to the node in the root geometry | |
| std::array< double, NofParameters > | fPar {0.} |
| alignment parameters: shiftX, shiftY, shiftZ, rotX, rotY, rotZ | |
| std::array< bool, NofParameters > | fIsParActive {false} |
| flags for the parameters to be aligned | |
| std::array< double, NofParameters > | fPar0 {0.} |
| initial alignment parameters | |
| TGeoHMatrix | fAlignment |
| transformation matrix of the alignment body. Corresponds to the fPar values. | |
| TGeoHMatrix | fGlobal |
| global transformation matrix of the alignment body | |
| TGeoHMatrix | fGlobalInv |
| inverse of the global transformation matrix | |
| TGeoHMatrix | fGlobalNominal |
| nominal global transformation matrix, without (pre-)alignment | |
| TGeoHMatrix | fHitTransform |
| long | fStatistics {0} |
| additional information | |
alignment body accessor and property handler
it represents one TGeoNode in the ROOT geometry
The alignment body is a class that represents an alignable component of the detector. It contains the transformation matrices and manages the transformation of the hits associated with the alignment body. There are six alignment parameters:
The position and orientation of the alignment body in the global coordinate system is defined by a global transformation matrix fGlobal. The alignment correction itself is represented by the matrix fAlignment, which is constructed from the alignment parameters.
To transform initially aligned {x,y,z} hits to the newly aligned {x,y,z} in global coordinates, the transformation
![\[ HitTransform \]](form_3.png)
is defined as:
![\[ HitTransform = GlobalNominal \cdot A \cdot (GlobalNominal \cdot A_{0})^{-1} \]](form_4.png)
where:
![\[ GlobalNominal \]](form_5.png)
![\[ A \]](form_6.png)
![\[ A_{0} \]](form_7.png)
![\[ A_{0} \]](form_7.png)
The matices GlobalNominal and A0 are calculated from the ROOT geometry as follows: The local to global transformation
![\[ Global \]](form_8.png)
for the geo node is defined as:
![\[ Global = GlobalNominal \cdot A_{0} = GlobalMother \cdot (LocalNominal \cdot A_{0}) \]](form_9.png)
where:
Definition at line 47 of file CbmBbaAlignmentBody.h.
|
default |
Default constructor.
Referenced by ClassDefNV().
|
explicit |
Constructor with individual parameters for alignment bodies not associated with a geo node (no pre-existing alignment possible)
| six | individual parameters: shiftX, shiftY, shiftZ, rotX, rotY, rotZ |
Definition at line 31 of file CbmBbaAlignmentBody.cxx.
References fAlignment, fGlobal, fGlobalInv, fGlobalNominal, fHitTransform, and fIsValid.
| cbm::bba::AlignmentBody::AlignmentBody | ( | const std::string | nodePath | ) |
Constructor.
| nodePath | full path to the node in the ROOT geometry |
Definition at line 59 of file CbmBbaAlignmentBody.cxx.
References CreateFromGeoNode().
|
default |
Destructor.
| void cbm::bba::AlignmentBody::ActivateParameters | ( | const std::array< bool, NofParameters > & | isParActive | ) |
Definition at line 148 of file CbmBbaAlignmentBody.cxx.
References fIsParActive.
| std::array< double, 3 > cbm::bba::AlignmentBody::ApplyAlignmentToHit | ( | const std::array< double, 3 > | hit | ) | const |
Apply the alignment to hit: return = fHitTransform * hit.
Definition at line 177 of file CbmBbaAlignmentBody.cxx.
References fHitTransform.
| std::array< double, 3 > cbm::bba::AlignmentBody::ApplyInverseAlignmentToHit | ( | const std::array< double, 3 > | hit | ) | const |
Apply the inverse alignment to hit: return = fHitTransform^{-1} * hit.
Definition at line 186 of file CbmBbaAlignmentBody.cxx.
References fHitTransform.
|
private |
References AlignmentBody().
| bool cbm::bba::AlignmentBody::CreateFromGeoNode | ( | const std::string | nodePath | ) |
Definition at line 61 of file CbmBbaAlignmentBody.cxx.
References fAlignment, fGlobal, fGlobalInv, fGlobalNominal, fHitTransform, fIsValid, and fNodePath.
Referenced by AlignmentBody().
|
inline |
Get the transformation matrix of the alignment body.
Definition at line 96 of file CbmBbaAlignmentBody.h.
References fAlignment.
|
inline |
Get the transformation of the aligment body to the glaobal coordinates.
Definition at line 79 of file CbmBbaAlignmentBody.h.
References fGlobal.
|
inline |
Get the transformation of the initially aligned {x,y,z} to the newly aligned {x,y,z} in the global coordinates.
Definition at line 100 of file CbmBbaAlignmentBody.h.
References fHitTransform.
|
inline |
Get the initial alignment parameters.
Definition at line 93 of file CbmBbaAlignmentBody.h.
References fPar0.
|
inline |
Get the full path to the node in the ROOT geometry.
Definition at line 76 of file CbmBbaAlignmentBody.h.
References fNodePath.
|
inline |
| void cbm::bba::AlignmentBody::GetParameters | ( | double * | par | ) | const |
Definition at line 196 of file CbmBbaAlignmentBody.cxx.
References fPar, and NofParameters.
|
inline |
Get the statistics for the alignment body.
Definition at line 109 of file CbmBbaAlignmentBody.h.
References fStatistics.
|
inline |
Get the Tracking Station index.
Definition at line 112 of file CbmBbaAlignmentBody.h.
References fTrackingStation.
|
inline |
Increment the statistics for the alignment body.
Definition at line 106 of file CbmBbaAlignmentBody.h.
References fStatistics.
|
inline |
Definition at line 70 of file CbmBbaAlignmentBody.h.
References fIsParActive.
|
inline |
Definition at line 64 of file CbmBbaAlignmentBody.h.
References fIsValid.
| void cbm::bba::AlignmentBody::SetParameters | ( | double | shiftX = 0., |
| double | shiftY = 0., | ||
| double | shiftZ = 0., | ||
| double | rotX = 0., | ||
| double | rotY = 0., | ||
| double | rotZ = 0. ) |
Definition at line 154 of file CbmBbaAlignmentBody.cxx.
References fAlignment, fGlobalInv, fGlobalNominal, fHitTransform, and fPar.
|
inline |
Set the statistics for the alignment body.
Definition at line 103 of file CbmBbaAlignmentBody.h.
References fStatistics.
|
inline |
Set the Tracking Station index.
Definition at line 115 of file CbmBbaAlignmentBody.h.
References fTrackingStation.
|
private |
transformation matrix of the alignment body. Corresponds to the fPar values.
Definition at line 131 of file CbmBbaAlignmentBody.h.
Referenced by AlignmentBody(), CreateFromGeoNode(), GetAlignmentMatrix(), and SetParameters().
|
private |
global transformation matrix of the alignment body
Definition at line 133 of file CbmBbaAlignmentBody.h.
Referenced by AlignmentBody(), CreateFromGeoNode(), and GetGlobalTransform().
|
private |
inverse of the global transformation matrix
Definition at line 134 of file CbmBbaAlignmentBody.h.
Referenced by AlignmentBody(), CreateFromGeoNode(), and SetParameters().
|
private |
nominal global transformation matrix, without (pre-)alignment
Definition at line 135 of file CbmBbaAlignmentBody.h.
Referenced by AlignmentBody(), CreateFromGeoNode(), and SetParameters().
|
private |
transformation of the global hit {x,y,z} to the newly aligned {x,y,z} in global coordinates fGlobalTransform * fAlignment * (fGlobalTransform)^{-1} TODO
Definition at line 137 of file CbmBbaAlignmentBody.h.
Referenced by AlignmentBody(), ApplyAlignmentToHit(), ApplyInverseAlignmentToHit(), CreateFromGeoNode(), GetHitTransform(), and SetParameters().
|
private |
flags for the parameters to be aligned
Definition at line 126 of file CbmBbaAlignmentBody.h.
Referenced by ActivateParameters(), and IsParameterActive().
|
private |
flag indicating if the alignment body is valid
Definition at line 120 of file CbmBbaAlignmentBody.h.
Referenced by AlignmentBody(), CreateFromGeoNode(), and IsValid().
|
private |
full path to the node in the root geometry
Definition at line 122 of file CbmBbaAlignmentBody.h.
Referenced by CreateFromGeoNode(), and GetNodePath().
|
private |
alignment parameters: shiftX, shiftY, shiftZ, rotX, rotY, rotZ
Definition at line 124 of file CbmBbaAlignmentBody.h.
Referenced by GetParameters(), GetParameters(), and SetParameters().
|
private |
initial alignment parameters
Definition at line 129 of file CbmBbaAlignmentBody.h.
Referenced by GetInitialParameters().
|
private |
additional information
statistics for the alignment body
Definition at line 143 of file CbmBbaAlignmentBody.h.
Referenced by GetStatistics(), IncrementStatistics(), and SetStatistics().
|
private |
Definition at line 119 of file CbmBbaAlignmentBody.h.
Referenced by GetTrackingStation(), and SetTrackingStation().
|
staticconstexpr |
number of alignment parameters
Definition at line 62 of file CbmBbaAlignmentBody.h.
Referenced by GetParameters().