Class for alignment/calibration parameter hierarchy & constraints.
More...
#include <Hierarchy.h>
|
| GlobalDerivativesHierarchy () |
| Constructor.
|
|
virtual | ~GlobalDerivativesHierarchy () |
| Destructor (virtual)
|
|
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
|
|
virtual std::vector< int > | getElementLabels (DetectorLevelElement element)=0 |
| The only function to implement: what are the global labels for the element?
|
|
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 void | mergeGlobals (GlobalDerivativeSet &main, GlobalDerivativeSet additional) |
| Merge additional set into main set of global labels and derivatives TODO: move to some utilities.
|
|
|
std::pair< DetectorLevelElement, TMatrixD > | getChildToMotherTransform (DetectorLevelElement child) |
| Find the transformation in the lookup.
|
|
|
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.
|
|
Class for alignment/calibration parameter hierarchy & constraints.
Definition at line 41 of file Hierarchy.h.
◆ insert()
void insert |
( |
unsigned short |
child, |
|
|
unsigned short |
mother, |
|
|
TMatrixD |
childToMotherParamTransform |
|
) |
| |
|
inline |
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
-
child | is the lement numeric id in child obj |
mother | is the parent object |
childToMotherParamTransform | is the transformation matrix (placement from geometry of the detector) |
Definition at line 60 of file Hierarchy.h.
62 auto childUID = std::make_pair(ChildDBObjectType::getGlobalUniqueID(), child);
63 auto parentUID = std::make_pair(MotherDBObjectType::getGlobalUniqueID(), mother);
65 if (
m_lookup.insert(std::make_pair(childUID, std::make_pair(parentUID, childToMotherParamTransform))).second) {
68 m_hierarchy.insert(std::make_pair(parentUID, std::vector<DetectorLevelElement>()));
75 m_lookup[childUID].second = childToMotherParamTransform;
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 ...
The documentation for this class was generated from the following files: