Classes | |
class | IGeometryErrorSvc |
class | IntersectionErrors |
class | Services |
This class is a container for accessors to different usefull services, namely the service locator, message service and the detector data provider. More... | |
Functions | |
const Gaudi::Transform3D | localToGlobalTransformation (const std::vector< double > &translationParams, const std::vector< double > &rotationParams, const std::vector< double > &pivotParams) |
Build the local to global transformation matrix given. | |
void | getZYXTransformParameters (const Gaudi::Transform3D &CDM, std::vector< double > &translationParams, std::vector< double > &rotationParams, const std::vector< double > &pivotParams=std::vector< double >(3, 0.)) |
Get the three rotation angles and three translation coordinates from a 3D transformation about a pivot point. | |
template<class ROT> | |
void | getZYXRotationParameters (const ROT &rotation, double &rotX, double &rotY, double &rotZ) |
Starting from any MathCore supported 3D rotation, obtain the equivalent Euler 321 rotation parameters. | |
int | compare (const double x1, const double x2, const double eps) |
Compare double/floating numbers. | |
int | compare (const double x1, const double x2) |
Compare double/floating numbers. | |
const std::string | print (const double value, const char *format="%9.3g") |
print double value using format | |
const std::string | print (const long value, const char *format="%d") |
print long value using format | |
Services * | services () |
Gets an instance of Services. | |
const Gaudi::Transform3D | localDeltaMatrix (const IDetectorElement *DE, const Gaudi::Transform3D &globalDelta) |
Obtain the 3D transformation that applies misalignment from nominal position in the frame of the detector element's parent. | |
const Gaudi::Transform3D | localDeltaMatrix (const IGeometryInfo *GI, const Gaudi::Transform3D &globalDelta) |
Obtain the 3D transformation that applies misalignment from nominal position in the frame of the detector element's parent. | |
void | localDeltaParameters (const IDetectorElement *DE, std::vector< double > &trans, std::vector< double > &rot, std::vector< double > &pivot) |
Transform the nine 3D transformation parameters from the global frame into the local one. | |
void | localDeltaParameters (const IGeometryInfo *GI, std::vector< double > &trans, std::vector< double > &rot, std::vector< double > &pivot) |
Transform the nine 3D transformation parameters from the global frame into the local one. | |
const Gaudi::Transform3D | localDeltaFromGlobalTransform (const IDetectorElement *DE, const Gaudi::Transform3D &globalTransform) |
Obtain the local delta transformation starting from a global position transformation. | |
const Gaudi::Transform3D | localDeltaFromGlobalTransform (const IGeometryInfo *GI, const Gaudi::Transform3D &globalTransform) |
Obtain the local delta transformation starting from a global position transformation. | |
const Gaudi::Transform3D | localDeltaFromParentTransform (const IDetectorElement *parentDE, const IDetectorElement *DE, const Gaudi::Transform3D &parentTransform) |
Obtain the local delta transformation starting from a position transformation from an arbitrary parent. | |
const Gaudi::Transform3D | localDeltaFromParentTransform (const IGeometryInfo *parentGI, const IGeometryInfo *GI, const Gaudi::Transform3D &parentTransform) |
Obtain the local delta transformation starting from a position transformation from an arbitrary parent. | |
const Gaudi::Transform3D | localDeltaFromAnyFrame (const Gaudi::Transform3D &frame, const IDetectorElement *DE, const Gaudi::Transform3D &toGlobalInFrame) |
Obtain the local delta transformation starting from a position transformation from an arbitrary frame. | |
const Gaudi::Transform3D | localDeltaFromAnyFrame (const Gaudi::Transform3D &frame, const IGeometryInfo *GI, const Gaudi::Transform3D &toGlobalInFrame) |
Obtain the local delta transformation starting from a position transformation from an arbitrary frame. | |
const Gaudi::Transform3D | localDeltaFromAnyFrameDelta (const Gaudi::Transform3D &frame, const IDetectorElement *DE, const Gaudi::Transform3D &deltaInFrame) |
Obtain the local delta transformation starting from an off-nominal transformation from an arbitrary frame. | |
const Gaudi::Transform3D | localDeltaFromAnyFrameDelta (const Gaudi::Transform3D &frame, const IGeometryInfo *GI, const Gaudi::Transform3D &deltaInFrame) |
Obtain the local delta transformation starting from an off-nominal transformation from an arbitrary frame. | |
const Gaudi::Transform3D | globalDeltaFromLocalDeltaPrime (const IDetectorElement *DE, const Gaudi::Transform3D &deltaPrime) |
Obtain a global off-nominal correction D_global on top of the current total transformation of detector element DE, T_global, starting from a correction D' calculated at the local level of DE such that. | |
const Gaudi::Transform3D | globalDeltaFromLocalDeltaPrime (const IGeometryInfo *GI, const Gaudi::Transform3D &deltaPrime) |
Obtain a global off-nominal correction D_global on top of the current total transformation of GeometryInfo GI, T_global, starting from a correction D' calculated at the local level of GI such that. | |
const Gaudi::Transform3D | globalDelta (const IDetectorElement *DE) |
Obtain the global "delta" transformation corresponding to detector element DE's local "delta" such that. | |
const Gaudi::Transform3D | globalDelta (const IGeometryInfo *GI) |
Obtain the global "delta" transformation corresponding to IGeometryInfo GI's local "delta" such that. | |
const Gaudi::Transform3D | relativeTransformation (const IDetectorElement *referenceDE, const IDetectorElement *DE) |
Obtain the 3D transformation, T_relative, representing the placement of DetectorElement DE in the frame of DetectorElement referenceDE. | |
const Gaudi::Transform3D | LHCb2SU () |
Get the LHCb -> SU 3D transformation. | |
const Gaudi::Transform3D | SU2LHCb () |
Get the SU -> LHCb 3D transformation. | |
template<typename Point> | |
const Point | LHCb2SU (const Point &point) |
Helper to transform any type of MathCore point. | |
template<typename Point> | |
const Point | SU2LHCb (const Point &point) |
Helper to transform any type of MathCore point. | |
Variables | |
const double | s_tolerance = 2.e-8 |
the relative tolerance of tick/intersection comparison |
single access point to several usefull methods and accessor. The main goal here is to cache references to very usefull services to avoid a call to Service::service from each small component or object.
Sebastien Ponce
const Gaudi::Transform3D DetDesc::localToGlobalTransformation | ( | const std::vector< double > & | translationParams, | |
const std::vector< double > & | rotationParams, | |||
const std::vector< double > & | pivotParams | |||
) |
Build the local to global transformation matrix given.
translationParams | vector containing the X,Y,Z coordinates of the translation part of the transformation | |
rotationParams | vector containing the rotation angles about the X,Y,Z axes. The rotation is applied in the following order: Z-Y'-X" | |
pivotParams | vector containing the X,Y,Z coordinates of a pivot point for the rotation part of the transformation. |
void DetDesc::getZYXTransformParameters | ( | const Gaudi::Transform3D & | CDM, | |
std::vector< double > & | translationParams, | |||
std::vector< double > & | rotationParams, | |||
const std::vector< double > & | pivotParams = std::vector< double >(3, 0.) | |||
) |
Get the three rotation angles and three translation coordinates from a 3D transformation about a pivot point.
CDM | 3D transformation object AKA cosine direction matrix | |
translationParams | vector containing X,Y and Z of translation transformation. | |
rotationParams | vector containing the rotations about the X,Y,Z axes. The rotations are applied in the following order: Z-Y'-X" | |
pivotParams | pivot point about which the 3D transformation is to be decomposed. |
void DetDesc::getZYXRotationParameters | ( | const ROT & | rotation, | |
double & | rotX, | |||
double & | rotY, | |||
double & | rotZ | |||
) |
Starting from any MathCore supported 3D rotation, obtain the equivalent Euler 321 rotation parameters.
Euler 321: Rotation about Z, Y', X" (co-moving axes)
rotation | Any Mathcore-supported 3D rotation | |
rotX | rotation angle about X" axis | |
rotY | rotation angle about Y' axis | |
rotZ | rotation angle about Z axis |
Definition at line 68 of file 3DTransformationFunctions.h.
00072 { 00073 ROOT::Math::RotationZYX euler321 = ROOT::Math::RotationZYX(rotation); 00074 euler321.GetComponents(rotZ, rotY, rotX); 00075 }
int DetDesc::compare | ( | const double | x1, | |
const double | x2, | |||
const double | eps | |||
) | [inline] |
Compare double/floating numbers.
x1 | the first value to be compared | |
x2 | the second valeu to be compared | |
eps | the RELATIVE precision |
Definition at line 33 of file Compare.h.
int DetDesc::compare | ( | const double | x1, | |
const double | x2 | |||
) | [inline] |
Compare double/floating numbers.
x1 | the first value to be compared | |
x2 | the second valeu to be compared |
Definition at line 47 of file Compare.h.
00049 { return DetDesc::compare ( x1 , x2 , s_tolerance ) ; }
const std::string DetDesc::print | ( | const double | value, | |
const char * | format = "%9.3g" | |||
) |
print double value using format
value | value to be printed | |
format | desirable format representation of the "value" |
const std::string DetDesc::print | ( | const long | value, | |
const char * | format = "%d" | |||
) |
print long value using format
value | value to be printed | |
format | desirable format representation of the "value" |
const Gaudi::Transform3D DetDesc::localDeltaMatrix | ( | const IDetectorElement * | DE, | |
const Gaudi::Transform3D & | globalDelta | |||
) |
Obtain the 3D transformation that applies misalignment from nominal position in the frame of the detector element's parent.
DE | detector element in question. | |
globalDelta | 3D transformation that takes global nominal position matrix and applies misalignment: Misaligned position matrix = globalDelta*M_nominal_global |
const Gaudi::Transform3D DetDesc::localDeltaMatrix | ( | const IGeometryInfo * | GI, | |
const Gaudi::Transform3D & | globalDelta | |||
) |
Obtain the 3D transformation that applies misalignment from nominal position in the frame of the detector element's parent.
GI | IGeometryInfo from detector element in question. | |
globalDelta | 3D transformation that takes global nominal position matrix and applies misalignment: Misaligned position matrix = globalDelta*M_nominal_global |
void DetDesc::localDeltaParameters | ( | const IDetectorElement * | DE, | |
std::vector< double > & | trans, | |||
std::vector< double > & | rot, | |||
std::vector< double > & | pivot | |||
) |
Transform the nine 3D transformation parameters from the global frame into the local one.
DE | Pointer to the IDetectorElement of the "local" detector element. | |
trans | global 3D translation parameters. Gets filled with local parameters. | |
rot | global 3D ZYX rotation parameters. Gets filled with local parameters. | |
pivot | global 3D pivot parameters. Gets filled with local pivot parameters. These are constant and get taken directly from the conditions database. |
void DetDesc::localDeltaParameters | ( | const IGeometryInfo * | GI, | |
std::vector< double > & | trans, | |||
std::vector< double > & | rot, | |||
std::vector< double > & | pivot | |||
) |
Transform the nine 3D transformation parameters from the global frame into the local one.
GI | Pointer to the IGeometryInfo of the "local" detector element. | |
trans | global 3D translation parameters. Gets filled with local parameters. | |
rot | global 3D ZYX rotation parameters. Gets filled with local parameters. | |
pivot | global 3D pivot parameters. Gets filled with local pivot parameters. These are constant and get taken directly from the conditions database. |
const Gaudi::Transform3D DetDesc::localDeltaFromGlobalTransform | ( | const IDetectorElement * | DE, | |
const Gaudi::Transform3D & | globalTransform | |||
) |
Obtain the local delta transformation starting from a global position transformation.
DE | detector element in question. | |
globalTransform | 3D transformation that describes the total "misaligned" global matrix T' Misaligned position matrix T' = T * globalDelta^-1 * globalDelta' |
const Gaudi::Transform3D DetDesc::localDeltaFromGlobalTransform | ( | const IGeometryInfo * | GI, | |
const Gaudi::Transform3D & | globalTransform | |||
) |
Obtain the local delta transformation starting from a global position transformation.
GI | the IGeometryInfo of the detector element in question | |
globalTransform | 3D transformation that describes the total "misaligned" global matrix T' Misaligned position matrix T' = T * globalDelta^-1 * globalDelta' |
const Gaudi::Transform3D DetDesc::localDeltaFromParentTransform | ( | const IDetectorElement * | parentDE, | |
const IDetectorElement * | DE, | |||
const Gaudi::Transform3D & | parentTransform | |||
) |
Obtain the local delta transformation starting from a position transformation from an arbitrary parent.
parentDE | the IDetectorElement of the parent with respect to which the position is taken | |
DE | detector element in question. | |
parentTransform | 3D transformation that describes the total "misaligned" global matrix T_k' in the frame of parentDE Misaligned position matrix T_k' = T_k * globalDelta^-1 * globalDelta' |
const Gaudi::Transform3D DetDesc::localDeltaFromParentTransform | ( | const IGeometryInfo * | parentGI, | |
const IGeometryInfo * | GI, | |||
const Gaudi::Transform3D & | parentTransform | |||
) |
Obtain the local delta transformation starting from a position transformation from an arbitrary parent.
parentGI | the IGeometryInfo of the parent with respect to which the position is taken | |
GI | the IGeometryInfo of the detector element in question | |
parentTransform | 3D transformation that describes the total "misaligned" global matrix T' in the frame of parentGI Misaligned position matrix T_k' = T_k * globalDelta^-1 * globalDelta' |
const Gaudi::Transform3D DetDesc::localDeltaFromAnyFrame | ( | const Gaudi::Transform3D & | frame, | |
const IDetectorElement * | DE, | |||
const Gaudi::Transform3D & | toGlobalInFrame | |||
) |
Obtain the local delta transformation starting from a position transformation from an arbitrary frame.
frame | the Transform3D of the frame with respect to which the position is taken | |
DE | the detector element in question | |
toGlobalInFrame | 3D transformation that describes the total "misaligned" global matrix T' in the frame of parentGI Misaligned position matrix T_k' = T_k * globalDelta^-1 * globalDelta' |
const Gaudi::Transform3D DetDesc::localDeltaFromAnyFrame | ( | const Gaudi::Transform3D & | frame, | |
const IGeometryInfo * | GI, | |||
const Gaudi::Transform3D & | toGlobalInFrame | |||
) |
Obtain the local delta transformation starting from a position transformation from an arbitrary frame.
frame | the Transform3D of the frame with respect to which the position is taken | |
GI | the IGeometryInfo of the detector element in question | |
toGlobalInFrame | 3D transformation that describes the total "misaligned" global matrix T' in frame |
const Gaudi::Transform3D DetDesc::localDeltaFromAnyFrameDelta | ( | const Gaudi::Transform3D & | frame, | |
const IDetectorElement * | DE, | |||
const Gaudi::Transform3D & | deltaInFrame | |||
) |
Obtain the local delta transformation starting from an off-nominal transformation from an arbitrary frame.
frame | the Transform3D of the frame with respect to which the position is taken | |
DE | the detector element in question | |
deltaInFrame | 3D transformation that describes the "misalignement" correction transformation D_frame' in frame |
const Gaudi::Transform3D DetDesc::localDeltaFromAnyFrameDelta | ( | const Gaudi::Transform3D & | frame, | |
const IGeometryInfo * | GI, | |||
const Gaudi::Transform3D & | deltaInFrame | |||
) |
Obtain the local delta transformation starting from an off-nominal transformation from an arbitrary frame.
frame | the Transform3D of the frame with respect to which the position is taken | |
GI | the IGeometryInfo of the detector element in question | |
deltaInFrame | 3D transformation that describes the "misalignement" correction transformation D_frame' in frame |
const Gaudi::Transform3D DetDesc::globalDeltaFromLocalDeltaPrime | ( | const IDetectorElement * | DE, | |
const Gaudi::Transform3D & | deltaPrime | |||
) |
Obtain a global off-nominal correction D_global on top of the current total transformation of detector element DE, T_global, starting from a correction D' calculated at the local level of DE such that.
D_global * T_global = T_global * D'
D_global = T_global * D' * T_global^-1
DE | the DetectorElement in question | |
deltaPrime | the Transform3D representing the correction on the current total transformation of DE |
const Gaudi::Transform3D DetDesc::globalDeltaFromLocalDeltaPrime | ( | const IGeometryInfo * | GI, | |
const Gaudi::Transform3D & | deltaPrime | |||
) |
Obtain a global off-nominal correction D_global on top of the current total transformation of GeometryInfo GI, T_global, starting from a correction D' calculated at the local level of GI such that.
D_global * T_global = T_global * D'
D_global = T_global * D' * T_global^-1
GI | the IGeometryInfo of the DetectorElement in question | |
deltaPrime | the Transform3D representing the correction on the current total transformation of DE |
const Gaudi::Transform3D DetDesc::globalDelta | ( | const IDetectorElement * | DE | ) |
Obtain the global "delta" transformation corresponding to detector element DE's local "delta" such that.
T_global = D_global * T_global * D_local^-1
D_global = T_global * D_local * T_global^-1
DE | the DetectorElement in question |
const Gaudi::Transform3D DetDesc::globalDelta | ( | const IGeometryInfo * | GI | ) |
Obtain the global "delta" transformation corresponding to IGeometryInfo GI's local "delta" such that.
T_global = D_global * T_global * D_local^-1
D_global = T_global * D_local * T_global^-1
GI | the IGeometryInfo of the DetectorElement in question |
const Gaudi::Transform3D DetDesc::relativeTransformation | ( | const IDetectorElement * | referenceDE, | |
const IDetectorElement * | DE | |||
) |
Obtain the 3D transformation, T_relative, representing the placement of DetectorElement DE in the frame of DetectorElement referenceDE.
const Gaudi::Transform3D DetDesc::LHCb2SU | ( | ) |
Get the LHCb -> SU 3D transformation.
Gaudi::Transform3D lhcb2su = DetDesc::LHCb2SU();
Definition at line 32 of file SU2LHCb.h.
00033 { 00034 return Gaudi::Transform3D( Gaudi::RotationY( -0.5*Gaudi::Units::pi) * 00035 Gaudi::RotationZ( -0.5*Gaudi::Units::pi) * 00036 Gaudi::RotationX( -3.601*Gaudi::Units::mrad) ); 00037 00038 00039 }
const Gaudi::Transform3D DetDesc::SU2LHCb | ( | ) |
Get the SU -> LHCb 3D transformation.
Gaudi::Transform3D su2lhcb = DetDesc::SU2LHCb();
Definition at line 50 of file SU2LHCb.h.
00051 { 00052 return Gaudi::Transform3D( Gaudi::RotationX( 3.601*Gaudi::Units::mrad) * 00053 Gaudi::RotationZ( 0.5*Gaudi::Units::pi) * 00054 Gaudi::RotationY( 0.5*Gaudi::Units::pi) ); 00055 }
const Point DetDesc::LHCb2SU | ( | const Point & | point | ) |
Helper to transform any type of MathCore point.
Gaudi::XYZPoint pLHCb( 0.0, 0.0, 9450); Gaudi::XYZPoint pSU = DetDesc::LHCb2SU( pLHCb );
point | 3D point in LCHb reference frame |
Definition at line 71 of file SU2LHCb.h.
00072 { 00073 return LHCb2SU()*point; 00074 }
const Point DetDesc::SU2LHCb | ( | const Point & | point | ) |
Helper to transform any type of MathCore point.
Gaudi::XYZPoint pSU( 0.0, 0.0, 9450); Gaudi::XYZPoint pLHCb = DetDesc::SU2LHCb( pSU );
point | 3D point in SU reference frame |
Definition at line 90 of file SU2LHCb.h.
00091 { 00092 return SU2LHCb()*point; 00093 }
DetDesc::s_tolerance = 2.e-8 |
the relative tolerance of tick/intersection comparison