Belle II Software  release-08-01-10
RigidBodyHierarchy Class Reference

6D Hierarchy of rigid bodies More...

#include <Hierarchy.h>

Inheritance diagram for RigidBodyHierarchy:
Collaboration diagram for RigidBodyHierarchy:

Public Member Functions

 RigidBodyHierarchy ()
 Constructor.
 
std::vector< int > getElementLabels (DetectorLevelElement element) override
 Rigid body labels.
 
template<class LowestLevelDBObject >
GlobalDerivativeSet getGlobalDerivatives (unsigned short sensor, const genfit::StateOnPlane *sop)
 Get globals for given db object (and the rest of hierarchy) and its element at StateOnPlane.
 
template<class ChildDBObjectType , class MotherDBObjectType >
void insertG4Transform (unsigned short child, unsigned short mother, G4Transform3D childToMother)
 Insert hierarchy relation.
 
template<class ChildDBObjectType , class MotherDBObjectType >
void insertTGeoTransform (unsigned short child, unsigned short mother, TGeoHMatrix childToMother)
 Insert hierarchy relation.
 
TMatrixD getRigidBodyDerivatives (const genfit::StateOnPlane *sop)
 2x6 matrix of rigid body derivatives
 
TMatrixD convertG4ToRigidBodyTransformation (G4Transform3D g4transform)
 Conversion from G4Transform3D to 6D rigid body transformation parametrization.
 
TMatrixD convertTGeoToRigidBodyTransformation (TGeoHMatrix tgeo)
 Conversion from G4Transform3D to 6D rigid body transformation parametrization.
 
void buildConstraints (Constraints &constraints)
 Adds constraints from current hierarchy to a constraints vector.
 
GlobalDerivativeSet buildGlobalDerivativesHierarchy (TMatrixD matrixChain, DetectorLevelElement child)
 Recursive function which adds labels and derivatives until top element in hierarchy is found.
 
template<class ChildDBObjectType , class MotherDBObjectType >
void insert (unsigned short child, unsigned short mother, TMatrixD childToMotherParamTransform)
 Template function to add relation between two elements (possibly in different objects with constants) First object is the child object, second its hierarchy parent. More...
 
void printHierarchy ()
 print the lookup map
 
const std::set< unsigned short > & getUsedDBObjUniqueIDs ()
 Get the global unique ids of DB objects used to construct hierarchy Usefull to update hierarchy only when those changed.
 

Static Public Member Functions

static void mergeGlobals (GlobalDerivativeSet &main, GlobalDerivativeSet additional)
 Merge additional set into main set of global labels and derivatives TODO: move to some utilities.
 

Private Member Functions

std::pair< DetectorLevelElement, TMatrixD > getChildToMotherTransform (DetectorLevelElement child)
 Find the transformation in the lookup.
 

Private Attributes

std::map< DetectorLevelElement, std::pair< DetectorLevelElement, TMatrixD > > m_lookup
 Map with all the parameter data (child -> (mother, transform_child2mother))
 
std::map< DetectorLevelElement, std::vector< DetectorLevelElement > > m_hierarchy
 Map of hierarchy relations mother-> child.
 
std::set< unsigned short > m_usedUniqueIDs {}
 The set of unique id of each DB object used for construction For more efficient updates of hierarchy only when used objects change.
 

Detailed Description

6D Hierarchy of rigid bodies

Definition at line 144 of file Hierarchy.h.

Member Function Documentation

◆ insert()

void insert ( unsigned short  child,
unsigned short  mother,
TMatrixD  childToMotherParamTransform 
)
inlineinherited

Template function to add relation between two elements (possibly in different objects with constants) First object is the child object, second its hierarchy parent.

Parameters
childis the lement numeric id in child obj
motheris the parent object
childToMotherParamTransformis the transformation matrix (placement from geometry of the detector)

Definition at line 60 of file Hierarchy.h.


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